The control plane for governed agent delivery — the harness for your agent harnesses. Your own CLIs do the work through durable, governed workflows; the thing that grades it is never the thing that did it, and “done” is re-derived from evidence, never asserted. This is the console, live — drive it.
add rate-limiting to the public APIintent → governed workflow → verified result · with the evidence
Every run page carries an insight rail fed by the event stream: who won each unit’s council vote, what the human approved, what each CLI consumed, which external-transform assumptions need review, and which failures were triaged — by a different CLI acting as judge. Steering gates take approve, approve with an amendment that rides the next prompt, or reject (deny dominates). Inject an operator message mid-run; it lands with delivery receipts.
Local-first today — the engine runs in-process, workers are local sessions, the bus is local. The execution seam is built for a remote runner; that’s the direction, not a shipped claim. The evidence exporter was itself built by a governed crew run — and then used to export the evidence of its own construction. Read the full story →
Everything the console can do rides one public contract — /api/v1.
wicked-studio ships inside crew with no privileged
access: if it can show it, the API serves it. The second consumer is not a UI at all — the
document engine: a crew-governed run answers its bus events with the first draft.
The run board: submit intent, watch phases stream, answer gates, export evidence.
A pure client of GET /api/v1/… — launch, events, steering,
acceptance — the same endpoints your own tooling can call.
When interactive creates a doc, a governed crew run answers the bus with a real first draft — heartbeats while it works, an idempotency-keyed delivery, zero changes to the interactive service. The governed-generation seam, observed end-to-end.
wicked.interactive.doc.created← the document engine asks for a first draftcrew · governed run launchedworker session in an isolated worktreewicked.interactive.status.postednarrated heartbeats — the canvas never freezeswicked.interactive.draft.completeda real draft, idempotency-keyed — replays can’t double-delivershipped The Project model — projects group runs and docs across both skins: members, a merged activity feed, open-gate rollups, and a project-scoped code graph — blast radius across member repos via the API, computed by the same estate CLI behind the studio’s repo graph.
Not a new model, not a subscription. Your installed CLIs run as persistent Agent Client Protocol sessions in isolated git worktrees, under your own auth and plan — streamed tokens, structured usage, cross-agent context between units. The adapters come from the ecosystem where they exist; crew owns only the Antigravity bridge. The roster is data you own.
claude-agent-acp
→ session in →
.worktrees/run-4f2a · no shell · read-scoped
Same governed lifecycle wraps every worker: persistent session, streamed tokens, structured usage. When unit 4 runs on a different CLI than unit 3, it receives unit 3’s output as labeled context — that’s what makes a multi-agent run an actual conversation.
A real transition — build → ship — behind a dual gate that deny-dominates:
deterministic checks re-verified against the worktree, plus an LLM judge that can fail a
gate but never approve one. The verdict.json switch is read from the QE
evidence ledger, written by wicked-garden’s QE
fleet — never asserted. It plays itself; click a switch to take over.
GET /api/v1/runs/r-4f2a/acceptance
PASS
verdict.json is read from the QE evidence ledger — deny-dominates, and a CONDITIONAL verdict holds until a clean PASS lands.
*.json. It’s a workflow.
10 built-ins ship — feature, bug, migration, collab (a real propose →
critique → revise → verdict discussion between two CLIs) and more, each as
acyclic-validated JSON. Author your own two ways: drop a file in
~/.config/wicked-core/workflows/, or POST /api/v1/workflows —
validated, persisted, hot-registered in the running engine, and the studio ships a
builder for it. It auto-cycles the defs below — click one to pin it.
A single-writer store and durable cursors give exactly-once effect over at-least-once delivery. Interrupted runs are automatically re-driven on restart. Hover to pause, click a phase to jump, or kill the engine and watch it come back where it left off.
When a run is planned, each unit goes to auction: seats vote on numbered capability profiles — names hidden, so no agent can vote for itself — each through a distinct lens (capability, risk, efficiency). The council needs 75% agreement; below-bar ballots trigger runoffs where every seat sees the tally and the dissenters’ arguments. Honest caveat: hiding names makes self-selection harder, not impossible — when nothing differentiates, plurality stands and the recorded dissent is the value.
Four planes, four contracts. Hover or tab through a plane to see its role and what crosses its seams — every cross-plane interaction goes through the contract, never around it.
Brainstorm it, build it under a check nothing self-approves, then produce the doc, deck or demo.
Evaluator ≠ creator — no agent grades its own homework. “Done” is re-derived from evidence, never asserted.
Multi-model review councils, graph-aware refactors, repo playbooks — plus an open naming contract to ship your own pack.
A 102-language code graph, memory, and knowledge in one binary (MCP) — including the injected edges grep never sees.
Doc storage and lineage, HTML/PDF/PPTX rendering, demo recording. crew proxies it — you depend on it, you don’t visit it.
The simplest way in is npx wicked-installer — the interactive installer
for the whole wicked-* family. Or install wicked-crew directly (Node ≥ 22) — either
way the studio console ships inside it, served on your machine. Add whichever agent
CLIs you want on the roster; crew degrades gracefully to what it finds.
Terms-of-service note: crew drives CLIs you install under your own accounts — confirm programmatic use is permitted by each CLI’s terms; community reports suggest Antigravity’s may not permit it. · Why this exists →
npx wicked-installer # interactive · picks products · ships the `wicked` CLI
Cross-CLI, cross-product. Choose wicked-crew (and anything else in the family) from one prompt. wicked-crew npm v0.7.22
npm install -g wicked-crew
wicked-crew serve # the studio console, served on your machine