Forgeo is an autonomous software forgeo for people with ideas, not teams. You have a product idea — an app, a website, an internal automation — but no developers on staff. With Forgeo you don't need any: you write down what needs to be built as a simple list of tasks, and an AI coding agent works through the list on its own, writing the code and committing it to your repository. No branches, no pull requests, no developer to hire.
All you need is basic comfort with a terminal, a git repository, and any coding agent CLI — Claude Code, aider, opencode, or your own script. Forgeo works with all of them.
Forgeo decides what to do next on its own: while tasks are left it implements the oldest one and commits the result, and when the backlog is empty it reviews the codebase and cleans it up. It only interrupts you when a decision is genuinely yours to make — everything else happens autonomously.
Quickstart
Requires a git repository (no Python needed — the one-liner downloads a
prebuilt binary for your OS, or pipx install forgeo-cli works too). The full
walkthrough is in Getting started.
# 1. Install
curl -fsSL https://forgeo.org/install.sh | bash
# 2. Create your Forgeo (guided wizard, run from your project root)
forgeo init
# 3. Start Forgeo
forgeo start # run forever: every interval_minutes, implement the oldest OPEN task
forgeo init writes forgeo.yaml and a .forgeo/ folder for the backlog
and logs, gitignored for you. Fill the backlog with plain JSON tasks (see
Backlog format) — or add them from the web console while
it runs — and Forgeo does the rest. The daemon binds no ports; open the
dashboard with forgeo web (default http://0.0.0.0:8790):
One-off commands: forgeo once (single cycle), forgeo status (summary),
forgeo stop, forgeo restart — every command is in the
CLI reference.
You can run several factories at once, one per repository — each config is
fully independent (own backlog, logs, locks). Register each forgeo.yaml
in the instance registry with forgeo instance add NAME --config PATH,
manage any of them by name with forgeo start/status/stop --name NAME,
list them all with forgeo list, and get one aggregate overview with the
central dashboard, forgeo web.
Documentation
| Topic | Where |
|---|---|
| Install, init, first cycle | Getting started |
Every forgeo.yaml key |
Configuration |
| Task schema and statuses | Backlog format |
| How the agent is invoked (env, exit codes, timeouts) | Agent contract |
| All CLI commands | CLI reference |
| Web dashboard & HTTP API | Web console & HTTP API |
Everything is stored in plain files: the backlog, forgeo.log, and
BLOCKER.md whenever a decision is pending.
Develop
pip install -e ".[dev]"
pytest
See CONTRIBUTING.md for the development setup, quality
gates (pytest, ruff check, mypy src/forgeo), and the pull-request
process.
License
MIT — see LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file forgeo_cli-0.3.0.tar.gz.
File metadata
- Download URL: forgeo_cli-0.3.0.tar.gz
- Upload date:
- Size: 767.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
22807809dc55819a295480e6f9d4ba8eb083b658a8eae52cda86bdb6613936b7
|
|
| MD5 |
8fca5771a9ea6997a318b354617b22bf
|
|
| BLAKE2b-256 |
c6a497074a5d381d5e107bf246f17de5ff4f9013320077ddc916f5934b1accb4
|
Provenance
The following attestation bundles were made for forgeo_cli-0.3.0.tar.gz:
Publisher:
ci.yml on lucaGazzola/forgeo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
forgeo_cli-0.3.0.tar.gz -
Subject digest:
22807809dc55819a295480e6f9d4ba8eb083b658a8eae52cda86bdb6613936b7 - Sigstore transparency entry: 2368149659
- Sigstore integration time:
-
Permalink:
lucaGazzola/forgeo@48d684293167bf63297fcc16d96d5df5992397ff -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/lucaGazzola
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@48d684293167bf63297fcc16d96d5df5992397ff -
Trigger Event:
push
-
Statement type:
File details
Details for the file forgeo_cli-0.3.0-py3-none-any.whl.
File metadata
- Download URL: forgeo_cli-0.3.0-py3-none-any.whl
- Upload date:
- Size: 60.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
120630b95f8deca4678153dc1aff785647d0ebdfc377e5e5b2fd69ab17e4912c
|
|
| MD5 |
4caeea864104b91420eb760110275670
|
|
| BLAKE2b-256 |
f9221d444ad1a692c4679c639fcdc289b4c8ddb4b691e855681b0ddf23cff5cb
|
Provenance
The following attestation bundles were made for forgeo_cli-0.3.0-py3-none-any.whl:
Publisher:
ci.yml on lucaGazzola/forgeo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
forgeo_cli-0.3.0-py3-none-any.whl -
Subject digest:
120630b95f8deca4678153dc1aff785647d0ebdfc377e5e5b2fd69ab17e4912c - Sigstore transparency entry: 2368149894
- Sigstore integration time:
-
Permalink:
lucaGazzola/forgeo@48d684293167bf63297fcc16d96d5df5992397ff -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/lucaGazzola
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@48d684293167bf63297fcc16d96d5df5992397ff -
Trigger Event:
push
-
Statement type: