Configuration
Environment variables
The minimum required configuration:
export ANTHROPIC_API_KEY=sk-ant-...
export VOYAGE_API_KEY=pa-...
For hosted mode, also set:
export NIMBUS_API_KEY=nim-...
Using a .env file
Nimbus loads a .env file from the current directory if it exists. You can also place one in ~/.nimbus/.env for global configuration.
# ~/.nimbus/.env
ANTHROPIC_API_KEY=sk-ant-...
VOYAGE_API_KEY=pa-...
config.toml reference
Nimbus reads ~/.nimbus/config.toml on startup. The file is created automatically with defaults on first run.
[local]
# Path to ChromaDB vector store
chroma_dir = "~/.nimbus/chroma"
# Model used for the planning phase
default_model_planner = "claude-opus-4-6"
# Model used for the implementation phase
default_model_implementer = "claude-sonnet-4-6"
# Text editor to open for manual plan editing (empty = no editor)
editor = ""
# Enable audio cues (requires afplay on macOS or aplay on Linux)
sound = false
# Confidence threshold (%) for skipping the approval prompt
auto_approve_confidence = 92
# Debounce delay for nimbus watch (seconds)
watch_debounce_seconds = 30
# Debounce delay for nimbus pair (seconds)
pair_debounce_seconds = 3
First-time setup
Run nimbus from inside any git repository. On first launch it will:
- Create
~/.nimbus/directory - Write a default
config.toml - Index your repository (this takes 30–120 seconds depending on repo size)
The index is stored in ~/.nimbus/chroma/ and updated incrementally on subsequent runs.
Option: export vs config file
You can set any option via environment variable or config.toml. Environment variables take precedence.
# These are equivalent:
export ANTHROPIC_API_KEY=sk-ant-...
# vs
# anthropic_api_key = "sk-ant-..." in config.toml
For long-lived machines, adding keys to your shell profile (~/.zshrc or ~/.bashrc) is the most convenient approach.