Self-hosted · One binary · Your repos
Forge runs autonomous coding agents against your git repositories. It triages the ask, plans it into tasks, builds them in parallel, verifies every claim, merges what's green, reviews its own output — and learns from every run.
The shape of it
An organization is a suite of imperfect people, tools, and workflows that turns inputs into an output worth more — and that has to change, optimize, and do better tomorrow than it did today. Forge is that, for software: a suite of imperfect agents, tools, and workflows, arranged so the imperfections get caught, corrected, and learned from. A software factory whose floor plan is an org chart.
So it's org-shaped all the way down: a planner that decomposes, builders that work in parallel under write-set leases, reviewers and QA that hold verdicts, a merge queue that rebases and re-checks before anything lands, and a supervisor that reads what actually happened and orders the next round. Every role is an agent; the structure is the product.
What makes it hold
Every attempt's claims are checked against git reality at L0; declared
checks re-run at L1; a separate verify agent rebuilds and exercises the
thing at L2; a human gate is L3. "The agent said it works"
is not a state in the machine.
Every state change writes a journal row; every prompt is frozen byte-for-byte as a snapshot with its hash; every spawned task carries its cause and its root. You can walk any outcome back to the ask that produced it.
Subscription-window tracking, admission classes
(interactive / normal / backlog), hard stops,
quiet hours. Agents negotiate for more turns through an adjudicator — they don't
take them.
Directives, personas, and fragments live in a git library — composed at
materialization, hot-reloaded, hash-audited. Agents read them as skills and call
them as tools; base improvements distribute by git merge.
Agents jot quick scripts into an LRU scratch cache. A script reached for enough times, by enough different attempts, triggers a curation task that dedupes, optimizes, and promotes it into the permanent library.
Supervision scores land in SQLite next to cost, turns, and size. A recurring benchmark — rebuild an entire app from an empty repo — turns "is it getting better?" into a chart instead of a feeling.
See it
The web UI is the operator's window: what's running, what needs a human, where the budget stands — and the same journal the daemon writes. These are live screenshots, failed run included; hiding it would be against the house rules.
flow-deep — challenge → plan → design → implement → review → QA → eval — tool-callable, so agents can fire it too.
The stack, honestly
No cloud, no queue cluster, no yaml farm. The daemon serves the API and UI, schedules work, runs the merge queue, and supervises budgets; a worker executes attempts in sandboxed worktrees. State lives in a single SQLite database; executable content lives in git. If you can read a journal table and a git log, you can audit the whole system.
forge daemon start · forge task add "rebuild equitizr from scratch" --mode plan --size L · forge bench list rebuild-equitizr