Plain language in. The pilot decides how deep to go.
Every turn is sized as MICRO, STANDARD or DEEP before the model acts. This one asked for a swarm, so the pilot hands it to the kernel instead of grinding through one long context window.
A desktop coding harness with Puppetmaster built in. Durable swarms, cost-aware routing, and a receipt for every run.
Free, with the full source on GitHub. Bring any provider key. Or install from the terminal.
Real capture, not a mockup. Claude Sonnet 5.5 piloting three GPT-6.1 Sol workers on Marionette's own source, all through one OpenRouter key at API prices. Recorded at 2240×1400. The 67-second swarm is time-lapsed; the prompt and the answer play at real speed.
The same session as the video, slowed down. One sentence in, a three-worker audit out, and a record of everything that happened in between.
Every turn is sized as MICRO, STANDARD or DEEP before the model acts. This one asked for a swarm, so the pilot hands it to the kernel instead of grinding through one long context window.
Puppetmaster splits the audit into an explorer, a conflict auditor and a test coverage reviewer. Each role gets a capability bar, a routed model, and a five-second lease that a heartbeat keeps alive.
This job wrote 25 artifacts, each with a sha256: 11 findings, 2 risks, 3 decisions, 6 verifications and 3 routing records. All three workers finished in 67 seconds and graded their own coverage PASS, so the tracker marks the job done. A worker that fails or comes back partial is marked that way instead of painted green.
The pilot ranked six findings with file and line, re-read the regex behind the top one to confirm it, and closed with what to fix first.
The meter runs live: turn depth, tokens, cache hit rate and actual spend, plus what your plan covered when a plan pays for the tokens. The job receipt prices each worker against the model registry in force when it finished.
The pilot never babysits workers. The kernel owns them: leased tasks, heartbeats, a typed artifact store and a job graph. Below is the actual event log from the run above, replayed.
A worker holds a lease and renews it on every heartbeat. A dead worker forfeits it and the task is recoverable.
Findings, risks, decisions and verifications carry confidence, citations and a content hash.
Every task links to what it produced. 26 edges in this job, queryable after the fact.
Pull a finished job's results into any later session without re-running a single model call.
Every task carries a capability requirement. The router scores every model you allowed, picks the cheapest one that clears it, and writes down why it turned down the rest. These are the real routing records from the run.
Every model your keys can reach, in one searchable picker. The profile in these captures lists 621 across OpenRouter, OpenAI, OpenCode Go and OpenCode Zen. Swap the pilot mid-session and keep the thread.

Symbols, callers and impact are injected before the model acts. 37,285 nodes for this repo, refreshed as files change.

Toggle what the picker and the router may use. One Full stack key runs both pilot and workers.

DeepSeek V4 Flash traced the routing path with file and line on every step, at 91% cache and $0.01 at list.

This edit landed with four tests. The pilot also said pytest was missing in that checkout, and exactly how it checked instead.

A model vendor's harness sells you tokens. Marionette earns nothing on your token count, so every incentive points at spending less and proving it.
CodeGraph-first retrieval injects the symbols that matter instead of whole files, so prompts start small.
Prompt caching with a stable and a moving breakpoint across Anthropic, OpenAI and Gemini serves the heavy prefix from cache every turn.
Cached tokens are priced at the real cache-read discount, and unknown prices stay unknown instead of turning into a quiet $0.
The router will pick a competitor's open-weights model when it clears the bar. A first-party tool will never route you off its own tokens.
CodeGraph context plus the router, against the frontier baseline, at equal quality.
A controlled three-arm study holds the model ceiling constant and varies only the orchestration. Frozen predictions re-grade deterministically with Docker alone, no API keys.
About 2.28x the roughly 40% published state of the art, with 53% of libraries reaching a fully green upstream suite.
Durable-state orchestration on whole-repository generation from a spec. Full method and caveats are in the paper.
Also published: Extractive Residuals After Compaction, the compaction method Marionette ships by default.
Sessions distill into markdown pages you own: decisions, entities and handoffs that any model can read next month.
Unattended runs bounded by token, time, swarm and idle ceilings, plus a killswitch file.
In full-auto, recursive deletes, force-pushes, curl-to-shell, sudo and key exfiltration are screened before they run.
Cron-backed local runs with transactional claims, restart recovery and a truthful run history.
Text-only pilots get a VLM sidecar from a key you already have. Vision-capable pilots get the real pixels.
Long sessions compact to an extractive catalog with handles back to what was dropped. Read the paper.
Projects, branches, worktrees and sessions side by side. Implement workers build in clean worktrees.
An in-app browser, a real terminal, and scoped native control with password fields masked.
Add any MCP server by URL or Docker from the State pane. Tools are discovered, not hard-coded.
Stdlib-only Python backend with one real dependency. The update pill pulls, rebuilds and relaunches, and keeps your local edits.
Free, with the source on GitHub. Paste one provider key in Settings and both the pilot and the workers run on it. No other CLI required.
Installers for macOS (universal), Windows and Linux.
Updates are continuous. The in-app update pill runs git pull, rebuilds and relaunches, so a merge reaches every install on its next click.