Skip to main content
Forgeo logo
Forgeo

CI License: MIT

Forgeo running a backlog task end to end

Forgeo is a software factory for your coding agent.

Give it a backlog and an agent CLI — Forgeo picks the next runnable task, runs the agent, and commits the result. It tracks progress in plain files and a web dashboard, and only interrupts you when a human decision is needed.

  • One task at a time — oldest OPEN task whose dependencies are COMPLETED (or a run_at schedule). REVIEW blocks dependants but not independent tasks.
  • Agent-agnostic — any CLI that reads FORGEO_TASK (aider, Claude, custom script).
  • Refactors when idle — runs a refactoring pass when the backlog is empty.
  • Handles failure gracefully — BLOCKED for human input (BLOCKER.md), FAILED with retry policy, snapshots for file backlogs, Telegram/webhook notifications.
  • Optional review — review_mode: branch commits to forgeo/review/TASK-001, marks REVIEW, pushes and waits for human merge → Complete.

Requires a terminal, a git repo, and an agent CLI.

Quickstart

Full walkthrough: Getting Started.

1. Install

Pick one (no root; re-run to upgrade):

brew install lucaGazzola/forgeo/forgeo          # Homebrew, no Python needed
curl -fsSL https://forgeo.org/install.sh | bash  # binary or pip fallback
pipx install forgeo-cli                          # Python 3.11+

2. Init

forgeo init

Wizard in your project root. Creates forgeo.yaml and .forgeo/ (backlog, logs, blockers). Prompts for backlog provider (file / github / gitlab / jira / http) and agent command. For github it auto-detects owner/repo and can persist GITHUB_TOKEN to ~/.config/forgeo/.

3. Fill the backlog

# file provider: edit .forgeo/backlog.json (see Backlog format)
# github/gitlab/jira/http: configured in forgeo.yaml, then:
forgeo validate

# or add tasks from the dashboard:
forgeo web      # http://0.0.0.0:8790  (use -d to keep it running)

Forgeo web console

4. Start

forgeo validate   # dry run: config, repo, backlog, agent, locks
forgeo start      # daemon in background, one cycle per interval_minutes

Each cycle: pick task → run agent → commit/push (or REVIEW branch when review_mode: branch). Empty backlog → refactoring pass.

Day-to-day

forgeo status              # config, counts, next task, daemon state, last outcome
forgeo once                # one cycle in foreground, no daemon
forgeo run --task TASK-012 # run a specific OPEN task now
forgeo stop / restart      # stop or restart daemon
forgeo web                 # dashboard for all instances

forgeo web is open by default on 0.0.0.0:8790. On a shared host use forgeo web --token for bearer auth — see Web console.

Docker sandbox

Run the agent isolated:

agent_sandbox: docker
agent_sandbox_image: your-image   # must contain agent CLI + sh
agent_sandbox_network: none       # default, no network
agent_sandbox_mounts: [~/.claude] # read-only mounts

Repo is bind-mounted at the same path; task arrives as FORGEO_TASK. See Configuration.

Multiple repos

One config per repo, fully independent (own backlog, logs, locks). Use the instance registry:

forgeo instance add site-a --config /path/to/site-a/forgeo.yaml
forgeo start --name site-a
forgeo list          # all instances
forgeo web           # aggregate dashboard

Documentation

Topic Doc
Install, init, first cycle Getting Started
All forgeo.yaml keys Configuration
Task schema & statuses Backlog format
Agent env, exit codes, timeouts Agent contract
All CLI commands CLI reference
Dashboard & HTTP API Web console & HTTP API

Backlog providers: file · HTTP · Jira · GitHub · GitLab — file/HTTP exchange the full document; Jira/GitHub/GitLab sync issues individually. File backlogs are snapshotted (backlog.json.bak) before each run and restored if corrupt.

Dashboard: forgeo web aggregates every instance. For file/http it is the primary editor; for jira/github/gitlab it is a read-mostly mirror (links to native issues, surfaces BLOCKED/FAILED reasons and retry state).

Develop

pip install -e ".[dev]"
pytest

See CONTRIBUTING.md (quality gates: pytest, ruff check, mypy src/forgeo).

License

MIT — see LICENSE.

Metadata

Release files for forgeo-cli 0.11.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for forgeo-cli 0.11.0
File Size Uploaded
forgeo_cli-0.11.0.tar.gz 1.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for forgeo-cli 0.11.0
File Interpreter ABI Platform
forgeo_cli-0.11.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.3 MB

Release files / forgeo_cli-0.11.0.tar.gz

Download URL forgeo_cli-0.11.0.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
0c9c03caf11f3f060b8cdf06c486e516d48064fe5fa241f2a8a8fcbedc13ec1a
BLAKE2b-256 checksum
How to use checksums
a7c3a7a5af948b088b5c646e6b0ebf6ddd6e684e2b50ba6af3866c267e8f2181
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 31, 2026.

Transparency log

Release files / forgeo_cli-0.11.0-py3-none-any.whl

Download URL forgeo_cli-0.11.0-py3-none-any.whl
Size 154.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
52b376d0aef3111b566f1d4e17973a4d4147188d57c571475413538042ee3a8c
BLAKE2b-256 checksum
How to use checksums
cc7037c801c651d7ff165820496f6a4f953181f08c2696cba544c14fff451ad5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 31, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.11.0 This release

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page