AI-orchestrated coding, your way — inside the editor you already use.
Cyrus Missions pairs a manager AI with a doer AI in a capped, observable loop. The manager scopes the work and reviews each iteration; the doer writes the code. You watch every tool call as it happens, swap CLIs mid-mission, and keep a full git-backed history of every iteration — without ever leaving your editor.

Why "missions"?
A mission is everything between "here's what I want done" and "done." It has a brief, a checklist the manager built from your brief, an iteration history, a doer who made the edits, an assessor who graded each iteration, and — as of 1.3.0 — a real git branch (cyrus/<mission-id>) capturing the workspace state after every iteration. You can revert to any iteration, branch off from any iteration into a new direction, or watch the live tool-call stream of the current iteration. A mission is a unit of work with provenance.
Most coding agents are stateless chats. A mission is a traceable one.

What you get
- Manager / doer orchestration — one CLI plans + reviews, another writes; or have one CLI play both roles. Switching is a click, not a config edit.
- Multi-adapter doer support — Claude Code, Cursor Agent, Codex, Aider, Copilot CLI, Kimi, OpenCode, Gemini, and more added regularly via the adapter registry.
- Per-prompt CLI swap — change the doer or the manager between any two iterations from the chip in the compose area.
- Mission timeline + revert + branch (new in 1.4.0) — every iteration becomes a git commit on a parallel
cyrus/<id>branch. Revert your workspace to any past iteration in one click; or fork a new mission from that point. - Workspace-scoped missions — everything lives under
.cyrus/missions/in your project. Plain text. Git-friendly. Diff-able. - Zero telemetry — Cyrus is a coordinator over local CLIs; it doesn't have its own cloud component. Nothing leaves your machine that you didn't already send to your chosen CLI.
Get started in four steps
1. Install the extension
Search "Cyrus Missions" in your IDE's extensions panel and install the one published by Cyrus-build. Available on both registries:
- OpenVSX (Cursor, VSCodium, Gitpod): open-vsx.org/extension/Cyrus-build/cyrus-missions
- VS Code Marketplace: marketplace.visualstudio.com/items?itemName=cyrus-build.cyrus-missions
Open a folder you want to work on, then click the Cyrus icon in the activity bar.
2. Authenticate your manager

Open Cyrus: Settings (manage AI tools) from the activity-bar gear. Pick a manager — Claude Code is the canonical choice for its plan-mode quality — and follow its install + sign-in flow. The Settings page surfaces install, authenticate, and model-pick for every supported CLI without leaving the editor.
3. Install and connect a doer CLI

In the same Settings page, install at least one doer. Cursor Agent and Codex are great fast/cheap defaults; you can pair them with a stronger reviewer (Claude, GPT-5) as your manager. Or use one CLI for both roles — your call.
4. Run your first mission

Click the Cyrus icon in the activity bar, then + Start a new mission. Type what you want done, click Send. Cyrus's manager produces a brief, builds a checklist, and dispatches the first iteration. The mission panel shows every tool call as it happens; the assessor's verdict appears as soon as it's rendered.
You can pause, swap doer or manager mid-flight, send course-correcting follow-ups, or hop into the Timeline view (Command Palette → Cyrus: Open mission timeline) to revert + branch.
Also drive Cyrus from Claude Code

Cyrus ships an MCP server (cyrus) so you can drive missions from any MCP-compatible chat — Claude Code most naturally. Register it once and the same .cyrus/missions/ folder is shared between the extension's panel view and your chat-driven workflow.
claude mcp add cyrus npx -- -y cyrus mcp
Mission folder, on disk
Everything lives under .cyrus/missions/<mission-id>/:
brief.md— the manager's plan-mode investigation + the mission contractchecklist.json— measurable acceptance criteria, updated as iterations landNNN-task.md/NNN-result.md/NNN-review.md— the per-iteration traceledger.md— the manager's running narrative across iterationssummary.md— auto-generated on approval
The source of truth is the disk, not the panel. The panel is just a live view of what's already on disk.
Configuration
Cyrus reads .cyrus/config.json at the workspace root. Run cyrus init (CLI) or let the panel auto-scaffold one on first mission. The most-tuned knobs:
doer.cli/doer.model— who codesmanager.cli/manager.model— who plans + reviewslimits.perTaskTimeoutSec— per-iteration backstop (default 3600s as of 1.1.2)limits.maxIterations— absolute upper bound (default 30)manager.interventionSilenceSec— silence-watchdog trigger (default 120s)rubric— the project-specific quality bar the assessor enforces
All of these have per-prompt overrides in the panel, so you can experiment without editing files.
Privacy + data
- Nothing leaves your machine that Cyrus didn't already send to your chosen CLI. Cyrus has no cloud component.
- API keys are read from the OS keychain (VS Code's
SecretStorage), not from your shell environment. Each CLI sees only the keys it needs — no cross-pollination of secrets. - The on-disk mission folder is yours.
.cyrus/is gitignored by default to a sensible selective template. Logs live under it; nothing is uploaded.
Cyrus IDE — the dedicated fork
This extension runs inside VS Code, Cursor, and VSCodium. There's also a dedicated Cyrus IDE (a VS Code fork) at cyrus.build if you want the full experience — same orchestration core, plus media generation, deeper tray + workspace integration, and a curated default config.
Links
- Website: cyrus.build
- Marketplace (VS Code): marketplace.visualstudio.com/items?itemName=cyrus-build.cyrus-missions
- OpenVSX: open-vsx.org/extension/Cyrus-build/cyrus-missions
License
See LICENSE.txt (included in the extension package).
Cyrus is named for Cyrus the Great — a founder-CEO across three continents who relentlessly delegated. The icon is his silhouette.