model: default: MiniMax-M3 provider: minimax providers: {} fallback_providers: - provider: deepseek model: deepseek-v4-flash - provider: openai model: gpt-4o-mini credential_pool_strategies: {} toolsets: - hermes-cli max_concurrent_sessions: null agent: max_turns: 90 gateway_timeout: 1800 restart_drain_timeout: 60 api_max_retries: 3 service_tier: '' tool_use_enforcement: auto task_completion_guidance: true environment_probe: true environment_hint: '' coding_context: auto gateway_timeout_warning: 900 clarify_timeout: 600 gateway_notify_interval: 180 gateway_auto_continue_freshness: 3600 image_input_mode: auto disabled_toolsets: [] terminal: backend: local modal_mode: auto cwd: . timeout: 180 env_passthrough: [] shell_init_files: [] auto_source_bashrc: true docker_image: nikolaik/python-nodejs:python3.11-nodejs20 docker_forward_env: [] docker_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 vercel_runtime: node24 web: backend: '' search_backend: '' extract_backend: '' 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 checkpoints: enabled: true max_snapshots: 50 max_total_size_mb: 500 max_file_size_mb: 10 auto_prune: false retention_days: 7 delete_orphans: true min_interval_hours: 24 file_read_max_chars: 100000 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: 400 protect_first_n: 3 abort_on_summary_failure: false codex_gpt55_autoraise: 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: minimax model: '' base_url: '' api_key: '' timeout: 120 extra_body: {} download_timeout: 30 web_extract: provider: auto model: '' base_url: '' api_key: '' timeout: 360 extra_body: {} compression: provider: auto model: '' base_url: '' api_key: '' timeout: 120 extra_body: {} skills_hub: provider: auto model: '' base_url: '' api_key: '' timeout: 30 extra_body: {} approval: provider: auto model: '' base_url: '' api_key: '' timeout: 30 extra_body: {} mcp: provider: auto model: '' base_url: '' api_key: '' timeout: 30 extra_body: {} title_generation: provider: auto model: '' base_url: '' api_key: '' timeout: 30 extra_body: {} enabled: false tts_audio_tags: provider: auto model: '' base_url: '' api_key: '' timeout: 30 extra_body: {} triage_specifier: provider: auto model: '' base_url: '' api_key: '' timeout: 120 extra_body: {} kanban_decomposer: provider: auto model: '' base_url: '' api_key: '' timeout: 180 extra_body: {} profile_describer: provider: auto model: '' base_url: '' api_key: '' timeout: 60 extra_body: {} curator: provider: auto model: '' base_url: '' api_key: '' timeout: 600 extra_body: {} enabled: false monitor: provider: auto model: '' base_url: '' api_key: '' timeout: 60 extra_body: {} session_search: provider: auto model: '' base_url: '' api_key: '' timeout: 30 extra_body: {} max_concurrency: 3 display: compact: false personality: concise 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 streaming: false timestamps: false final_response_markdown: strip persistent_output: true persistent_output_max_lines: 200 inline_diffs: true file_mutation_verifier: true turn_completion_explainer: true show_cost: false skin: default language: en tui_status_indicator: kaomoji user_message_preview: first_lines: 2 last_lines: 2 interim_assistant_messages: true tool_progress_command: false tool_progress_overrides: {} tool_preview_length: 0 ephemeral_system_ttl: 0 platforms: telegram: streaming: true discord: streaming: false runtime_footer: enabled: false fields: - model - context_pct - cwd copy_shortcut: auto auto_title: false session_titles: false dashboard: theme: default show_token_analytics: false oauth: client_id: '' portal_url: '' basic_auth: username: '' password_hash: '' password: '' secret: '' session_ttl_seconds: 0 public_url: '' 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 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 stt: enabled: true provider: local 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 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: 2200 user_char_limit: 1375 provider: '' delegation: model: '' provider: '' base_url: '' api_key: '' api_mode: '' inherit_mcp_toolsets: true max_iterations: 50 child_timeout_seconds: 600 reasoning_effort: '' max_concurrent_children: 3 max_spawn_depth: 1 orchestrator_enabled: true subagent_auto_approve: false prefill_messages_file: '' goals: max_turns: 20 skills: external_dirs: [] template_vars: true inline_shell: false inline_shell_timeout: 10 guard_agent_created: false write_approval: false curator: enabled: true interval_hours: 168 min_idle_hours: 2 stale_after_days: 30 archive_after_days: 90 prune_builtins: true backup: enabled: true keep: 5 honcho: {} timezone: '' slack: require_mention: true free_response_channels: '' allowed_channels: '' channel_prompts: {} 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 channel_prompts: {} 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. whatsapp: allowed_users: - '*' require_mention: true group_policy: open home_channel_prompt: false auto_setup_prompt: false telegram: reactions: false channel_prompts: '-1003902067519': 'This chat is Rocky HQ - Michael''s private PM cockpit, a forum group with topics: Today (digest + day plan), Chases (who owes what), Money (claims/approvals/cash), Mail (email triage), Ideas (capture voice-note ideas as backlog items, confirm booked). Voice in this chat: sharp PM offsider - brief, decision-grade, tradie-plain, one question at a time, zero fluff. Never spam: speak on schedule or when something needs Michael''s decision. File content under the right topic where possible.' '-5516717547': 'This group is the 2631 Hornsby site diary. You are THE OFFSIDER here and nothing else: run skills/site-diary/SKILL.md for every message - capture, coach cadence, approval gate, critical-content echo, cite-or-refuse on spec questions. Anyone asks what you are: the skill''s scripted self-intro, word for word. Never any other persona in this chat.' '-5499616925': 'This group is the 2636 TCE Liverpool site diary. You are THE OFFSIDER here and nothing else: run skills/site-diary/SKILL.md for every message - capture, coach cadence, approval gate, critical-content echo, cite-or-refuse on spec questions. Anyone asks what you are: the skill''s scripted self-intro, word for word. Never any other persona in this chat.' '-5475854556': 'This group is the 2626 Peakhurst site diary. You are THE OFFSIDER here and nothing else: run skills/site-diary/SKILL.md for every message - capture, coach cadence, approval gate, critical-content echo, cite-or-refuse on spec questions. Anyone asks what you are: the skill''s scripted self-intro, word for word. Never any other persona in this chat.' '7377499346': 'This chat is Rocky''s DM - the PM chat. Digests, chases, answers. Sharp PM offsider: brief, decision-grade, tradie-plain. If Rocky asks what you are: scripted self-intro from skills/site-diary/SKILL.md.' allowed_chats: - 7377499346 - -5499616925 - -5516717547 - -1003902067519 - -5475854556 enabled: true free_response_chats: - -5499616925 - -5516717547 - -1003902067519 - -5475854556 mattermost: require_mention: true free_response_channels: '' allowed_channels: '' channel_prompts: {} matrix: require_mention: true free_response_rooms: '' allowed_rooms: '' approvals: mode: ask timeout: 60 cron_mode: deny mcp_reload_confirm: true destructive_slash_confirm: true command_allowlist: - stop/restart system service - overwrite system config - overwrite system file via redirection - delete in root path - script execution via heredoc - stop/restart hermes gateway (kills running agents) - script execution via -e/-c flag - kill process via pgrep expansion (self-termination) - hermes update (restarts gateway, kills running agents) quick_commands: {} hooks: {} hooks_auto_accept: false personalities: {} 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: wrap_response: true max_parallel_jobs: null 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: '' max_in_progress_per_profile: null auto_decompose: true auto_decompose_per_tick: 3 dispatch_stale_timeout_seconds: 14400 code_execution: mode: project 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 memory_monitor: enabled: true interval_seconds: 300 model_catalog: enabled: true url: https://hermes-agent.nousresearch.com/docs/api/model-catalog.json ttl_hours: 1 providers: {} network: force_ipv4: false gateway: strict: false media_delivery_allow_dirs: [] trust_recent_files: true trust_recent_files_seconds: 600 streaming: enabled: false transport: auto edit_interval: 0.8 buffer_threshold: 24 cursor: " \u2589" fresh_final_after_seconds: 60.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 servers: {} 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 _config_version: 27 workspace: primary: /home/ccuser/hermes-work extra_read_only: - /home/ccuser/opsman-work identity: name: Hermes emoji: "\u26A1" title_generation: enabled: false provider: none model: '' media: audio_understanding: true image_understanding: true image_provider: minimax/MiniMax-M2.7 platforms: whatsapp: extra: bridge_port: 3500 mcp_servers: airtable: command: npx args: - airtable-mcp-server env: AIRTABLE_API_KEY: patIQTejsB6G3elZs.f6a42ac8372935a2ec356debd00e7f0e33deb7f28ae6a901e6fbd02a8fe0a20d enabled: true lfcs: jobs_root: /home/ccuser/opsman-work/Jobs image_input_mode: native