DocsStart
Features
Every capability below is derived from the command surface this binary
actually ships (zirv commands --json), grouped by area; each bullet links
to the section that documents it in depth.
Script runner#
- Script formats and layout — YAML, JSON, or TOML scripts live in
.zirv/commands/(or the global~/.zirv/commands/) with name/description metadata, extendable to new formats. See Directory Structure and Schema Examples. - Parameters — required, positional
${var}parameters, plus trailing optional ones (greeting?) that resolve to an empty string when omitted. See Passing Parameters and Optional Parameters. - Capture output —
capture: var_nameon any step grabs its stdout into${var_name}for later substitution. See Capture Output. - Failure hooks — a
fallbacksub-chain runs once on step failure (the original command is never retried);proceed_on_failureseparately controls whether the script continues. See Failure Hooks. - Flexible per-step options —
interactivemode,operating_systemfilters,proceed_on_failure,delay_ms, andsecrets. See Schema Examples. - Dry run —
--dry-runprints every${...}-substituted step instead of running it. See Dry Run. - Chaining scripts — one script calls another as an ordinary command
(
command: zirv build). See Chaining Scripts. - Concurrent shells — nested command lists open one terminal window per
group, with a built-in
cdthat updates the working directory within a window. See Concurrent Shells. - Agent steps — an
agent/promptstep runs a supervised AI-agent task in place of a shell command, under the same pacing and rot detectionzirv ctx execgives a hand-written invocation. See Agent Steps. - Shortcuts — short aliases for local or global scripts. See Shortcuts.
- Reserved command names — built-in verbs can never be shadowed by a script or shortcut; a collision is flagged rather than silently swallowed. See Reserved Command Names.
- Helpful errors — a mistyped script or shortcut name gets up to 3 "did you mean" suggestions by edit distance instead of a bare failure. See Running Scripts.
- Cross-platform — Windows, macOS, and Linux. See Installation.
Harness supervision (zirv ctx)#
- MCP bridge —
mcp(zirv ctx mcp serve) exposes repository-scoped session, memory, workflow, artifact, worker-result, and inbox reads to wrapped MCP hosts.zirv ctx mcp doctorchecks a real stdio connection. See MCP bridge. - Harness adapters — one adapter per supported harness:
claude,codex,gemini,opencode,pi,copilot,droid,qwen,grok,kimi,cursor-agent,goose, andmuse, each enabled or disabled per repo in.zirv/.settings.toml. See .settings.toml. For which models zirv recognises on each harness, see Supported harnesses and models. - Dashboard — several supervised sessions in one terminal, with panes
for delegated workers, worktree groups, and kill/nudge/send from the
keyboard, plus an orchestrator view on
^A t. See The dashboard: multiple sessions in one terminal. - Agent graph —
graphprints a session's agents with each one's parent, job, workflow step and latest steps, and the events between them. See Hook registration (Claude Code). - Status line —
statuslineputs the session's usage and spend on Claude Code's status line. See Usage pacing. - Model discovery —
modelsshows the discovered models and prices that routing and spend use. See Model discovery and pricing. - Supervisor —
supervisoris an operator-only strong model whose binding rulings the operator can override. See Supervisor. - Persistent runtime (experimental) —
sessionruns a local service that owns the PTYs, so closing or crashing the client leaves the agents running:servestarts it,listshows what it holds,attachanddetachconnect and disconnect a terminal, andstopis the separate verb that actually ends something. Off by default and operator-only. See Persistent runtime (zirv session). - Nested sessions are refused — a supervisor started inside another supervised session stops instead of sharing its outer session's registry and turn signals. See Nested sessions are refused.
- Rot detection — a pure scoring engine turns transcript events into advise/compact/restart verdicts before context rot ruins a session. See Signals and verdicts.
- Usage pacing and cross-harness fallback — bounded pauses against the usage window, elastic scheduling across seats, and a handover to the other harness when one is exhausted. See Usage pacing and Cross-harness fallback and handover.
- Untrusted repository configuration — repo-owned
.zirv/surfaces may only narrow what zirv does; widening keys are operator-only. See Trust boundary. - Supervised exit codes — headless runs map every supervision outcome to a documented exit code. See Exit codes for supervised runs.
- Banner, status bar and events — a one-line banner and status bar in interactive sessions, with events surfaced as they happen. See Banner, status bar and events.
- Session types —
ctxsuperviseswrap(an interactive TUI through a PTY),exec(one supervised headless run), andloop(a fresh headless session per cycle);chatstarts an interactive orchestrator session (also the top-levelzirv chatalias, and barezirv), andagentdelegates one task to a supervised worker on another enabled harness (alsozirv agent);proxydecides a request's intent, complexity, risk and workflow before a launch, so the seat, model and workflow fit the task (opt-in;proxy statsreports per-class token cost and verified-pass rate, see Harness proxy). See Verbs and Just Runzirv. - Experimental:
native— a thin, case-insensitive top-level alias (zirv native) forzirv chat --runtime native, reserved so a script or shortcut can never shadow it. Shown only inzirv help's separately labelled "Experimental / work in progress" section, never beside the stable commands;zirv commands --jsonreports it with"stability": "experimental"and"runtime": "native". See The native conversation pane. - Handoffs and recovery —
scorerot-scores a transcript,handoffdistills one,resumestarts a clean session with the latest handoff injected,handoverswaps the orchestrator seat's model or harness in place mid-session, andaskdistills a read-only answer to an operator's question from a LIVE worker's own transcript without ever sending it input or touching its transcript or registry record. See Verbs and Cross-harness fallback and handover. - Status and attention —
status,explain-status, andwaitreport or block on a session's composed attention projection;watch <session-or- delegation> [--json] [--since <revision>]blocks on a session OR azirv agentdelegation id until it reaches a terminal state, printing one line per distinct revision observed along the way instead of only the final one;--sinceresumes without re-printing a revision an earlierwatchalready reported — since neither store keeps a history, only its current value, a resumed watch never replays every intermediate transition that happened while nobody was watching, only the ones it happens to catch plus the latest state. Stdout is transition data only, in both text and--jsonmode — "gone"/"replaced"/"timed out" are diagnostics, not transitions, and always go to stderr instead, so a--jsonconsumer's stdout is never anything but valid{revision, phase, at}lines. An exact delegation id resolves even when it is also an ambiguous or unmatched session prefix; when it names both an unambiguous session and a delegation, the session wins.snapshotprints a redacted, capped diagnostic summary. See Verbs and Signals and verdicts. - Mail and nudges —
send/inboxleave and read short notes between live sessions on this machine, andnudgewakes one early with a message;killterminates a registered session outright. See Sending mail between sessions and Session registry and nudging. - Memory bank —
remember/recall/forgetread and write this repo's cross-session memory bank from inside a session; the standalonezirv memory(memory) surface (init,status,list,recall,remember,forget,verify, pluspromote/rollback/optimize) manages it without starting one;learnpromotes a recurring fail-then-fix command correction from recent transcripts into one private memory entry. Seezirv memory, Memory bank, and Verbs. - Delegation controls —
group,objective,spend,savings,worktree,task, andswarmbound, account for, and reclaim delegated work;reconcileruns every dead-owner sweep in one pass (--dry-runto report only);permissions(audit/compile/propose) andsafety(check/list/explain) audit and enforce zirv's harness-neutral command-safety policy;closeends a group or objective early. See Permission auditing and safe-list proposals, Command safety policy, and Verbs. - Recall, measurement, and output —
searchranks past transcripts/handoffs/artifacts/mail against a query;measureanddiscoverreport proportionality and uncompacted-tool-result metrics;run/outputexecute a command directly and store its full output while printing a compact, reversible summary;compileprints or measures the composed session prompt. See Verbs. - Configuration and instruction hygiene —
configshows or edits the operator's~/.zirv/ctx.toml, andconfig migrate/--downgradeversions that file with a backup and a documented way back;provider(init/list/check/credential set) configures and inspects opt-in native provider routes, accounts and credentials;context(sync/lint/status) manages the canonical instruction-file layer;optimizereports redundancy, contradictions, and dead references across every configuration surface;usagereports usage-window state or tees the statusline. See Reviewing your instruction files and Environment variables worth knowing. - Jev advisory status —
jev(zirv ctx jev status) reports whether the hosted TypeSafe Jev advisor is active: each of the[jev]gates (off by default), whether its credential is present (never its value), and the endpoint and model in use, plus a per-site usage rollup (calls, cache-hit rate, p50/p95 latency, error count, and effect size — bytes removed / rows changed) over the last 7 days, folded read-only fromjev-decisions.jsonl,jev-effects.jsonlandjev-skips.jsonl(an enabled site that could not ask -- credential missing, or a state the metadata guard refused -- counts as an error with its reason, never a call;jev-session-aliases.jsonlmaps a launch's pre-minted session to the persistent-runtime session it became, so a session-scoped rollup still counts its intake rows). See Harness proxy. - Configured capabilities —
capabilitiesreports every non-shell integration a native session can use — MCP servers, web search/fetch, browser, language diagnostics, artifact and frontend rendering — asavailable,unavailableorunverified, naming the missing binary, credential or config key for anything absent.--probecontacts each configured MCP server to verify it;--requiregates a script on the same admission rule the workflow engine applies. See Native configured capabilities. - Native readiness —
doctordiagnoses whether this machine can run a native session: per role, which backend an unflagged session gets and which authority decided it, which route it would spend, and every problem sorted into exactly one ofmissing-auth-material,inaccessible-model,missing-tool,unsupported-isolation,service-failureorupstream-entitlement— so a missing native adapter is never dismissed as an entitlement problem. Writes nothing;--liveadditionally contacts each provider's model-list endpoint. Redacted likesnapshot, so the output is safe to paste into a bug report. See Native setup, diagnosis and rollback. - Local runtime protocol —
api(schema/serve/call) publishes zirv's versioned local control surface: an owner-only unix socket or Windows named pipe carrying NDJSON requests, replies and event subscriptions, with a generated schema and frozen wire fixtures. See Runtime protocol v1. - Hooks —
hookwires zirv into Claude Code's and Codex's own lifecycle events (stop, prompt, pre-compact, pretool/posttool, permission, notify, session-start), audits recorded decisions, and checks or heals the installed hook entries against their baseline. See Hook registration (Claude Code). - Sensitive-data masking —
obfuscate(list/reveal/scan/purge) inspects, reveals, audits and clears the per-repository placeholder vault that keeps credentials and personal data out of model and remote traffic. See What leaves this device.
What wrapping costs (measured)#
In a headless benchmark against Claude Code with the superpowers plugin (78 runs on Claude Sonnet 5), zirv cut cost per task by about 20% on ten large coding tasks, and by up to 42% on a 9-step working session. A blind reviewer (Claude Opus, not told which setup produced the work) rated zirv's work 9–11% higher. Hidden-test pass rates matched, and wall-clock speed was on par. The large-task cost and quality gains are statistically significant (paired bootstrap, 95% CI). Results and caveats: the 2026-09 benchmark round; protocol and harness: docs/benchmarks/wrapped-vs-vanilla.md.
Development workflow commands#
- Skills —
skillinspects model-agnostic engineering skills (list,show,load,export,read, each taking an<id>) layered from built-in, operator-global, and repository sources. See Development Workflows. - Workflow lifecycle —
workflowruns the durableintent → spec → plan → implement → test → review → verify → deploylifecycle:listbuilt-in definitions,showone,classifya task without starting,startand persist one,statusan instance,resumea persisted one,reclassifyits methodology overlay, andcontextprints the current step's resolved skill context. See The full verb set and Lifecycle and artifacts. - Gating and progress —
approvea gated step,advancerecords a step result and transitions the state machine, andcloseends a workflow that will not reachCompleted. See Deploy tiers and Workflow adoption. - Artifacts and agent seats —
artifactsinspects committed work-product artifacts and their acceptance state, andagents(list/show/dispatch) inspects provider-neutral workflow seats and trust provenance;dispatch --runtime nativeruns a read-only seat on zirv's own runtime with no coding harness installed. See Agent registry. - Team composition —
team(plan/show/brief) compiles the smallest capable team for a request from the agent/skill registries, persists it on a workflow, and briefs one compiled seat with only its own manifest instructions and attached skills. See Team composition. - Review —
review(package/run/add/dispose/list/ingest-pr-comments) builds compact review packages and persists finding dispositions;run --runtime nativeruns the reviewer seat natively. With operator-ownedjev.reviewenabled, bounded advisory dispositions order the package and high-confidence Nit/Minor duplicate matches can converge a round; stored severity and disposition remain authoritative. - Maintenance and telemetry —
maintain(scan) runs deterministic operator-configured maintenance detectors,statsaggregates privacy-conscious local workflow telemetry, andcalibratereads recorded workflow outcomes and proposes (never applies) one-step heavier/lighter routing per complexity bucket. See Maintain loop and Outcome calibration. - Autoresearch campaigns —
research(plan/run/status/report) runs a bounded, budgeted, resumable experiment over small policy changes against a fixed evaluator and baseline, and writes an evidence report plus a reviewable proposal it never applies;spendreconciles attributed spend exactly once, keeping execution cost and experiment overhead apart. See Autoresearch campaigns. - Frontend quality —
frontendderives a design profile and drives autonomous frontend work end to end (profile,capabilities,check,render,review,benchmark). See Frontend quality.
Verification#
- Repository-aware checks —
testmaps changed paths to checks (changed), runs every eligible check (all), or records an operator-owned baseline of already-failing tests (baseline) so a pre-existing failure never blocks a workflow gate. See The full verb set. - Final verification —
verifyruns the full check suite plus zirv's own built-in self-check registry. When the whole-changeset fingerprint (HEAD plus the uncommitted diff) matches the priortestrun exactly, it reuses that run's evidence wholesale; otherwise it can still reuse an individual check's prior result, per check, when the checkout is on the same commit as that report, the report was not narrowed to a--checksubset, the check passed outright, and nothing under that check's own declaredpathschanged since. A check with no declaredpathsalways re-runs, and a report built from a mix of reused and fresh checks still covers every required check. See The full verb set. - Repository check configuration — optional, schema-versioned
.zirv/verify.tomldeclares check id/kind/command/path patterns/phase eligibility/timeout; without it, Cargo commands andnpm runscripts are discovered from the manifests present, each with its own defaultpaths. Declaringpathsnarrowly lets an unrelated change elsewhere skip re-running that check at final verification. See Frontend quality.
Housekeeping#
- Guided setup —
setupmigrates an existing Claude Code/Codex repo to Zirv (apply,status,profile), andreset/restorefactory-reset or restore AI-specific settings separately from the rest of Zirv (setup reset,setup restore). See AI setup and harness migration. - Guided tour —
tour(zirv tour [topic]) walks a new installation through nine topics (overview, scripts, workflow, harnesses, memory, safety, jev, config, unstuck); pages under a TTY, plain-prints when piped, exits 1 on an unknown topic while naming every valid one, and is offered automatically at the end of a successful first run. See Guided tour. - Self-update —
update(--version <x.y.z>) installs the latest or a specified zirv release. See Upgrading. - Model benchmark —
benchmark(plan,run,report) detects the installed harnesses and models, runs an embedded role-tagged task corpus against each candidate, and measures wall time, API-equivalent USD and quality, then recommends an orchestrator and a worker. See Benchmarking agents and models. - Bug and feature reports —
report(bug/feature) files a Zirv issue on GitHub, optionally attaching a redactedsnapshot. - Workflow artifacts —
artifactregisters and inspects workflow artifacts (list,present,render,show); presentation prefers an adapter's native mechanism and falls back to a static file. See Frontend quality. - Bundled orientation —
skill(--json) prints the bundled operator orientation skill for this binary (alsozirv --skill). - Command inventory —
commands(--json) lists every command this binary accepts, generated straight from its own clap model. - Project bootstrap —
initcreates a.zirv/directory here, andcreateinteractively (or flag-driven) writes a new script into.zirv/commands/. See Initialize a Project and Creating a New Script. - Help and version —
helplists every available script and shortcut, local and global, andversionprints the installed version;--versionand-Vare accepted as shorthand equivalents. See Usage.