Configuration
Zenus reads configuration from ~/.zenus/config.yaml. Every key can also be set via
environment variable — the rule is config.yaml wins, env var is the fallback.
Run zenus config --path to see the active config file location.
Minimal config
version: "1.1.0"
llm:
provider: anthropic
model: claude-sonnet-4-6
api_key: "" # or ANTHROPIC_API_KEY env var
LLM
llm:
provider: anthropic # anthropic | openai | deepseek | ollama
model: claude-sonnet-4-6
api_key: "" # ANTHROPIC_API_KEY / OPENAI_API_KEY / DEEPSEEK_API_KEY
temperature: 0.3
max_tokens: 4096
timeout: 30
ollama_base_url: "http://localhost:11434" # only for provider: ollama
Execution
execution:
max_retries: 3
confirmation_required: true # prompt before risk≥2 operations
dry_run: false # global dry-run toggle
sandbox_enabled: true
max_parallel_workers: 4
task_queue_max_size: 100
Memory & caching
memory:
session_enabled: true
world_model_enabled: true
intent_history_enabled: true
max_session_turns: 50
cache:
intent_cache_enabled: true
intent_cache_ttl: 3600 # seconds
intent_cache_max_size: 1000
Search
search:
brave_api_key: "" # BRAVE_SEARCH_API_KEY — free tier: 2,000 req/month
Get a free key at brave.com/search/api. Without it, Zenus falls back to the 7-source parallel chain (Wikipedia, HN, GitHub, Reddit, arXiv, RSS).
MCP
mcp:
server:
enabled: false
transport: stdio # stdio | sse
host: "127.0.0.1" # only for transport: sse
port: 8765 # only for transport: sse
allow_privileged: false # expose ShellOps and CodeExec
client:
enabled: false
servers:
- name: filesystem
transport: stdio
command: "uvx mcp-server-filesystem /home/user/projects"
- name: remote
transport: sse
url: "http://localhost:9000/sse"
Start the server: zenus mcp-server (or zenus mcp-server --transport sse).
Debug flags
All flags default to false. Enable only what you need — each one scopes to a subsystem.
debug:
enabled: false # master switch — enables all flags at once
orchestrator: false # routing decisions, cache hits, provider overrides
brain: false # prompt evolution, model internals
execution: false # per-step results, parallel-fallback notices
search: false # query category, source breakdown, raw snippets
voice: false # TTS/STT init, pipeline state transitions
Environment variable equivalents:
ZENUS_DEBUG=1 # enable all
ZENUS_DEBUG_ORCHESTRATOR=1 # orchestrator only
ZENUS_DEBUG_SEARCH=1 # search only
# etc.
Secrets (HashiCorp Vault)
secrets:
vault_enabled: false
vault_addr: "http://127.0.0.1:8200"
vault_token: "" # VAULT_TOKEN env var
vault_mount: "secret"
vault_path: "zenus"
When enabled, Vault values override environment variables.
Rollback
rollback:
max_history: 100
auto_backup: true