Skip to main content

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:

  1. Create ~/.nimbus/ directory
  2. Write a default config.toml
  3. 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.