Configuration
Complete reference for Calliope CLI configuration options.
Configuration Methods
Calliope CLI can be configured through:
- Environment variables (highest priority)
- Config file (
~/.config/calliope/config.json) - Setup wizard (interactive)
- Slash commands (runtime)
Environment variables override config file values.
Config File
Location
| Platform | Path |
|---|---|
| macOS | ~/.config/calliope/config.json |
| Linux | ~/.config/calliope/config.json |
| Windows | %APPDATA%\calliope\config.json |
View your config path:
calliope --configStructure
{
"setupComplete": true,
"defaultProvider": "anthropic",
"defaultModel": "claude-sonnet-4-20250514",
"persona": "professional",
"maxIterations": 25,
"fancyOutput": true,
"autoSaveHistory": true,
"autoUpgrade": true,
"anthropicApiKey": "sk-ant-...",
"googleApiKey": "...",
"openaiApiKey": "sk-...",
"deepseekApiKey": "sk-...",
"ollamaBaseUrl": "http://localhost:11434",
"profiles": {
"work": { "persona": "professional", "maxIterations": 50 },
"quick": { "persona": "minimal", "maxIterations": 10 }
},
"activeProfile": "default"
}Managing Config
View config path:
calliope --configReset to defaults:
calliope --resetRun setup wizard:
calliope --setupEnvironment Variables
API Keys
| Variable | Description |
|---|---|
ANTHROPIC_API_KEY | Anthropic Claude API key |
OPENAI_API_KEY | OpenAI API key |
GOOGLE_API_KEY | Google Gemini API key |
MISTRAL_API_KEY | Mistral AI API key |
GROQ_API_KEY | Groq API key |
TOGETHER_API_KEY | Together AI API key |
OPENROUTER_API_KEY | OpenRouter API key |
FIREWORKS_API_KEY | Fireworks API key |
AI21_API_KEY | AI21 Labs API key |
HUGGINGFACE_API_KEY | HuggingFace API key |
DEEPSEEK_API_KEY | DeepSeek API key |
Service URLs
| Variable | Default | Description |
|---|---|---|
OLLAMA_BASE_URL | http://localhost:11434 | Ollama server URL |
LITELLM_BASE_URL | http://localhost:4000 | LiteLLM proxy URL |
LITELLM_API_KEY | (none) | LiteLLM API key if required |
Example Shell Configuration
Bash (~/.bashrc):
# Calliope CLI configuration
export ANTHROPIC_API_KEY="sk-ant-..."
export OPENAI_API_KEY="sk-..."
export GOOGLE_API_KEY="..."Zsh (~/.zshrc):
# Calliope CLI configuration
export ANTHROPIC_API_KEY="sk-ant-..."
export OPENAI_API_KEY="sk-..."Fish (~/.config/fish/config.fish):
# Calliope CLI configuration
set -x ANTHROPIC_API_KEY "sk-ant-..."
set -x OPENAI_API_KEY "sk-..."Configuration Options
Provider Settings
| Option | Type | Default | Description |
|---|---|---|---|
defaultProvider | string | auto | Default AI provider |
defaultModel | string | (per provider) | Default model override |
Valid providers:
anthropic, google, openai, together, openrouter, groq, fireworks, mistral, ollama, ai21, huggingface, deepseek, litellm, auto
Agent Settings
| Option | Type | Default | Description |
|---|---|---|---|
persona | string | calliope | Response style |
maxIterations | number | 20 | Max tool iterations per request |
Valid personas:
calliope- Poetic and creativeprofessional- Clear and conciseminimal- Extremely brief
Display Settings
| Option | Type | Default | Description |
|---|---|---|---|
fancyOutput | boolean | true | Show banners and colored output |
autoSaveHistory | boolean | true | Save conversation history |
autoUpgrade | boolean | true | Prompt to upgrade on startup |
Session Settings
| Option | Type | Default | Description |
|---|---|---|---|
workspaceRoot | string | (none) | Override working directory |
Profile Settings
| Option | Type | Default | Description |
|---|---|---|---|
profiles | object | {} | Named configuration profiles |
activeProfile | string | (none) | Currently active profile |
Configuration Profiles
Save and switch between different configuration sets:
Creating Profiles
calliope> /profile save work
Profile "work" saved
calliope> /profile save quick
Profile "quick" savedListing Profiles
calliope> /profile list
Available profiles:
- work
- quick
- default (active)Switching Profiles
calliope> /profile work
Switched to profile "work"Deleting Profiles
calliope> /profile delete quick
Profile "quick" deletedProfile Contents
Profiles store:
- Provider and model settings
- Persona selection
- Max iterations
- Any runtime settings
Project Configuration
Create a .calliope or .calliope.conf file in your project root:
project: MyProject
provider: anthropic
model: claude-sonnet-4
persona: professional
maxIterations: 25
[tech]
typescript
react
node
[conventions]
Use functional components
Prefer async/await
Write tests for new features
[ignore]
node_modules/
dist/
.env
[commands]
build: npm run build
test: npm test
lint: npm run lintSections
| Section | Description |
|---|---|
project | Project name |
provider | Default AI provider |
model | Default model |
persona | Default persona |
[tech] | Technologies used (one per line) |
[conventions] | Coding conventions (one per line) |
[ignore] | Paths to ignore (one per line) |
[commands] | Custom commands (name: command) |
Storage Directories
Calliope stores data in ~/.calliope-cli/:
| Directory | Contents |
|---|---|
sessions/ | Session state and history |
history/ | Conversation history |
todos/ | Task tracking |
templates/ | Saved prompt templates |
branches/ | Conversation branches |
mcp/ | MCP server configurations |
skills/ | Installed skills |
plugins/ | Custom plugins |
hooks/ | Hook definitions |
memory/ | Global memory |
profiles/ | Named profiles |
Runtime Configuration
Slash Commands
Change settings during a session:
# Change provider
calliope> /provider google
# Change model
calliope> /model gemini-1.5-pro
# Change persona
calliope> /persona minimal
# View current config
calliope> /statusCommand-Line Flags
| Flag | Description |
|---|---|
-g, --god-mode | Skip all permission prompts |
--setup | Run setup wizard |
--reset | Reset configuration |
--config | Show config file path |
Configuration Validation
Schema Validation
The config file is validated on load:
| Option | Constraints |
|---|---|
persona | Must be one of: calliope, professional, minimal |
maxIterations | Number between 1-100 |
defaultProvider | Must be a valid provider name |
Invalid values are replaced with defaults.
API Key Validation
API keys are validated when used:
- Minimum length: Most keys require 40+ characters
- Format: Checked for provider-specific prefixes (e.g.,
sk-ant-for Anthropic)
Best Practices
Security
- Use environment variables for API keys in shared environments
- Don’t commit config files to version control
- Restrict permissions on config files:
chmod 600 ~/.config/calliope/config.json
Organization
Keep keys in shell config for persistence:
# ~/.bashrc export ANTHROPIC_API_KEY="..."Use different profiles for different projects:
# Project-specific source .env.local calliope
Team Usage
For team projects, document the expected environment variables:
# .env.example (committed to repo)
ANTHROPIC_API_KEY=
GOOGLE_API_KEY=Team members create their own .env.local (gitignored) with actual values.