Autonomous coding systems built on the Claude Agent SDK. The project is split into two complementary subsystems with deliberately different design goals, over a small shared core.
- More on the how and why: blog.
| Subsystem | Shape | What it does | Docs |
|---|---|---|---|
src/harness |
finite pipeline | spec → steps → plan / generate / evaluate → done. Compiles an editable feature spec into a working app, one verified step at a time. | src/harness/README.md |
src/loop |
perpetual cycle | discover → distribute → verify → record → decide. A discovery-driven operating discipline kept separate from the spec→app compiler. | src/loop/README.md |
src/shared holds the common core both reuse — logging, auth, and SDK-stream consumption — and is otherwise dependency-free between the two.
src/
├── harness/ spec → app compiler → src/harness/README.md
├── loop/ perpetual discovery cycle → src/loop/README.md
└── shared/ logging · auth · SDK stream
# Install dependencies
npm install
# Install Playwright (used by the harness's generator + evaluator)
npx playwright install chromium
# Run the harness: scaffold a draft spec, then build from it
npx tsx src/harness/index.ts "Build a task management app with kanban boards" --output-dir ./kanban
npx tsx src/harness/index.ts ./kanban/artifacts/<auto-slug>/spec.mdSee src/harness/README.md for the full CLI, options, artifact layout, and how the per-step loop works.
- Signed into Claude Code locally — nothing to configure. The SDK subprocess inherits your existing session via
settings.json. - Explicit auth — set one of the auth variables in
.env(API key, OAuth token, Bedrock / Vertex / Foundry, or anapiKeyHelper). See.env.examplefor the full list.
- Harness Design for Long-Running Apps — Anthropic Engineering
- Claude Agent SDK — Official Docs