Files
mesh-configs/config.yaml
T

759 lines
18 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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