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. You're already working with an AI coding agent, prompting it task by task or giving it a goal. Forgeo organizes your work in a structured way with a backlog, and it decides what to work on next, runs your agent on it, and commits the result. Progress, pending decisions, and history are tracked in plain files you can inspect at any time, plus a web dashboard. Forgeo only interrupts you when a decision is genuinely yours to make, everything else happens autonomously. Transient failures (a network blip, a flaky test) are retried automatically when the retry policy is enabled, and only a task that keeps failing or genuinely needs a human decision ever reaches you.

All you need is basic comfort with a terminal, a git repository, and any coding agent CLI.

Quickstart

The full walkthrough is in Getting started.

1. Install the CLI

Pick any one installer (no root needed; re-running it upgrades Forgeo).

# Homebrew (macOS / Linux): prebuilt binary, no Python required
brew install lucaGazzola/forgeo/forgeo

# One-liner (Linux / macOS / Windows): prebuilt binary, falls back to pip
curl -fsSL https://forgeo.org/install.sh | bash

# pip (Python 3.11+)
pipx install forgeo-cli

2. Create your Forgeo

forgeo init

Guided wizard, run from your project root. Writes forgeo.yaml (the config) and a .forgeo/ folder for the backlog, logs and blocker files.

The base flow is then three steps: fill the backlog, check the configuration, start the daemon.

3. Fill the backlog

# Either: edit the backlog file by hand — a plain JSON task list (see
# Backlog format), created on first use:
#   .forgeo/backlog.json

# Or: add tasks from the web console once your forgeo is registered
# (first `forgeo start` registers it automatically):
forgeo web      # dashboard at http://0.0.0.0:8790, or keep it on with `forgeo web -d`

Forgeo web console

4. Check the configuration

forgeo validate

Read-only dry run before the first start: verifies forgeo.yaml, the git repo, branch and remote, that the backlog parses (fetching it once when it is an HTTP endpoint), the agent command, and the lock state. Never invokes the agent and writes nothing.

5. Start the daemon

forgeo start

Starts the daemon detached in the background and exits. Every interval_minutes it runs one cycle: pick the oldest OPEN task whose dependencies are all COMPLETED, run your coding agent on it, commit the result. When the backlog is empty, the same agent runs a refactoring pass over the codebase instead.

Day-to-day commands

forgeo status    # Config, backlog counts, next runnable task, daemon running?, last outcome
forgeo once      # Run exactly one cycle in the foreground, no daemon left behind
forgeo run --task SELF-012  # Run one specific OPEN task now (triage)
forgeo stop      # Stop the background daemon
forgeo restart   # Stop and start again (re-reads forgeo.yaml after edits)
forgeo web       # Dashboard: every instance's backlog, run history and logs

forgeo web defaults to an open dashboard on http://0.0.0.0:8790; on a shared host protect it with forgeo web --token (requires Authorization: Bearer <token> on every /api/* route — see Web console & HTTP API).

Multiple repositories (instances)

Run several factories at once, one per repository; each config is fully independent (own backlog, logs, locks). Register each forgeo.yaml 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. The backlog can also live in another application behind an http(s) URL — Forgeo reads the whole task document with GET and writes it back with POST, with optional OAuth2 client-credentials auth (see Backlog format). A file backlog is snapshotted (rotating backlog.json.bak files) before every agent run and on daemon startup, and restored automatically if it is ever found corrupt — a bad write never loses your tasks.

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.

Metadata

Release files for forgeo-cli 0.7.3

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.7.3
File Size Uploaded
forgeo_cli-0.7.3.tar.gz 1.1 MB Details

Built distribution (wheel)

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

Total release size: 1.2 MB

Release files / forgeo_cli-0.7.3.tar.gz

Download URL forgeo_cli-0.7.3.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
7cf730ec8687226babb9eaab9cf2ec9c6fa7e8f8b90daf751ce29d964553a536
BLAKE2b-256 checksum
How to use checksums
82a088499b291b62e4d1c3e23325366c935e5d5fde171881562c1de8673d9d70
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 19, 2026.

Transparency log

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

Download URL forgeo_cli-0.7.3-py3-none-any.whl
Size 121.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
47422d392767cc8500061287ac79e22d4b94c44ebbca907241b2ba3a25ca69c4
BLAKE2b-256 checksum
How to use checksums
b4edf54ed73adf2bb0e5a6d0d96d22032ffa0d4ba8f73badf03ac4b5728575bb
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 19, 2026.

Transparency log

Release history Release notifications | RSS feed

0.11.0

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.0

2 release files

This release

0.7.3 This release

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