v0.9 · open source · local-first

The missing piece of vibe-coding.

Amaco is the open-source orchestrator that turns one chat-with-an-LLM into a supervised multi-agent flow — planning, arbitration, execution, review, verification — across Claude Code, Codex, Gemini, and any local model you can run.

runs on your laptop · bring-your-own models · MIT licensed · token + cost ledger
amaco · monorepo · main
02:14
Mission Control·local · 3 agents online
scheduler live
1 · the brief0 chars · markdown
Describe the work — goals, constraints, files to touch…
2 · flow~8–14 min · low risk
Quality Arbitration
Ship Fast
Deep Refactor
Bugfix Loop
3 · crew · 4 activesave preset
Planner
Unassigned
Arbiter
Gemini 2.5 Pro
Executor
Claude Sonnet 4.5
Reviewer
Codex GPT-5
4 · run 2 skills auto-branch sandbox
Send to crew ⌘⏎
executingr-204a·Quality Arbitration
+47−3· 4 files02:14
Add a /healthz endpoint with structured JSON, uptime + version, and basic latency metrics.
Plan
Propose A
Propose B
Arbitrate
Implement
Review
Verify
live · sandboxed shell
streaming
Streaming events from sandboxed shell · sonnet@local·0 approvals pending
The problem · briefly

Vibe-coding doesn't finish itself.

One model in one chat is great for sketches. Real work — refactors, migrations, end-to-end features — needs multiple models, clear phases, and a human in the loop. Today, you stitch that by hand: tab-hopping between Claude Code, Codex, and a terminal; copy-pasting plans into chats; eyeballing diffs; losing track of cost.

Five chats, one task
≈5
open windows

Switch between Claude for plan, Codex for review, a local model for the boring bits — context evaporates with every paste.

No record, no rerun
0
audit trail

When something works, you can't reproduce it. When it doesn't, you can't tell which model made which call.

Token vertigo
$??
weekly spend

Three vendors, three billing pages, one cursed spreadsheet. By Friday you have no idea what the experiment cost.

How it works

Brief → Flow → Crew → Run.
In that order. Always.

01
Brief

Write the task in markdown. Goals, constraints, files. Brief lives with the run forever.

02
Flow

Pick a guide — or design your own. Each guide is a graph of phases, with explicit human checkpoints.

03
Crew

Assign one model per role. Planner could be Sonnet; arbiter Gemini; verifier a local Llama.

04
Run

A sandboxed branch opens. Phases stream. You approve where it matters. Amaco closes the loop.

Local-first

Your code never leaves your machine. The orchestrator runs as a daemon, models talk to it over a local socket.

Fully configurable

Every phase, every prompt, every gate is a YAML file you can fork. No magic, no SaaS.

CLI · TUI · UI

The same engine drives a polished mission control, a TUI for the terminal-bound, and a scriptable CLI for CI.

Open source

MIT licensed. The CLI runs offline. The UI is a tiny local web app. Audit, fork, modify.

Guides · the flow library

A flow for every
kind of task.

Guides ship with sensible defaults — but every phase is a single YAML entry. Add a "design-review" gate. Run two arbiters. Skip planning for one-liners. Fork the one closest to your team and call it your own.

Quality Arbitration

Recommended
low risk

Two models propose in parallel; a third arbitrates; a reviewer signs off. The safest path for high-stakes refactors.

Plan
Propose A
Propose B
Arbitrate
Implement
Review
Verify
≈ $0.40 · 8–14 min

Ship Fast

low risk

Single planner → executor → light validation. Perfect for small, well-scoped tasks that need to land before lunch.

Plan
Execute
Validate
≈ $0.04 · 2–5 min

Deep Refactor

medium risk

Architect first, then chunked execution with strict review loops between every module.

Plan
Arch
Exec
Val
Review
Fix
Verify
≈ $1.20 · 12–30 min

Bugfix Loop

low risk

Repro → hypothesis → patch → verify, with auto re-runs until the failing test goes green. Or you stop it.

Repro
Hypothesis
Patch
Verify
≈ $0.12 · 3–10 min
Models · bring your own

If it has a CLI,
Amaco can drive it.

Amaco wraps the CLIs you already trust — Claude Code, Codex, Gemini — and binds local servers like Ollama and llama.cpp. No vendor lock-in, no proxy layer eating your tokens. You log in once, per vendor, with your own key.

C
Claude Code
Anthropic
planner · executor
Codex GPT-5
OpenAI
reviewer · arbiter
G
Gemini 2.5
Google
arbiter · verifier
L
Ollama
Local · llama.cpp
offline fallback
Per-role substitution live · last 24h
cost · today $2.84
Planner
Claude Sonnet 4.5
48% of runs swap →
Arbiter
Gemini 2.5 Pro
18% of runs swap →
Executor
Claude Sonnet 4.5
31% of runs swap →
Reviewer
Codex GPT-5
19% of runs swap →
Verifier
Llama 3.3 70B · local
3% of runs swap →
+ drop any binary that streams JSON. amaco add-model --cmd "ollama run …"
Visibility · the ledger

Every token, every model, every minute — in one place.

Amaco's session ledger is a single source of truth: tokens in, tokens out, dollars spent, time taken, who did what. Slice by guide, by role, by branch. Replay any run, frame by frame. Export to a CSV your CFO will not yell about.

  • Live token meter per role, per phase
  • Per-run cost · per-day cap with hard stop
  • Session replay — diff playback at any phase
  • Webhook on approve · merge · cap-hit
Today · all sessions
auto-refresh
runs
14
+3
tokens
1.84M
−12%
cost
$2.84
cap $20
median
6m 12s
−47s
Tokens by role · last 24h
Planner Reviewer Arbiter Verifier
000204060810121416182022
Claude Sonnet 4.5
41 calls 962k $1.41
Codex GPT-5
22 calls 418k $0.88
Gemini 2.5 Pro
11 calls 302k $0.43
Llama 3.3 70B · local
18 calls 162k
~/code/monorepo · zsh 02:14
$ amaco run "Add /healthz endpoint" --flow quality-arbitration
› opening sandbox branch amaco/healthz-route
› allocating crew · planner=sonnet arbiter=gemini reviewer=codex
plan analyzing routes · 3 found · no /healthz handler
propose-a +12 lines · zod schema · uses fastify reply
propose-b +9 lines · native types · smaller surface
arbiter scoring · A 0.91 / B 0.74 · pick A
⏸ approval two proposals · pick a branch [a/b/r]
› human: a · reason "cleaner contract"
implement write server/health.ts · +47 / −3
review 0 issues · 18/18 tests pass
verify contract OK · p95 7ms · ✓ merged
$
CLI · the same engine

Terminal first.
UI when you want it.

The UI is a thin client on top of the daemon. Anything you can do clicking around, you can do in the terminal — and pipe through CI. The daemon emits JSON; the UI is just one of many possible front-ends.

$ amaco run 'Refactor RunStatus union to a state machine' --flow deep-refactor
Kick off a run from the prompt — exits with 0 on merge, 1 on reject.
$ amaco watch r-204a
Tail any session. Phase rail in your terminal, with arrow-key navigation.
$ amaco approve r-204b --branch B --reason 'cleaner contract'
Approve from CI, scripts, slash-commands. The audit log notes who said yes.
$ amaco cost --since yesterday --by role
Roll-up of tokens and dollars. Pipe to your stack.
Get going

One command.
Your machine. Your models.

Install Amaco, point it at the CLIs you already have, and run your first orchestrated flow in under five minutes. No accounts, no proxies, no surprises.

01
$ brew install amaco
or npm i -g amaco
02
$ amaco link --claude --codex --gemini --ollama
bind models you already use
03
$ amaco run 'Add /healthz endpoint'
ship something
No telemetry · macOS · Linux · WSL · MIT