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/gitlab/jira it auto-detects owner/repo and offers PAT (GITHUB_TOKEN → ~/.config/forgeo/) or browser OAuth (forgeo auth login → ~/.config/forgeo/tokens/).

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.12.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.12.0
File Size Uploaded
forgeo_cli-0.12.0.tar.gz 1.1 MB Details

Built distribution (wheel)

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

Total release size: 1.3 MB

Release files / forgeo_cli-0.12.0.tar.gz

Download URL forgeo_cli-0.12.0.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
1bff25e5550cc5471b030734382d43ce8f0c32434be4cb194d80e260c8ef4d4d
BLAKE2b-256 checksum
How to use checksums
9d8a82af530954cf2beda8a05f6109cdc8b950842fb0222cfcf7d79aa36828b9
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 Sep 3, 2026.

Transparency log

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

Download URL forgeo_cli-0.12.0-py3-none-any.whl
Size 179.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b4976ec62a723940c78b7a43b5dc538f4abc0d0d5f95dc43a5c48f3ef698deda
BLAKE2b-256 checksum
How to use checksums
f591424a2452880f34848a7988eed9324a9e62f282ef70894b671241f1ad2a35
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 Sep 3, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.12.0 This release

2 release files

0.11.0

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