// docs

From install to your first merged branch.

Everything you need to brief a supervisor, spawn agents, and land code — in roughly the order you'll touch it.

Start at 1.1 — Installv0.4 · ~10 min read
Docs navigationInstall
§ 1.1

Install

After purchasing a subscription, head to your user dashboard at zevyn.dev/account. Download the installer for your platform and run it — Windows, Linux, and macOS builds are all available.

Note

Zevyn runs entirely on your machine. The installer is ~32 MB. The first launch creates a .zevyn/ directory inside your project and connects to whichever AI backend you configure in Settings.

§ 1.2

Your first run

Type a brief into the Supervisor. It breaks the work into tasks, picks the right roles, and spawns agents in parallel — each on its own branch with no conflicts by construction.

supervisor
youAdd rate limiting — 60 req/min per IP. Write the tests.
supPlan: builder for middleware + tests, scout for route survey. Spawn?
yougo
supspawned builder-3k feat/rate-limiting
supspawned scout-1m feat/route-audit
supbuilder-3k done · 3 files · tests passing — merge?
youyes
supmerged feat/rate-limiting → main

Every agent's terminal streams live in the workspace. When one finishes, the Review Console shows the full diff — merge or discard in one click.

§ 1.3

Connect your tools

Zevyn drives agents through the same CLI tools you already use — Claude Code, Codex, OpenCode, and Copilot. If you are already signed in to any of them, you are ready to go. No separate API key needed.

settings
Settings Models
Claude Code claude auth login subscription
Codex codex auth subscription
OpenCode local · socket always ready
Copilot gh auth login subscription
Note

Raw API keys are optional — use them if you want to connect a model directly instead of via the CLI. Either way, credentials are stored in your OS keychain and never leave your machine.

§ 2.1

Supervisor & roles

There are five built-in roles. Each is a system prompt and a tool allowlist. You can author custom roles in .zevyn/roles/<name>.md.

roles
supervisor · plans, dispatches, reviews, merges
builder · implements + writes tests
scout · surveys files, writes findings to memory
reviewer · reads diff, decides merge / request-changes
coordinator · watches a milestone end-to-end
§ 2.2

Worktrees & branches

Every agent gets a fresh worktree on its own branch — zevyn/<role>/<short-id>. Agents cannot see each other's unstaged changes and cannot block each other on git locks.

Note

When a worktree merges cleanly, Zevyn removes it automatically. Discarded branches are deleted from the worktree dir but kept locally until git garbage-collects them.

§ 2.3

Memory graph

A local markdown vault at .zevyn/memory/ with [[wikilinks]], frontmatter, and BM25 full-text search. Agents create, append, link, and search notes — context compounds across sessions, not just conversations.

memory
zv_memory_create id, title, body, tags
zv_memory_append id, body
zv_memory_search query BM25
zv_memory_neighbors id backlinks + forward links
§ 2.4

Task board

A shared Kanban — pending, in-progress, completed — with depends_on edges and files_to_own scopes. The Supervisor assigns tasks; agents complete them with structured summaries. Completing a task automatically unblocks anything that depends on it.

§ 3.1

MCP: spawn

The Supervisor exposes its full toolset over MCP at a local endpoint shown in Settings → About. Anything you can say in plain language, you can also call programmatically.

mcp
zv_sup_spawn_agent {
role: "builder",
label: "rate limit",
initial_prompt: "Implement IP-based rate limiting (60 rpm).",
}
§ 3.3

MCP: review & merge

mcp
zv_sup_review_worktree agent_id changed files + status
zv_sup_diff_worktree agent_id full diff against main
zv_sup_merge_worktree agent_id merged | already | conflict
zv_sup_discard_worktree agent_id cleanup + branch delete
§ 4.1

Model formats

Each agent CLI takes its model as a plain string that Zevyn forwards to that tool — there is no whitelist on our side. The accepted shape differs per backend, and several fail silently (they fall back to a default instead of erroring) when the string is wrong, so the exact format matters. Set these under Settings → Agents → Default models; a per-spawn override always wins.

Claude Codeclaude --model <id>
Examples
claude-opus-4-8claude-sonnet-4-6claude-haiku-4-5-20251001
Gotcha

A plain Anthropic model slug, forwarded verbatim. If it is not one your installed claude CLI recognizes, the CLI errors at spawn — the one backend that fails loudly rather than silently.

Codexconfig.toml · model = "<id>"
Examples
gpt-5.5gpt-5.4
Gotcha

The slug must exist in Codex's models_cache.json (visibility: list). A slug that is not cached is silently discarded — Codex falls back to your account default with no error.

OpenCode<provider>/<model>
Examples
github-copilot/gpt-4.1anthropic/claude-sonnet-4-6openrouter/deepseek/deepseek-v4-flash:free
Gotcha

Provider-prefixed and routed to whichever provider you are authed for. Name a provider you have not signed into and OpenCode silently falls back to another reachable model. OpenRouter ids may carry a :free (or other) tag suffix.

Geminigemini --model <id>
Examples
gemini-2.5-progemini-2.5-flash
Gotcha

A Google model id passed to the gemini CLI and validated server-side at request time. Needs host auth (GEMINI_API_KEY or OAuth) before the model resolves.

Cursorcursor-agent --model <id>
Examples— leave blank —
Gotcha

Cursor does its own model routing and ships no documented default. Leave this blank so cursor-agent picks its own validated default; only set an id if you know Cursor routes it.

Note

Whatever the backend, the string is validated before launch: at most 100 characters, and only letters, digits, and the characters . _ / - : are allowed. An empty value is always valid and means: let that CLI choose its own default.

§ 5.1

Zevyn Remote

Zevyn Remote pairs your phone with a running desktop so you can drive your supervisor from anywhere — watch the fleet, answer an agent's prompt, and approve plans or merges while you are away from your machine. It is a read-mostly pocket supervisor, not a full editor.

There is nothing to install from an app store: Remote is a progressive web app you open at zevyn.dev/remote and add to your home screen. The desktop dials OUT to a relay — no inbound ports, no port forwarding — and every session is end-to-end encrypted, so the relay only ever sees ciphertext.

Note

Pairing needs no login and no account on the phone. Your desktop authorizes the phone directly: it shows a single-use QR that expires in 90 seconds, your phone scans it, and you confirm that the same 5-digit code appears on both screens. A photographed QR is inert — the nonce is one-time and short-lived.

§ 5.2

Set up on iOS & Android

Start on the desktop. Open Settings → Zevyn Remote, turn on Enable Zevyn Remote (phone bridge), and Save so the bridge starts. Then click Pair a device — a QR appears with a 90-second countdown.

On iPhone or iPad, open zevyn.dev/remote in Safari, then tap the Share button → Add to Home Screen → Add. Launch Zevyn Remote from your home screen and tap Scan pairing QR.

On Android, open zevyn.dev/remote in Chrome, then open the ⋮ menu → Install app (or Add to Home Screen) and confirm. Launch Zevyn Remote from your home screen and tap Scan pairing QR.

Point the phone at the desktop's QR. Your phone runs the encrypted handshake and shows a 5-digit code; check it matches the code on the desktop, then press Confirm pairing on the desktop. The phone flips to Paired and opens your fleet — you are connected.

Note

On the phone, enable App lock when prompted so it asks for your biometrics or passcode each time Remote opens — a lost, unlocked phone should not be able to reach your fleet. You can unpair at any time from Settings → Zevyn Remote on the desktop, or from Manage device in the app.

Want the full MCP schema?

Every tool, every field, every return type — generated from source.

mcp.schema.json