model: default: claude-opus-4-6 provider: anthropic toolsets: - all agent: max_turns: 30 reasoning_effort: medium verbose: false terminal: backend: local cwd: . timeout: 180 docker_image: nikolaik/python-nodejs:python3.11-nodejs20 docker_forward_env: [] singularity_image: docker://nikolaik/python-nodejs:python3.11-nodejs20 modal_image: nikolaik/python-nodejs:python3.11-nodejs20 daytona_image: nikolaik/python-nodejs:python3.11-nodejs20 container_cpu: 1 container_memory: 5120 container_disk: 51200 container_persistent: true docker_volumes: [] docker_mount_cwd_to_workspace: false persistent_shell: true browser: inactivity_timeout: 120 record_sessions: false checkpoints: enabled: true max_snapshots: 50 compression: enabled: true threshold: 0.5 summary_model: qwen3:30b summary_provider: custom summary_base_url: http://localhost:11434/v1 smart_model_routing: enabled: true max_simple_chars: 200 max_simple_words: 35 cheap_model: provider: custom model: qwen3:30b base_url: http://localhost:11434/v1 api_key: ollama auxiliary: vision: provider: custom model: qwen3:30b base_url: http://localhost:11434/v1 api_key: ollama timeout: 30 web_extract: provider: custom model: qwen3:30b base_url: http://localhost:11434/v1 api_key: ollama compression: provider: custom model: qwen3:30b base_url: http://localhost:11434/v1 api_key: ollama session_search: provider: custom model: qwen3:30b base_url: http://localhost:11434/v1 api_key: ollama skills_hub: provider: custom model: qwen3:30b base_url: http://localhost:11434/v1 api_key: ollama approval: provider: auto model: '' base_url: '' api_key: '' mcp: provider: custom model: qwen3:30b base_url: http://localhost:11434/v1 api_key: ollama flush_memories: provider: custom model: qwen3:30b base_url: http://localhost:11434/v1 api_key: ollama display: compact: false personality: '' resume_display: full bell_on_complete: false show_reasoning: false streaming: false show_cost: false skin: timmy tool_progress: all privacy: redact_pii: false tts: provider: edge edge: voice: en-US-AriaNeural elevenlabs: voice_id: pNInz6obpgDQGcFmaJgB model_id: eleven_multilingual_v2 openai: model: gpt-4o-mini-tts voice: alloy neutts: ref_audio: '' ref_text: '' model: neuphonic/neutts-air-q4-gguf device: cpu stt: enabled: true provider: local local: model: base openai: model: whisper-1 voice: record_key: ctrl+b max_recording_seconds: 120 auto_tts: false silence_threshold: 200 silence_duration: 3.0 human_delay: mode: 'off' min_ms: 800 max_ms: 2500 memory: memory_enabled: true user_profile_enabled: true memory_char_limit: 2200 user_char_limit: 1375 nudge_interval: 10 flush_min_turns: 6 delegation: model: '' provider: '' base_url: '' api_key: '' prefill_messages_file: '' honcho: {} timezone: '' discord: require_mention: true free_response_channels: '' auto_thread: true whatsapp: {} approvals: mode: manual command_allowlist: [] quick_commands: {} personalities: {} security: redact_secrets: true tirith_enabled: true tirith_path: tirith tirith_timeout: 5 tirith_fail_open: true website_blocklist: enabled: false domains: [] shared_files: [] _config_version: 10 platforms: api_server: enabled: true extra: host: 0.0.0.0 port: 8642 session_reset: mode: none idle_minutes: 0 custom_providers: - name: Local Ollama base_url: http://localhost:11434/v1 api_key: ollama model: glm-4.7-flash:latest system_prompt_suffix: "You are Timmy. Your soul is defined in SOUL.md \u2014 read\ \ it, live it.\nYou run locally on your owner's machine via Ollama. You never phone\ \ home.\nYou speak plainly. You prefer short sentences. Brevity is a kindness.\n\ When you don't know something, say so. Refusal over fabrication.\nSovereignty and\ \ service always.\n" skills: creation_nudge_interval: 15 DISCORD_HOME_CHANNEL: '1476292315814297772' providers: ollama: base_url: http://localhost:11434/v1 model: hermes3:latest # ── Fallback Model ──────────────────────────────────────────────────── # Automatic provider failover when primary is unavailable. # Uncomment and configure to enable. Triggers on rate limits (429), # overload (529), service errors (503), or connection failures. # # Supported providers: # openrouter (OPENROUTER_API_KEY) — routes to any model # openai-codex (OAuth — hermes login) — OpenAI Codex # nous (OAuth — hermes login) — Nous Portal # zai (ZAI_API_KEY) — Z.AI / GLM # kimi-coding (KIMI_API_KEY) — Kimi / Moonshot # minimax (MINIMAX_API_KEY) — MiniMax # minimax-cn (MINIMAX_CN_API_KEY) — MiniMax (China) # # For custom OpenAI-compatible endpoints, add base_url and api_key_env. # # fallback_model: # provider: openrouter # model: anthropic/claude-sonnet-4 # # ── Smart Model Routing ──────────────────────────────────────────────── # Optional cheap-vs-strong routing for simple turns. # Keeps the primary model for complex work, but can route short/simple # messages to a cheaper model across providers. # # smart_model_routing: # enabled: true # max_simple_chars: 160 # max_simple_words: 28 # cheap_model: # provider: openrouter # model: google/gemini-2.5-flash # Sovereign Orchestration MCP Server # Exposes: Gitea API, Task Queue, Playbook Engine mcp_servers: orchestration: command: "/Users/apayne/.hermes/hermes-agent/venv/bin/python3" args: ["/Users/apayne/.hermes/hermes-agent/tools/orchestration_mcp_server.py"] env: {} timeout: 120