$git clone https://github.com/LucasDuys/forgeTurn a one-line idea into a branch with tested, reviewed, committed code. The brainstorm-to-commit pipeline for Claude Code.
| 1 | <p align="center"> |
| 2 | <picture> |
| 3 | <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/LucasDuys/forge/main/docs/assets/forge-banner-dark.svg"> |
| 4 | <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/LucasDuys/forge/main/docs/assets/forge-banner-light.svg"> |
| 5 | <img alt="Forge" src="https://raw.githubusercontent.com/LucasDuys/forge/main/docs/assets/forge-banner-light.svg" width="600"> |
| 6 | </picture> |
| 7 | </p> |
| 8 | |
| 9 | <h3 align="center">One idea in. Tested, reviewed, committed code out.</h3> |
| 10 | |
| 11 | <p align="center"> |
| 12 | <a href="https://github.com/LucasDuys/forge/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="License"></a> |
| 13 | <a href="https://github.com/LucasDuys/forge/stargazers"><img src="https://img.shields.io/github/stars/LucasDuys/forge?style=flat" alt="Stars"></a> |
| 14 | <a href="https://github.com/LucasDuys/forge/releases"><img src="https://img.shields.io/badge/version-0.3.0-green" alt="Version"></a> |
| 15 | <a href="https://github.com/LucasDuys/forge/tree/main/docs"><img src="https://img.shields.io/badge/tests-745%20passing-brightgreen" alt="Tests"></a> |
| 16 | <a href="https://lucasduys.github.io/forge/"><img src="https://img.shields.io/badge/docs-architecture_video-orange" alt="Docs"></a> |
| 17 | </p> |
| 18 | |
| 19 | <p align="center"> |
| 20 | <a href="https://lucasduys.github.io/forge/">Watch the architecture video</a> |
| 21 | · |
| 22 | <a href="docs/">Read the docs</a> |
| 23 | </p> |
| 24 | |
| 25 | --- |
| 26 | |
| 27 | ## The problem |
| 28 | |
| 29 | You start a feature in Claude Code. You write the prompt. It writes the code. You review it. You re-prompt. It tries again. It loses context. You re-explain. You watch the "context: 87%" warning crawl up. You restart. You re-explain again. Three hours in, half a feature done, and you are the one keeping the whole thing from falling apart. |
| 30 | |
| 31 | You are the project manager. You are the state machine. You are the glue. |
| 32 | |
| 33 | **Forge replaces you as the glue.** You describe what you want in one line. Forge writes the spec, plans the tasks, runs them in parallel git worktrees with TDD, reviews the code, verifies it against the acceptance criteria, and commits atomically. You read the diffs in the morning. |
| 34 | |
| 35 | ## What Forge is |
| 36 | |
| 37 | A native Claude Code plugin that turns one-line ideas into reviewed, tested, committed code through a five-phase autonomous loop: |
| 38 | |
| 39 | 1. **brainstorm** — your idea becomes an R-numbered spec with testable acceptance criteria |
| 40 | 2. **plan** — the spec becomes a dependency-ordered task DAG with token estimates |
| 41 | 3. **execute** — each task runs in its own git worktree with TDD; passing tasks squash-merge atomically |
| 42 | 4. **review + verify** — the reviewer checks the code, the verifier checks each R-number against four levels (existence, substantive, wired, runtime) |
| 43 | 5. **backprop** — when a runtime failure exposes a spec gap, the gap becomes a new acceptance criterion + regression test, and the loop resumes |
| 44 | |
| 45 | State lives on disk in `.forge/`, not in a conversation window. Crashes, context resets, and OOMs are recoverable because the state machine restarts from disk, not memory. |
| 46 | |
| 47 | ## Install |
| 48 | |
| 49 | Two minutes. Requires Claude Code v1.0.33+. Zero npm install for the solo path. |
| 50 | |
| 51 | ```bash |
| 52 | claude plugin marketplace add LucasDuys/forge |
| 53 | claude plugin install forge@forge-marketplace |
| 54 | ``` |
| 55 | |
| 56 | That's all you need for single-user runs. Multiplayer mode (`/forge:collaborate`) optionally adds Ably for sub-second cross-machine coordination — see [docs/collaborate.md](docs/collaborate.md). |
| 57 | |
| 58 | ## Quickstart |
| 59 | |
| 60 | Three commands. One autonomous loop. One squash-merge. |
| 61 | |
| 62 | ```bash |
| 63 | /forge brainstorm "add rate limiting to /api/search with per-user quotas" |
| 64 | /forge plan |
| 65 | /forge execute --autonomy full |
| 66 | ``` |
| 67 | |
| 68 | Walk away. This is what you actually see while it runs. |
| 69 | |
| 70 | ``` |
| 71 | $ /forge brainstorm "add rate limiting to /api/search with per-user quotas" |
| 72 | |
| 73 | [forge-speccer] generating spec from idea... |
| 74 | spec written: .forge/specs/spec-rate-limiting.md |
| 75 | R001 per-user quotas, configurable per tier (free / pro / enterprise) |
| 76 | R002 sliding window counters (1 minute, 1 hour, 1 day) |
| 77 | R003 429 response with Retry-After header |
| 78 | R004 bypass for admin tokens |
| 79 | R005 redis-backed counters with atomic increment |
| 80 | R006 structured logs for rate-limit events |
| 81 | R007 integration test against /api/search |
| 82 | |
| 83 | $ /forge plan |
| 84 | |
| 85 | [forge-planner] decomposing into task DAG... |
| 86 | 8 tasks across 3 tiers (depth: standard) |
| 87 | T001 add redis client + connection pool [haiku, quick] |
| 88 | T002 implement sliding window counter [sonnet, standard] |
| 89 | T003 build rate-limit middleware [sonnet, standard] |
| 90 | T004 wire middleware to /api/search route [haiku, quick] |
| 91 | T005 add 429 response with Retry-After [haiku, quick] |
| 92 | T006 admin token bypass [haiku, quick] |
| 93 | T007 structured logging [haiku, quick] |
| 94 | T008 integration test [sonnet, standard] |
| 95 | deps: T001 T002 T003 T004 T005 T006 T007 |
| 96 | |
| 97 | $ /forge execute --autonomy full |
| 98 | |
| 99 | ══ FORGE iteration 3/100 |