Docs · Configuration

Configure Corvi.

Environment variables, the local data directory, model presets, and the MCP / plugin config — everything that shapes a run without touching code.

Environment variables

The CLI and engine resolve credentials from environment variables first, then the app's stored keys. There is no .env auto-loader, so export your keys into the shell before a run:

set -a; . ./.env; set +a
corvi run --workspace . --prompt "…" --review --synthesize
VariableUsed byDescription
ANTHROPIC_API_KEYdraft passAnthropic key for the draft model (and the --claude-code API fallback).
OPENAI_API_KEY--reviewOpenAI key for the review pass.
OPENROUTER_API_KEYopenrouter/ modelsOpenRouter key, used when --model is openrouter/<vendor>/<model>.
SEARXNG_URL--allow-webSelf-hosted SearXNG endpoint backing web_search. Unset → web_search refuses cleanly.
CORVI_DATA_DIRrun / costs / mcp-serveOverride the data directory (plan store + cost ledger + memory).
CORVI_MCP_ALLOW_CREATEmcp-serveSet to "0" to drop the create_plan tool (strictly read-only).
Model calls go straight from your machine to the provider on your own key — Corvi is never in the path. See Egress & trust.

The data directory

Corvi keeps everything local in one data directory: the plan library, the cost ledger, and learned repo memory. The app uses its default macOS Application Support location; point a tool at a different store with --data-dir or CORVI_DATA_DIR.

# Serve a specific plan store over MCP
corvi mcp-serve --data-dir ~/Library/Application\ Support/Corvi

A scratch directory is handy for headless or test runs that shouldn't touch your real library:

CORVI_DATA_DIR=/tmp/corvi-scratch corvi run --workspace . --prompt "…" --save

Model presets

A preset sets the draft / review / synthesize pipeline in one flag. quality, allRound, value, and fullLocal are tuned from the benchmark; claudeCode is the all-Claude pipeline that runs on your own Claude account via --claude-code. An explicit --model or --review-model overrides the preset.

PresetPipelineWhen to reach for it
qualityThree-pass: draft → review → synthesize.Default. The most thorough plan.
allRoundThree-pass, balanced models.Strong plans at lower cost than quality.
valueThree-pass, cost-tuned models.Cheapest reviewed plans.
fullLocalOn-device via Ollama; nothing leaves the machine.Air-gapped or zero-cloud work.
claudeCodeAll-Claude draft + review + synthesize, web on by default.Runs on your own Claude account with --claude-code.
corvi run --workspace . --prompt "…" --preset value

MCP server config

An MCP client reaches your plan library by launching the bundled binary over stdio. Add a corvi entry to the client's mcpServers config:

{
  "mcpServers": {
    "corvi": {
      "command": "/Applications/Corvi.app/Contents/Resources/corvi",
      "args": ["mcp-serve"],
      "env": { "CORVI_DATA_DIR": "<your Corvi plan store>" }
    }
  }
}

That is exactly what the app's Connect action writes. Full tool list and troubleshooting: Run as an MCP server.

Claude Code plugin config

The Claude Code plugin runs against the local Corvi binary. Two config keys matter:

KeyDefaultDescription
corvi_binary/Applications/Corvi.app/…/corviPoint at the bundled binary if Corvi isn't in /Applications.
allow_create_plan"1"Set to "0" to make the plugin strictly read-only (no paid create_plan tool).

See Plan in Claude Code for the one-command install.