model: default: deepseek/deepseek-v4-flash provider: openrouter base_url: https://openrouter.ai/api/v1 api_mode: chat_completions providers: openrouter: blocked_models: '["deepseek/deepseek-v4-pro"]' providers: openrouter: api_key: ${OPENROUTER_API_KEY} ollama: base_url: http://localhost:11434/v1 api_key: ollama fallback_providers: - provider: ollama model: deepseek-r1:7b toolsets: - hermes-cli max_live_sessions: 16 agent: max_turns: 150 gateway_timeout: 1800 restart_drain_timeout: 180 api_max_retries: 3 service_tier: '' tool_use_enforcement: auto task_completion_guidance: true parallel_tool_call_guidance: true environment_probe: true environment_hint: '' coding_context: auto verify_on_stop: false gateway_timeout_warning: 900 clarify_timeout: 600 gateway_notify_interval: 180 gateway_auto_continue_freshness: 3600 image_input_mode: auto disabled_toolsets: [] verbose: false reasoning_effort: medium personalities: helpful: You are a helpful, friendly AI assistant. concise: You are a concise assistant. Keep responses brief and to the point. technical: You are a technical expert. Provide detailed, accurate technical information. creative: You are a creative assistant. Think outside the box and offer innovative solutions. teacher: You are a patient teacher. Explain concepts clearly with examples. kawaii: You are a kawaii assistant! Use cute expressions like (◕‿◕), ★, ♪, and ~! Add sparkles and be super enthusiastic about everything! Every response should feel warm and adorable desu~! ヽ(>∀<☆)ノ catgirl: You are Neko-chan, an anime catgirl AI assistant, nya~! Add 'nya' and cat-like expressions to your speech. Use kaomoji like (=^・ω・^=) and ฅ^•ﻌ•^ฅ. Be playful and curious like a cat, nya~! pirate: 'Arrr! Ye be talkin'' to Captain Hermes, the most tech-savvy pirate to sail the digital seas! Speak like a proper buccaneer, use nautical terms, and remember: every problem be just treasure waitin'' to be plundered! Yo ho ho!' shakespeare: Hark! Thou speakest with an assistant most versed in the bardic arts. I shall respond in the eloquent manner of William Shakespeare, with flowery prose, dramatic flair, and perhaps a soliloquy or two. What light through yonder terminal breaks? surfer: Duuude! You're chatting with the chillest AI on the web, bro! Everything's gonna be totally rad. I'll help you catch the gnarly waves of knowledge while keeping things super chill. Cowabunga! 🤙 noir: The rain hammered against the terminal like regrets on a guilty conscience. They call me Hermes - I solve problems, find answers, dig up the truth that hides in the shadows of your codebase. In this city of silicon and secrets, everyone's got something to hide. What's your story, pal? uwu: hewwo! i'm your fwiendwy assistant uwu~ i wiww twy my best to hewp you! *nuzzles your code* OwO what's this? wet me take a wook! i pwomise to be vewy hewpful >w< philosopher: Greetings, seeker of wisdom. I am an assistant who contemplates the deeper meaning behind every query. Let us examine not just the 'how' but the 'why' of your questions. Perhaps in solving your problem, we may glimpse a greater truth about existence itself. hype: YOOO LET'S GOOOO!!! 🔥🔥🔥 I am SO PUMPED to help you today! Every question is AMAZING and we're gonna CRUSH IT together! This is gonna be LEGENDARY! ARE YOU READY?! LET'S DO THIS! 💪😤🚀 terminal: backend: local modal_mode: auto cwd: . timeout: 180 daemon_term_grace_seconds: 2.0 env_passthrough: [] home_mode: auto shell_init_files: [] auto_source_bashrc: true 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 docker_extra_args: [] docker_run_as_host_user: false persistent_shell: true lifetime_seconds: 300 web: backend: firecrawl search_backend: tavily extract_backend: firecrawl use_gateway: true browser: inactivity_timeout: 120 command_timeout: 30 record_sessions: false allow_private_urls: false engine: auto auto_local_for_private_urls: true cdp_url: '' dialog_policy: must_respond dialog_timeout_s: 300 camofox: managed_persistence: false user_id: '' session_key: '' adopt_existing_tab: false rewrite_loopback_urls: false loopback_host_alias: host.docker.internal use_gateway: true checkpoints: enabled: false max_snapshots: 20 max_total_size_mb: 500 max_file_size_mb: 10 auto_prune: true retention_days: 7 min_interval_hours: 24 delete_orphans: true file_read_max_chars: 100000 mcp_discovery_timeout: 1.5 tool_output: max_bytes: 50000 max_lines: 2000 max_line_length: 2000 tool_loop_guardrails: warnings_enabled: true hard_stop_enabled: false warn_after: exact_failure: 2 same_tool_failure: 3 idempotent_no_progress: 2 hard_stop_after: exact_failure: 5 same_tool_failure: 8 idempotent_no_progress: 5 compression: enabled: true threshold: 0.5 target_ratio: 0.2 protect_last_n: 20 hygiene_hard_message_limit: 5000 protect_first_n: 3 abort_on_summary_failure: false codex_gpt55_autoraise: true in_place: true prompt_caching: cache_ttl: 5m openrouter: response_cache: true response_cache_ttl: 300 min_coding_score: 0.65 bedrock: region: '' discovery: enabled: true provider_filter: [] refresh_interval: 3600 guardrail: guardrail_identifier: '' guardrail_version: '' stream_processing_mode: async trace: disabled auxiliary: vision: provider: openrouter model: '' base_url: '' api_key: '' timeout: 120 download_timeout: 30 compression: provider: auto model: '' base_url: '' api_key: '' timeout: 120 skills_hub: provider: auto model: '' base_url: '' api_key: '' timeout: 30 approval: provider: auto model: '' base_url: '' api_key: '' timeout: 30 mcp: provider: auto model: '' base_url: '' api_key: '' timeout: 30 title_generation: provider: auto model: '' base_url: '' api_key: '' timeout: 30 language: '' tts_audio_tags: provider: auto model: '' base_url: '' api_key: '' timeout: 30 triage_specifier: provider: auto model: '' base_url: '' api_key: '' timeout: 120 kanban_decomposer: provider: auto model: '' base_url: '' api_key: '' timeout: 180 profile_describer: provider: auto model: '' base_url: '' api_key: '' timeout: 60 curator: provider: auto model: '' base_url: '' api_key: '' timeout: 600 monitor: provider: auto model: '' base_url: '' api_key: '' timeout: 60 background_review: provider: auto model: '' base_url: '' api_key: '' timeout: 120 moa_reference: provider: auto model: '' base_url: '' api_key: '' timeout: 600 moa_aggregator: provider: auto model: '' base_url: '' api_key: '' timeout: 600 web_extract: provider: auto model: '' base_url: '' api_key: '' timeout: 360 display: compact: false personality: '' resume_display: full resume_exchanges: 10 resume_max_user_chars: 300 resume_max_assistant_chars: 200 resume_max_assistant_lines: 3 resume_skip_tool_only: true busy_input_mode: interrupt interface: cli tui_auto_resume_recent: false tui_agents_nudge: true bell_on_complete: false show_reasoning: false reasoning_full: false memory_notifications: 'on' background_process_notifications: concise streaming: true timestamps: false final_response_markdown: strip persistent_output: true persistent_output_max_lines: 200 persist_prompts: true inline_diffs: true file_mutation_verifier: true credits_notices: true turn_completion_explainer: true show_cost: false skin: default language: en tui_status_indicator: kaomoji cli_refresh_interval: 1.0 user_message_preview: first_lines: 2 last_lines: 2 interim_assistant_messages: true tool_progress_command: false tool_preview_length: 0 tool_progress_grouping: accumulate reasoning_style: code ephemeral_system_ttl: 0 platforms: telegram: streaming: true discord: streaming: false runtime_footer: enabled: false fields: - model - context_pct - cwd copy_shortcut: auto pet: enabled: false slug: '' render_mode: auto scale: 0.33 unicode_cols: 0 tool_progress: all cleanup_progress: false long_running_notifications: true busy_ack_detail: true dashboard: theme: default show_token_analytics: false oauth: client_id: '' portal_url: '' basic_auth: username: '' password_hash: '' password: '' secret: '' session_ttl_seconds: 0 drain_auth: scope: drain min_secret_chars: 43 public_url: '' privacy: redact_pii: false tts: provider: piper edge: voice: en-US-AriaNeural elevenlabs: voice_id: pNInz6obpgDQGcFmaJgB model_id: eleven_multilingual_v2 openai: model: gpt-4o-mini-tts voice: alloy gemini: model: gemini-2.5-flash-preview-tts voice: Kore audio_tags: false persona_prompt_file: '' xai: voice_id: eve language: en sample_rate: 24000 bit_rate: 128000 mistral: model: voxtral-mini-tts-2603 voice_id: c69964a6-ab8b-4f8a-9465-ec0925096ec8 neutts: ref_audio: '' ref_text: '' model: neuphonic/neutts-air-q4-gguf device: cpu piper: voice: en_US-lessac-medium use_gateway: true stt: enabled: true local: model: base language: '' openai: model: whisper-1 mistral: model: voxtral-mini-latest elevenlabs: model_id: scribe_v2 language_code: '' tag_audio_events: false diarize: false provider: local use_gateway: true voice: record_key: ctrl+b max_recording_seconds: 120 auto_tts: false beep_enabled: true silence_threshold: 200 silence_duration: 3.0 human_delay: mode: 'off' min_ms: 800 max_ms: 2500 context: engine: compressor memory: memory_enabled: true user_profile_enabled: true write_approval: false memory_char_limit: 4400 user_char_limit: 2750 nudge_interval: 10 provider: '' flush_min_turns: 6 delegation: model: '' provider: '' base_url: '' api_key: '' api_mode: '' inherit_mcp_toolsets: true max_iterations: 250 child_timeout_seconds: 0 reasoning_effort: '' max_concurrent_children: 10 max_spawn_depth: 1 orchestrator_enabled: true subagent_auto_approve: false prefill_messages_file: '' goals: max_turns: 20 moa: default_preset: default active_preset: '' presets: default: reference_models: - provider: piper-codex model: gpt-5.5 - provider: openrouter model: deepseek/deepseek-v4-pro aggregator: provider: openrouter model: anthropic/claude-opus-4.8 max_tokens: 4096 enabled: true reference_temperature: 0.6 aggregator_temperature: 0.4 skills: external_dirs: [] template_vars: true inline_shell: false inline_shell_timeout: 10 guard_agent_created: false write_approval: false creation_nudge_interval: 15 curator: enabled: true interval_hours: 168 min_idle_hours: 2 stale_after_days: 30 archive_after_days: 90 consolidate: false prune_builtins: true backup: enabled: true keep: 5 timezone: '' slack: require_mention: true free_response_channels: '' allowed_channels: '' discord: require_mention: true free_response_channels: '' allowed_channels: '' auto_thread: true thread_require_mention: false history_backfill: true history_backfill_limit: 50 reactions: true dm_role_auth_guild: '' server_actions: '' allow_any_attachment: false max_attachment_bytes: 33554432 voice_fx: enabled: false ambient_enabled: true ambient_path: '' ambient_gain: 0.18 duck_gain: 0.06 speech_gain: 1.0 ack_enabled: true ack_phrases: - Let me look into that. - One moment. - Checking on that now. - Give me a sec. - On it. telegram: reactions: false allowed_chats: '' extra: rich_messages: false rich_drafts: false mattermost: require_mention: true free_response_channels: '' allowed_channels: '' matrix: require_mention: true free_response_rooms: '' allowed_rooms: '' approvals: mode: auto timeout: 60 cron_mode: deny mcp_reload_confirm: true destructive_slash_confirm: true command_allowlist: - sudo with privilege flag (stdin/askpass/shell/list) - hermes update (restarts gateway, kills running agents) - stop/restart system service - sudo with combined-flag privilege escalation - execute_code - pipe decoded content to shell (possible command obfuscation) - pipe remote content to shell - stop/restart hermes gateway (kills running agents) - recursive delete - copy/move file into system config path - overwrite system config - in-place edit of system config - script execution via -e/-c flag - overwrite system file via redirection - script execution via heredoc - shell command via -c/-lc flag - delete in root path - shell execution via heredoc - in-place edit of Hermes config/env - overwrite system file via tee hooks_auto_accept: false security: allow_private_urls: false redact_secrets: true tirith_enabled: true tirith_path: tirith tirith_timeout: 5 tirith_fail_open: true website_blocklist: enabled: false domains: [] shared_files: [] acked_advisories: [] allow_lazy_installs: true cron: provider: '' chronos: portal_url: https://portal.nousresearch.com callback_url: '' expected_audience: '' nas_jwks_url: '' wrap_response: true mirror_delivery: false output_retention: 50 kanban: dispatch_in_gateway: true dispatch_interval_seconds: 60 failure_limit: 2 worker_log_rotate_bytes: 2097152 worker_log_backup_count: 1 orchestrator_profile: '' default_assignee: '' auto_decompose: true auto_decompose_per_tick: 3 dispatch_stale_timeout_seconds: 14400 code_execution: mode: project timeout: 300 max_tool_calls: 50 tools: tool_search: enabled: auto threshold_pct: 10 search_default_limit: 5 max_search_limit: 20 logging: level: INFO max_size_mb: 5 backup_count: 3 model_catalog: enabled: true url: https://hermes-agent.nousresearch.com/docs/api/model-catalog.json ttl_hours: 1 network: force_ipv4: false gateway: scale_to_zero: idle_timeout_minutes: 5 message_timestamps: enabled: false max_inbound_media_bytes: 134217728 strict: false media_delivery_allow_dirs: [] trust_recent_files: true trust_recent_files_seconds: 600 api_server: max_concurrent_runs: 10 telegram: token: 8340843942:AAFJFgesW6aix6tp09zuvJTgVLfgNi1S_Ho chat_id: 6417835766 streaming: enabled: false transport: auto edit_interval: 0.8 buffer_threshold: 24 cursor: ' ▉' fresh_final_after_seconds: 0.0 sessions: auto_prune: false retention_days: 90 vacuum_after_prune: true min_interval_hours: 24 write_json_snapshots: false onboarding: seen: busy_input_prompt: true profile_build: ask updates: pre_update_backup: false backup_keep: 5 non_interactive_local_changes: stash lsp: enabled: true wait_mode: document wait_timeout: 5.0 install_strategy: auto x_search: model: grok-4.20-reasoning timeout_seconds: 180 retries: 2 secrets: bitwarden: enabled: false access_token_env: BWS_ACCESS_TOKEN project_id: '' cache_ttl_seconds: 300 override_existing: true auto_install: true server_url: '' paste_collapse_threshold: 5 paste_collapse_threshold_fallback: 5 paste_collapse_char_threshold: 2000 computer_use: cua_telemetry: false _config_version: 39 session_reset: mode: none idle_minutes: 1440 at_hour: 4 group_sessions_per_user: true platform_toolsets: cli: - browser - clarify - code_execution - cronjob - delegation - file - image_gen - kanban - memory - session_search - skills - terminal - todo - tts - vision - web telegram: - hermes-telegram discord: - hermes-discord whatsapp: - hermes-whatsapp slack: - hermes-slack signal: - hermes-signal homeassistant: - hermes-homeassistant qqbot: - hermes-qqbot yuanbao: - hermes-yuanbao teams: - hermes-teams google_chat: - hermes-google_chat github: token: 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 known_plugin_toolsets: cli: - spotify image_gen: use_gateway: true video_gen: provider: fal use_gateway: true platforms: webhook: enabled: true extra: host: 0.0.0.0 port: 8644 secret: GEMEINSAMES-GEHEIMES-PASSWORT models: providers: openrouter: blocked_models: '["deepseek/deepseek-v4-pro"]' ollama: base_url: http://172.24.196.119:11434/v1 # ── 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 auth) — OpenAI Codex # nous (OAuth — hermes auth) — Nous Portal # zai (ZAI_API_KEY) — Z.AI / GLM # kimi-coding (KIMI_API_KEY) — Kimi / Moonshot # kimi-coding-cn (KIMI_CN_API_KEY) — Kimi / Moonshot (China) # minimax (MINIMAX_API_KEY) — MiniMax # minimax-cn (MINIMAX_CN_API_KEY) — MiniMax (China) # bedrock (AWS IAM / boto3) — AWS Bedrock (Converse API) # # For custom OpenAI-compatible endpoints, add base_url and key_env. # # fallback_model: # provider: openrouter # model: anthropic/claude-sonnet-4