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| Variable | Used by | Description |
|---|---|---|
ANTHROPIC_API_KEY | draft pass | Anthropic key for the draft model (and the --claude-code API fallback). |
OPENAI_API_KEY | --review | OpenAI key for the review pass. |
OPENROUTER_API_KEY | openrouter/ models | OpenRouter key, used when --model is openrouter/<vendor>/<model>. |
SEARXNG_URL | --allow-web | Self-hosted SearXNG endpoint backing web_search. Unset → web_search refuses cleanly. |
CORVI_DATA_DIR | run / costs / mcp-serve | Override the data directory (plan store + cost ledger + memory). |
CORVI_MCP_ALLOW_CREATE | mcp-serve | Set to "0" to drop the create_plan tool (strictly read-only). |
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/CorviA 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 "…" --saveModel 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.
| Preset | Pipeline | When to reach for it |
|---|---|---|
quality | Three-pass: draft → review → synthesize. | Default. The most thorough plan. |
allRound | Three-pass, balanced models. | Strong plans at lower cost than quality. |
value | Three-pass, cost-tuned models. | Cheapest reviewed plans. |
fullLocal | On-device via Ollama; nothing leaves the machine. | Air-gapped or zero-cloud work. |
claudeCode | All-Claude draft + review + synthesize, web on by default. | Runs on your own Claude account with --claude-code. |
corvi run --workspace . --prompt "…" --preset valueMCP 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:
| Key | Default | Description |
|---|---|---|
corvi_binary | /Applications/Corvi.app/…/corvi | Point 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.