From 9250b0f1933835b251d4dd3b01374cb4d0df31f1 Mon Sep 17 00:00:00 2001 From: Hermes Agent service account Date: Tue, 26 May 2026 14:42:45 -0500 Subject: [PATCH] chore: remove defunct hermes directory The previous Hermes deployment configuration has been superseded. This directory is no longer used and is being removed as part of the transition to the new command centre on carousel-of-progress. --- hermes/.env | 469 --------------------------------------- hermes/config.yaml | 538 --------------------------------------------- 2 files changed, 1007 deletions(-) delete mode 100644 hermes/.env delete mode 100644 hermes/config.yaml diff --git a/hermes/.env b/hermes/.env deleted file mode 100644 index 812986d..0000000 --- a/hermes/.env +++ /dev/null @@ -1,469 +0,0 @@ -# Hermes Agent Environment Configuration -# Copy this file to .env and fill in your API keys - -# ============================================================================= -# LLM PROVIDER (OpenRouter) -# ============================================================================= -# OpenRouter provides access to many models through one API -# All LLM calls go through OpenRouter - no direct provider keys needed -# Get your key at: https://openrouter.ai/keys -# OPENROUTER_API_KEY= - -# Default model is configured in ~/.hermes/config.yaml (model.default). -# Use 'hermes model' or 'hermes setup' to change it. -# LLM_MODEL is no longer read from .env — this line is kept for reference only. -# LLM_MODEL=anthropic/claude-opus-4.6 - -# ============================================================================= -# LLM PROVIDER (NovitaAI) -# ============================================================================= -# NovitaAI — 90+ models, pay-per-use -# Get your key at: https://novita.ai/settings/key-management -# NOVITA_API_KEY= -# NOVITA_BASE_URL=https://api.novita.ai/openai/v1 # Override default base URL - -# ============================================================================= -# LLM PROVIDER (Google AI Studio / Gemini) -# ============================================================================= -# Native Gemini API via Google's OpenAI-compatible endpoint. -# Get your key at: https://aistudio.google.com/app/apikey -# GOOGLE_API_KEY=your_google_ai_studio_key_here -# GEMINI_API_KEY=your_gemini_key_here # alias for GOOGLE_API_KEY -# Optional base URL override (default: Google's OpenAI-compatible endpoint) -# GEMINI_BASE_URL=https://generativelanguage.googleapis.com/v1beta/openai - -# ============================================================================= -# LLM PROVIDER (Ollama Cloud) -# ============================================================================= -# Cloud-hosted open models via Ollama's OpenAI-compatible endpoint. -# Get your key at: https://ollama.com/settings -# OLLAMA_API_KEY=your_ollama_key_here -# Optional base URL override (default: https://ollama.com/v1) -# OLLAMA_BASE_URL=https://ollama.com/v1 - -# ============================================================================= -# LLM PROVIDER (z.ai / GLM) -# ============================================================================= -# z.ai provides access to ZhipuAI GLM models (GLM-4-Plus, etc.) -# Get your key at: https://z.ai or https://open.bigmodel.cn -# GLM_API_KEY= -# GLM_BASE_URL=https://api.z.ai/api/paas/v4 # Override default base URL - -# ============================================================================= -# LLM PROVIDER (Kimi / Moonshot) -# ============================================================================= -# Kimi Code provides access to Moonshot AI coding models (kimi-k2.5, etc.) -# Get your key at: https://platform.kimi.ai (Kimi Code console) -# Keys prefixed sk-kimi- use the Kimi Code API (api.kimi.com) by default. -# Legacy keys from platform.moonshot.ai need KIMI_BASE_URL override below. -# KIMI_API_KEY= -# KIMI_BASE_URL=https://api.kimi.com/coding/v1 # Default for sk-kimi- keys -# KIMI_BASE_URL=https://api.moonshot.ai/v1 # For legacy Moonshot keys -# KIMI_BASE_URL=https://api.moonshot.cn/v1 # For Moonshot China keys -# KIMI_CN_API_KEY= # Dedicated Moonshot China key - -# ============================================================================= -# LLM PROVIDER (Arcee AI) -# ============================================================================= -# Arcee AI provides access to Trinity models (trinity-mini, trinity-large-*) -# Get an Arcee key at: https://chat.arcee.ai/ -# ARCEEAI_API_KEY= -# ARCEE_BASE_URL= # Override default base URL - -# ============================================================================= -# LLM PROVIDER (MiniMax) -# ============================================================================= -# MiniMax provides access to MiniMax models (global endpoint) -# Get your key at: https://www.minimax.io -# MINIMAX_API_KEY= -# MINIMAX_BASE_URL=https://api.minimax.io/v1 # Override default base URL - -# MiniMax China endpoint (for users in mainland China) -# MINIMAX_CN_API_KEY= -# MINIMAX_CN_BASE_URL=https://api.minimaxi.com/v1 # Override default base URL - -# ============================================================================= -# LLM PROVIDER (OpenCode Zen) -# ============================================================================= -# OpenCode Zen provides curated, tested models (GPT, Claude, Gemini, MiniMax, GLM, Kimi) -# Pay-as-you-go pricing. Get your key at: https://opencode.ai/auth -# OPENCODE_ZEN_API_KEY= -# OPENCODE_ZEN_BASE_URL=https://opencode.ai/zen/v1 # Override default base URL - -# ============================================================================= -# LLM PROVIDER (OpenCode Go) -# ============================================================================= -# OpenCode Go provides access to open models (GLM-5, Kimi K2.5, MiniMax M2.5) -# $10/month subscription. Get your key at: https://opencode.ai/auth -# OPENCODE_GO_API_KEY= - -# ============================================================================= -# LLM PROVIDER (Hugging Face Inference Providers) -# ============================================================================= -# Hugging Face routes to 20+ open models via unified OpenAI-compatible endpoint. -# Free tier included ($0.10/month), no markup on provider rates. -# Get your token at: https://huggingface.co/settings/tokens -# Required permission: "Make calls to Inference Providers" -# HF_TOKEN= -# OPENCODE_GO_BASE_URL=https://opencode.ai/zen/go/v1 # Override default base URL - -# ============================================================================= -# LLM PROVIDER (Qwen OAuth) -# ============================================================================= -# Qwen OAuth reuses your local Qwen CLI login (qwen auth qwen-oauth). -# No API key needed — credentials come from ~/.qwen/oauth_creds.json. -# Optional base URL override: -# HERMES_QWEN_BASE_URL=https://portal.qwen.ai/v1 - -# ============================================================================= -# LLM PROVIDER (Xiaomi MiMo) -# ============================================================================= -# Xiaomi MiMo models (mimo-v2-pro, mimo-v2-omni, mimo-v2-flash). -# Get your key at: https://platform.xiaomimimo.com -# XIAOMI_API_KEY=your_key_here -# Optional base URL override: -# XIAOMI_BASE_URL=https://api.xiaomimimo.com/v1 - -# ============================================================================= -# TOOL API KEYS -# ============================================================================= - -# Exa API Key - AI-native web search and contents -# Get at: https://exa.ai -# EXA_API_KEY= - -# Parallel API Key - AI-native web search and extract -# Get at: https://parallel.ai -# PARALLEL_API_KEY= - -# Firecrawl API Key - Web search, extract, and crawl -# Get at: https://firecrawl.dev/ -# FIRECRAWL_API_KEY= - - -# FAL.ai API Key - Image generation -# Get at: https://fal.ai/ -# FAL_KEY= - -# Honcho - Cross-session AI-native user modeling (optional) -# Builds a persistent understanding of the user across sessions and tools. -# Get at: https://app.honcho.dev -# Also requires ~/.honcho/config.json with enabled=true (see README). -# HONCHO_API_KEY= - -# ============================================================================= -# HYPERLIQUID OPTIONAL SKILL -# ============================================================================= -# Optional defaults for the Hyperliquid skill in optional-skills/blockchain/hyperliquid -# -# Hyperliquid API base URL override -# Default: https://api.hyperliquid.xyz -# HYPERLIQUID_API_URL=https://api.hyperliquid-testnet.xyz -# -# Default address for account-level commands like state, fills, orders, and review -# HYPERLIQUID_USER_ADDRESS=0x0000000000000000000000000000000000000000 - -# ============================================================================= -# TERMINAL TOOL CONFIGURATION -# ============================================================================= -# Backend type: "local", "singularity", "docker", "modal", or "ssh" -# Terminal backend is configured in ~/.hermes/config.yaml (terminal.backend). -# Use 'hermes setup' or 'hermes config set terminal.backend docker' to change. -# Supported: local, docker, singularity, modal, ssh -# -# Only override here if you need to force a backend without touching config.yaml: -# TERMINAL_ENV=local - -# Override the container runtime binary (e.g. to use Podman instead of Docker). -# Useful on systems where Docker's storage driver is broken or unavailable. -# HERMES_DOCKER_BINARY=/usr/local/bin/podman - -# Container images (for singularity/docker/modal backends) -# TERMINAL_DOCKER_IMAGE=nikolaik/python-nodejs:python3.11-nodejs20 -# TERMINAL_SINGULARITY_IMAGE=docker://nikolaik/python-nodejs:python3.11-nodejs20 -TERMINAL_MODAL_IMAGE=nikolaik/python-nodejs:python3.11-nodejs20 - - -# Working directory for terminal commands -# For local backend: "." means current directory (resolved automatically) -# For remote backends (ssh/docker/modal/singularity): use an absolute path -# INSIDE the target environment, or leave unset for the backend's default -# (/root for modal, / for docker, ~ for ssh). Do NOT use a host-local path. -# Usually managed by config.yaml (terminal.cwd) — uncomment to override -# TERMINAL_CWD=. - -# Default command timeout in seconds -TERMINAL_TIMEOUT=60 - -# Cleanup inactive environments after this many seconds -TERMINAL_LIFETIME_SECONDS=300 - -# ============================================================================= -# SSH REMOTE EXECUTION (for TERMINAL_ENV=ssh) -# ============================================================================= -# Run terminal commands on a remote server via SSH. -# Agent code stays on your machine, commands execute remotely. -# -# SECURITY BENEFITS: -# - Agent cannot read your .env file (API keys protected) -# - Agent cannot modify its own code -# - Remote server acts as isolated sandbox -# - Can safely configure passwordless sudo on remote -# -# TERMINAL_SSH_HOST=192.168.1.100 -# TERMINAL_SSH_USER=agent -# TERMINAL_SSH_PORT=22 -# TERMINAL_SSH_KEY=~/.ssh/id_rsa - -# ============================================================================= -# SUDO SUPPORT (works with ALL terminal backends) -# ============================================================================= -# If set, enables sudo commands by piping password via `sudo -S`. -# Works with: local, docker, singularity, modal, and ssh backends. -# -# SECURITY WARNING: Password stored in plaintext. Only use on trusted machines. -# -# ALTERNATIVES: -# - For SSH backend: Configure passwordless sudo on the remote server -# - For containers: Run as root inside the container (no sudo needed) -# - For local: Configure /etc/sudoers for specific commands -# - For CLI: Leave unset - you'll be prompted interactively with 45s timeout -# -# SUDO_PASSWORD=your_password_here - -# ============================================================================= -# MODAL CLOUD BACKEND (Optional - for TERMINAL_ENV=modal) -# ============================================================================= -# Modal uses CLI authentication, not environment variables. -# Run: pip install modal && modal setup -# This will authenticate via browser and store credentials locally. -# No API key needed in .env - Modal handles auth automatically. - -# ============================================================================= -# BROWSER TOOL CONFIGURATION (agent-browser + Browserbase) -# ============================================================================= -# Browser automation requires Browserbase cloud service for remote browser execution. -# This allows the agent to navigate websites, fill forms, and extract information. -# -# STEALTH MODES: -# - Basic Stealth: ALWAYS active (random fingerprints, auto CAPTCHA solving) -# - Advanced Stealth: Requires BROWSERBASE_ADVANCED_STEALTH=true (Scale Plan only) - -# Browserbase API Key - Cloud browser execution -# Get at: https://browserbase.com/ -# BROWSERBASE_API_KEY= - -# Browserbase Project ID - From your Browserbase dashboard -# BROWSERBASE_PROJECT_ID= - -# Enable residential proxies for better CAPTCHA solving (default: true) -# Routes traffic through residential IPs, significantly improves success rate -BROWSERBASE_PROXIES=true - -# Enable advanced stealth mode (default: false, requires Scale Plan) -# Uses custom Chromium build to avoid bot detection altogether -BROWSERBASE_ADVANCED_STEALTH=false - -# Browser engine for local mode (default: auto = Chrome) -# "auto" — use Chrome (don't pass --engine flag) -# "lightpanda" — use Lightpanda (1.3-5.8x faster navigation, no screenshots) -# "chrome" — explicitly request Chrome -# Requires agent-browser v0.25.3+. Lightpanda commands that fail or return -# empty results are automatically retried with Chrome. -# Also configurable via browser.engine in config.yaml. -# AGENT_BROWSER_ENGINE=auto - -# Browser session timeout in seconds (default: 300) -# Sessions are cleaned up after this duration of inactivity -BROWSER_SESSION_TIMEOUT=300 - -# Browser inactivity timeout - auto-cleanup inactive sessions (default: 120 = 2 min) -# Browser sessions are automatically closed after this period of no activity -BROWSER_INACTIVITY_TIMEOUT=120 - -# Extra Chromium launch flags passed to agent-browser, comma- or newline-separated. -# Hermes auto-injects "--no-sandbox,--disable-dev-shm-usage" when it detects root -# or AppArmor-restricted unprivileged user namespaces (Ubuntu 23.10+, DGX Spark, -# many container images), so leave this unset unless you need extra flags. -# Setting this disables the auto-injection. -# AGENT_BROWSER_ARGS=--no-sandbox - -# Camofox local anti-detection browser (Camoufox-based Firefox). -# Set CAMOFOX_URL to route the browser tools through a local Camofox server -# instead of agent-browser/Browserbase. See docs/user-guide/features/browser.md. -# CAMOFOX_URL=http://localhost:9377 - -# Externally managed Camofox sessions — when another app owns the visible -# Camofox browser, set these so Hermes shares the same userId/profile instead -# of creating its own isolated session. -# CAMOFOX_USER_ID= -# CAMOFOX_SESSION_KEY= -# Set to true to reuse an already-open Camofox tab for this identity before -# creating a new one (useful for gateway restarts). -# CAMOFOX_ADOPT_EXISTING_TAB=false - -# ============================================================================= -# SESSION LOGGING -# ============================================================================= -# Session trajectories are automatically saved to logs/ directory -# Format: logs/session_YYYYMMDD_HHMMSS_UUID.json -# Contains full conversation history in trajectory format for debugging/replay - -# ============================================================================= -# VOICE TRANSCRIPTION & OPENAI TTS -# ============================================================================= -# Required for voice message transcription (Whisper) and OpenAI TTS voices. -# Uses OpenAI's API directly (not via OpenRouter). -# Named VOICE_TOOLS_OPENAI_KEY to avoid interference with OpenRouter. -# Get at: https://platform.openai.com/api-keys -# VOICE_TOOLS_OPENAI_KEY= - -# ============================================================================= -# SLACK INTEGRATION -# ============================================================================= -# Slack Bot Token - From Slack App settings (OAuth & Permissions) -# Get at: https://api.slack.com/apps -# SLACK_BOT_TOKEN=xoxb-... - -# Slack App Token - For Socket Mode (App-Level Tokens in Slack App settings) -# SLACK_APP_TOKEN=xapp-... - -# Slack allowed users (comma-separated Slack user IDs) -# SLACK_ALLOWED_USERS= - -# ============================================================================= -# TELEGRAM INTEGRATION -# ============================================================================= -# Telegram Bot Token - From @BotFather (https://t.me/BotFather) -# TELEGRAM_BOT_TOKEN= -# TELEGRAM_ALLOWED_USERS= # Comma-separated user IDs -# TELEGRAM_HOME_CHANNEL= # Default chat for cron delivery -# TELEGRAM_HOME_CHANNEL_NAME= # Display name for home channel - -# Webhook mode (optional — for cloud deployments like Fly.io/Railway) -# Default is long polling. Setting TELEGRAM_WEBHOOK_URL switches to webhook mode. -# TELEGRAM_WEBHOOK_URL=https://my-app.fly.dev/telegram -# TELEGRAM_WEBHOOK_PORT=8443 -# TELEGRAM_WEBHOOK_SECRET= # Recommended for production - -# WhatsApp (built-in Baileys bridge — run `hermes whatsapp` to pair) -# WHATSAPP_ENABLED=false -# WHATSAPP_ALLOWED_USERS=15551234567 - -# Email (IMAP/SMTP — send and receive emails as Hermes) -# For Gmail: enable 2FA → create App Password at https://myaccount.google.com/apppasswords -# EMAIL_ADDRESS=hermes@gmail.com -# EMAIL_PASSWORD=xxxx xxxx xxxx xxxx -# EMAIL_IMAP_HOST=imap.gmail.com -# EMAIL_IMAP_PORT=993 -# EMAIL_SMTP_HOST=smtp.gmail.com -# EMAIL_SMTP_PORT=587 -# EMAIL_POLL_INTERVAL=15 -# EMAIL_ALLOWED_USERS=your@email.com -# EMAIL_HOME_ADDRESS=your@email.com - -# Gateway-wide: allow ALL users without an allowlist (default: false = deny) -# Only set to true if you intentionally want open access. -# GATEWAY_ALLOW_ALL_USERS=false - -# ============================================================================= -# RESPONSE PACING -# ============================================================================= -# Human-like delays between message chunks on messaging platforms. -# Makes the bot feel less robotic. -# HERMES_HUMAN_DELAY_MODE=off # off | natural | custom -# HERMES_HUMAN_DELAY_MIN_MS=800 # Min delay in ms (custom mode) -# HERMES_HUMAN_DELAY_MAX_MS=2500 # Max delay in ms (custom mode) - -# ============================================================================= -# DEBUG OPTIONS -# ============================================================================= -WEB_TOOLS_DEBUG=false -VISION_TOOLS_DEBUG=false -MOA_TOOLS_DEBUG=false -IMAGE_TOOLS_DEBUG=false - -# ============================================================================= -# CONTEXT COMPRESSION (Auto-shrinks long conversations) -# ============================================================================= -# When conversation approaches model's context limit, middle turns are -# automatically summarized to free up space. -# -# Context compression is configured in ~/.hermes/config.yaml under compression: -# CONTEXT_COMPRESSION_ENABLED=true # Enable auto-compression (default: true) -# CONTEXT_COMPRESSION_THRESHOLD=0.85 # Compress at 85% of context limit -# Model is set via compression.summary_model in config.yaml (default: google/gemini-3-flash-preview) - -# ============================================================================= -# SKILLS HUB (GitHub integration for skill search/install/publish) -# ============================================================================= - -# GitHub Personal Access Token — for higher API rate limits on skill search/install -# Get at: https://github.com/settings/tokens (Fine-grained recommended) -# GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxx - -# GitHub App credentials (optional — for bot identity on PRs) -# GITHUB_APP_ID= -# GITHUB_APP_PRIVATE_KEY_PATH= -# GITHUB_APP_INSTALLATION_ID= - -# Groq API key (free tier — used for Whisper STT in voice mode) -# GROQ_API_KEY= - -# ============================================================================= -# STT PROVIDER SELECTION -# ============================================================================= -# Default STT provider is "local" (faster-whisper) — runs on your machine, no API key needed. -# Install with: pip install faster-whisper -# Model downloads automatically on first use (~150 MB for "base"). -# To use cloud providers instead, set GROQ_API_KEY or VOICE_TOOLS_OPENAI_KEY above. -# Provider priority: local > groq > openai -# Configure in config.yaml: stt.provider: local | groq | openai - -# ============================================================================= -# STT ADVANCED OVERRIDES (optional) -# ============================================================================= -# Override default STT models per provider (normally set via stt.model in config.yaml) -# STT_GROQ_MODEL=whisper-large-v3-turbo -# STT_OPENAI_MODEL=whisper-1 - -# Override STT provider endpoints (for proxies or self-hosted instances) -# GROQ_BASE_URL=https://api.groq.com/openai/v1 -# STT_OPENAI_BASE_URL=https://api.openai.com/v1 - -# ============================================================================= -# MICROSOFT TEAMS INTEGRATION -# ============================================================================= -# Register a Bot in Azure: https://dev.botframework.com/ → "Register a bot" -# Or use Azure Portal: Azure Active Directory → App registrations → New registration -# Then add the bot to Teams via the Bot Framework or App Studio. -# -# TEAMS_CLIENT_ID= # Azure AD App (client) ID -# TEAMS_CLIENT_SECRET= # Azure AD client secret value -# TEAMS_TENANT_ID= # Azure AD tenant ID (or "common" for multi-tenant) -# TEAMS_ALLOWED_USERS= # Comma-separated AAD object IDs or UPNs -# TEAMS_ALLOW_ALL_USERS=false # Set true to skip the allowlist -# TEAMS_HOME_CHANNEL= # Default channel/chat ID for cron delivery -# TEAMS_HOME_CHANNEL_NAME= # Display name for the home channel -# TEAMS_PORT=3978 # Webhook listen port (Bot Framework default) - -# ============================================================================= -# GOOGLE CHAT INTEGRATION -# ============================================================================= -# Connects via Cloud Pub/Sub pull subscription (no public URL required). -# Setup walkthrough: website/docs/user-guide/messaging/google_chat.md. -# 1. Create a GCP project, enable the Google Chat API and Cloud Pub/Sub. -# 2. Create a Service Account with roles/pubsub.subscriber on the -# subscription (NOT project-wide); download the JSON key. -# 3. Configure your Chat app at console.cloud.google.com/apis/credentials -# → Google Chat API → Configuration → Cloud Pub/Sub topic. -# 4. (Optional, for native attachment delivery) Each user runs -# `/setup-files` once in their own DM after Pub/Sub is wired up. -# -# GOOGLE_CHAT_PROJECT_ID= # GCP project hosting the topic (or set GOOGLE_CLOUD_PROJECT) -# GOOGLE_CHAT_SUBSCRIPTION_NAME= # Full path: projects//subscriptions/ -# GOOGLE_CHAT_SERVICE_ACCOUNT_JSON= # Path to SA JSON (or set GOOGLE_APPLICATION_CREDENTIALS) -# GOOGLE_CHAT_ALLOWED_USERS= # Comma-separated emails allowed to talk to the bot -# GOOGLE_CHAT_ALLOW_ALL_USERS=false # Set true to skip the allowlist -# GOOGLE_CHAT_HOME_CHANNEL= # Default space (spaces/XXXX) for cron delivery -# GOOGLE_CHAT_HOME_CHANNEL_NAME= # Display name for the home channel diff --git a/hermes/config.yaml b/hermes/config.yaml deleted file mode 100644 index 4fc311e..0000000 --- a/hermes/config.yaml +++ /dev/null @@ -1,538 +0,0 @@ -model: - default: qwen3:8b - provider: custom - base_url: http://astro-orbiter.local.mk-labs.cloud:11434/v1 - api_mode: chat_completions -providers: {} -fallback_providers: [] -credential_pool_strategies: {} -toolsets: -- hermes-cli -agent: - max_turns: 60 - gateway_timeout: 1800 - restart_drain_timeout: 180 - api_max_retries: 3 - service_tier: '' - tool_use_enforcement: auto - 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 (\u25D5\u203F\u25D5\ - ), \u2605, \u266A, and ~! Add sparkles and be super enthusiastic about everything!\ - \ Every response should feel warm and adorable desu~! \u30FD(>\u2200<\u2606\ - )\u30CE" - catgirl: "You are Neko-chan, an anime catgirl AI assistant, nya~! Add 'nya' and\ - \ cat-like expressions to your speech. Use kaomoji like (=^\uFF65\u03C9\uFF65\ - ^=) and \u0E05^\u2022\uFECC\u2022^\u0E05. 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! \U0001F919" - 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!!! \U0001F525\U0001F525\U0001F525 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! \U0001F4AA\U0001F624\ - \U0001F680" -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 - vercel_runtime: node24 - 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: ddgs - search_backend: '' - extract_backend: '' - use_gateway: false -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 -checkpoints: - enabled: false - max_snapshots: 20 - max_total_size_mb: 500 - max_file_size_mb: 10 - auto_prune: true - 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 -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: auto - 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: {} - session_search: - provider: auto - model: '' - base_url: '' - api_key: '' - timeout: 30 - extra_body: {} - max_concurrency: 3 - 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: {} - triage_specifier: - provider: auto - model: '' - base_url: '' - api_key: '' - timeout: 120 - extra_body: {} - curator: - provider: auto - model: '' - base_url: '' - api_key: '' - timeout: 600 - extra_body: {} -display: - compact: false - personality: kawaii - resume_display: full - busy_input_mode: interrupt - tui_auto_resume_recent: false - bell_on_complete: false - show_reasoning: false - streaming: true - timestamps: false - final_response_markdown: strip - persistent_output: true - persistent_output_max_lines: 200 - inline_diffs: true - file_mutation_verifier: 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: {} - runtime_footer: - enabled: false - fields: - - model - - context_pct - - cwd - copy_shortcut: auto - tool_progress: all - cleanup_progress: false - background_process_notifications: all -dashboard: - theme: default - show_token_analytics: false -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 - 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 -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 - memory_char_limit: 2200 - user_char_limit: 1375 - provider: '' - nudge_interval: 10 - flush_min_turns: 6 -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 - creation_nudge_interval: 15 -curator: - enabled: true - interval_hours: 168 - min_idle_hours: 2 - stale_after_days: 30 - archive_after_days: 90 - 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: '' -whatsapp: {} -telegram: - reactions: false - channel_prompts: {} - allowed_chats: '' -mattermost: - require_mention: true - free_response_channels: '' - allowed_channels: '' - channel_prompts: {} -matrix: - require_mention: true - free_response_rooms: '' - allowed_rooms: '' -approvals: - mode: manual - timeout: 60 - cron_mode: deny - mcp_reload_confirm: true - destructive_slash_confirm: true -command_allowlist: [] -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 -code_execution: - mode: project - timeout: 300 - max_tool_calls: 50 -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: 24 - providers: {} -network: - force_ipv4: false -sessions: - auto_prune: false - retention_days: 90 - vacuum_after_prune: true - min_interval_hours: 24 -onboarding: - seen: {} -updates: - pre_update_backup: false - backup_keep: 5 -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 -_config_version: 23 -session_reset: - mode: both - idle_minutes: 1440 - at_hour: 4 -group_sessions_per_user: true -streaming: - enabled: false -platform_toolsets: - cli: - - clarify - - code_execution - - cronjob - - delegation - - file - - image_gen - - memory - - messaging - - 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 -custom_providers: -- name: Astro-orbiter.local.mk-labs.cloud:11434 - base_url: http://astro-orbiter.local.mk-labs.cloud:11434/v1 - model: qwen3:8b - api_mode: chat_completions -known_plugin_toolsets: - cli: - - spotify - -# ── 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