Configuration
Project config, user config, API keys, and template overrides.
Configuration layers
| Layer | Location | Committed to git? | Purpose | Status |
|---|---|---|---|---|
| User config | ~/.vibeconfig |
No | API keys, personal defaults | Implemented |
| Inline | Vibefile |
Yes | Model selection, per-target overrides | Implemented |
| Project config | .vibe/config.yaml |
Yes | MCP server definitions, skill sources | Coming soon |
User configuration — ~/.vibeconfig
The user config file holds API keys and personal defaults. It is never committed to version control.
API key resolution order (implemented):
--api-keyCLI flagVIBE_API_KEYenvironment variable- Provider-specific env var (inferred from the model):
ANTHROPIC_API_KEYfor Claude modelsOPENAI_API_KEYfor OpenAI models
~/.vibeconfigglobal config file
# ~/.vibeconfig — never committed to version control
default_model: claude-sonnet-4-6
anthropic_key: sk-ant-...
openai_key: sk-...
The CLI supports both Anthropic (Claude) and OpenAI models. The provider is automatically detected from the model name — claude/sonnet/haiku/opus routes to Anthropic, gpt/o1/o3 routes to OpenAI.
Inline configuration — Vibefile
Model selection is declared directly in the Vibefile:
model = claude-sonnet-4-6
deploy:
"deploy to production"
Individual targets can override the top-level model:
model = claude-haiku-4-5
release: test build
model = claude-opus-4-6
"bump version, update changelog, tag, push, open release PR"
Template overrides
The vibe init template system supports overrides. When resolving a template for a detected language, the CLI checks these locations in order:
.vibe/templates/<lang>.yaml— project-local override~/.vibe/templates/<lang>.yaml— user-global override- Built-in templates — always available as fallback
This means you can customize the targets generated by vibe init for your project or globally for all your projects without modifying the CLI source. See Project Detection for the template YAML format.
Project configuration — .vibe/config.yaml
Coming soon.
Registry integration
Coming soon.