A Hankweave demo that showcases multi-harness codons, loops, and budgets — four different AI models from four different providers collaboratively building a single interactive webpage.
architect ──► engineer ──► storyteller ──► perfectionist ──► ┌────────────┐
(Sonnet) (GPT-5.3) (Gemini 3) (GPT-5.4) │ fresh-eyes │
Claude Code Codex Pi OpenCode │ loop × 2 │
│ (Haiku) │
└────────────┘
Each model contributes one section to a dark-themed showcase page:
| Codon | Role | Model | Harness | What it builds |
|---|---|---|---|---|
architect |
The Architect | Claude Sonnet | Claude Code SDK | Page structure, CSS tokens, design system, Card 1 |
engineer |
The Engineer | GPT-5.3 Codex | Codex shim | Interactive JS canvas visualization in Card 2 |
storyteller |
The Storyteller | Gemini 3 Flash | Pi shim | Creative poetry and prose in Card 3 |
perfectionist |
The Perfectionist | GPT-5.4 | OpenCode shim | Build timeline in Card 4 + polish pass |
review (loop ×2) |
Fresh Eyes | Claude Haiku | Claude Code SDK | Quality review and design fixes |
The output is a single self-contained HTML file you can open in any browser.
Hankweave (runs via npx, no install needed):
npx hankweave@latest --versionAgent harnesses — you need all four installed:
| Harness | Install | Notes |
|---|---|---|
| Claude Code | npm install -g @anthropic-ai/claude-code |
Likely already installed if you're reading this |
| Codex | npm install -g @openai/codex |
OpenAI's CLI agent |
| Pi | Ships with Hankweave | No separate install needed |
| OpenCode | `curl -fsSL https://opencode.ai/install | bash` |
API keys — set these environment variables:
export ANTHROPIC_API_KEY="sk-ant-..." # For Claude Sonnet + Haiku (architect, review loop)
export OPENAI_API_KEY="sk-..." # For GPT-5.3 Codex + GPT-5.4 (engineer, perfectionist)
export GOOGLE_API_KEY="AI..." # For Gemini 3 Flash (storyteller)Validate first (free, checks config + API keys):
npx hankweave@latest hank.json data --validateRun:
npx hankweave@latest hank.json dataRun headless (CI/scripts):
npx hankweave@latest hank.json data --headless -yThe output HTML will be copied to the output directory when complete. You can also find it in the execution directory at agentRoot/workspace/index.html.
.
├── hank.json # The Hank — 4 codons + 1 loop, with budgets
├── prompts/
│ ├── system.md # Global system prompt (shared design standards)
│ ├── 01-architect.md # Sonnet: page structure + design system
│ ├── 02-engineer.md # Codex: interactive JS visualization
│ ├── 03-storyteller.md # Gemini: creative writing
│ ├── 04-perfectionist.md # GPT-5.4: final card + polish
│ └── 05-fresh-eyes.md # Haiku: quality review (loop)
├── data/
│ └── brief.md # Input data (creative brief)
├── output/
│ └── index.html # Output from our example run
└── example-run/
├── state.json # Full execution state (costs, timing, checkpoints)
└── execution-meta.json # Run metadata
The Hank demonstrates Hankweave's budget system:
- Global ceiling: $2.00 / 600 seconds
- Per-codon caps: architect $0.50, engineer $0.30, storyteller $0.20, perfectionist $0.50
- Loop budget: $0.30 shared across both review iterations
Our example run cost ~$0.80 total:
| Codon | Cost |
|---|---|
| architect (Sonnet) | $0.24 |
| engineer (GPT-5.3) | $0.11 |
| storyteller (Gemini 3 Flash) | $0.05 |
| perfectionist (GPT-5.4) | $0.25 |
| review #0 (Haiku) | $0.08 |
| review #1 (Haiku) | $0.08 |
| Total | $0.81 |
- Multi-harness codons — Claude Code, Codex, Pi, and OpenCode in one workflow
- Fresh context — every codon uses
continuationMode: "fresh"with file-based handoffs - Checkpointing —
checkpointedFilestracks workspace state between codons - Loops — 2-iteration fresh-eyes review with Haiku
- Budgets — global ceiling + per-codon caps + loop budget
- Design tokens via system prompt — shared design standards across all models
- Hankweave Docs — Full reference, guides, and API docs
- Introducing Hankweave — Launch post and overview
- Hankweave Runtime — Source code (Apache 2.0)
- Southbridge — The team behind Hankweave
MIT