YouTip LogoYouTip

Hermes Agent Setup

Learn how to configure Hermes Agent, including configuration files, LLM provider settings, tool configuration, and all available configuration options. * * * ## Configuration File Locations Hermes Agent uses the following configuration files: | File | Description | | --- | --- | | `~/.hermes/config.yaml` | Main configuration file | | `~/.hermes/.env` | Environment variables (API keys, etc.) | | `~/.hermes/state.db` | SQLite session database | | `~/.hermes/skills/` | Installed skills directory | | `~/.hermes/sessions/` | Session storage directory | | `~/.hermes/memories/` | Persistent memory storage | * * * ## Basic Configuration ### Set API Key Set the API key via CLI: hermes config set OPENROUTER_API_KEY sk-or-v1-your-key-here Or edit the `~/.hermes/.env` file directly: # LLM Provider OPENROUTER_API_KEY=sk-or-v1-your-key-here # Optional Tools FIRECRAWL_API_KEY=fc-your-key FAL_KEY=your-fal-key ### Choose a Model hermes model # Interactive selection Or specify in the configuration file: # ~/.hermes/config.yaml provider: name: openrouter model: anthropic/claude-sonnet-4-20250514 * * * ## Terminal Configuration ### Terminal Backends The terminal tool can execute commands in different environments: | Backend | Description | Use Case | | --- | --- | --- | | `local` | Run on local machine (default) | Development, trusted tasks | | `docker` | Isolated container | Security, reproducibility | | `ssh` | Remote server | Sandbox, keep agent away from your own code | | `singularity` | HPC container | Cluster computing, no root | | `modal` | Cloud execution | Serverless, elastic scaling | | `daytona` | Cloud sandbox workspace | Persistent remote development environment | ### Configuration Examples # ~/.hermes/config.yaml terminal: backend: local # or: docker, ssh, singularity, modal, daytona cwd: "." # Working directory timeout: 180 # Command timeout (seconds) #### Docker Backend terminal: backend: docker docker_image: python:3.11-slim #### SSH Backend terminal: backend: ssh# Set credentials in ~/.hermes/.env TERMINAL_SSH_HOST=my-server.example.com TERMINAL_SSH_USER=myuser TERMINAL_SSH_KEY=~/.ssh/id_rsa #### Container Resources terminal: backend: docker container_cpu: 1 # CPU cores (default: 1) container_memory: 5120 # Memory MB (default: 5GB) container_disk: 51200 # Disk MB (default: 50GB) container_persistent: true # Persistent filesystem across sessions #### Container Security All container backends run with security hardening: * Read-only root filesystem (Docker) * Drop all Linux capabilities * No privilege escalation * PID limit (256 processes) * Full namespace isolation * * * ## Tool Configuration ### Configure Toolsets # Use specific toolsets hermes chat --toolsets "web,terminal"# Configure tools per platform (interactive) hermes tools Common toolsets include: `web`, `terminal`, `file`, `browser`, `vision`, `image_gen`, `skills`, `tts`, `todo`, `memory`, `session_search`, `cronjob`, `code_execution`, `delegation`, `homeassistant`, and `rl`. ### Available Tool Categories | Category | Examples | Description | | --- | --- | --- | | Web | `web_search`, `web_extract` | Search the web and extract page content | | Terminal & File | `terminal`, `process`, `read_file`, `patch` | Execute commands and manipulate files | | Browser | `browser_navigate`, `browser_snapshot` | Interactive browser automation | | Media | `vision_analyze`, `image_generate`, `text_to_speech` | Multimodal analysis and generation | | Agent Orchestration | `todo`, `clarify`, `execute_code`, `delegate_task` | Planning, clarification, code execution, and sub-agent delegation | | Memory & Recall | `memory`, `session_search` | Persistent memory and session search | | Automation & Delivery | `cronjob`, `send_message` | Scheduled tasks and outbound message delivery | * * * ## Display Settings # ~/.hermes/config.yaml display: busy_input_mode: "interrupt" # or "queue" tool_preview_length: 0 # 0 = unlimited bell_on_complete: false * **busy_input_mode**: Behavior when pressing Enter while the agent is working * **tool_preview_length**: Maximum characters for tool preview lines * **bell_on_complete**: Whether to ring the bell when a task is completed * * * ## Quick Commands Define custom commands to execute shell commands instantly without invoking the LLM: # ~/.hermes/config.yaml quick_commands: status: type: exec command: systemctl status hermes-agent gpu: type: exec command: nvidia-smi --query-gpu=utilization.gpu,memory.used --format=csv,noheader cdh: type: cd path: ~/projects/hermes-agent Then type `/status` or `/gpu` in any chat. * * * ## Personality Settings # ~/.hermes/config.yaml personalities: helpful: "You are a helpful, friendly AI assistant." kawaii: "You are a kawaii assistant! Use cute expressions..." pirate: "Arrr! Ye be talkin' to Captain Hermes..." # Add your own! Activate using commands like `/personality pirate`. * * * ## Context Compression # ~/.hermes/config.yaml compression: enabled: true threshold: 0.50 # Compress at 50% of context limit summary_model: "google/gemini-3-flash-preview" * * * ## CLI Commands | Command | Description | | --- | --- | | `hermes config set ` | Set configuration value | | `hermes config get ` | Get configuration value | | `hermes config list` | List all configurations | | `hermes config check` | Check configuration integrity | | `hermes config migrate` | Migrate configuration to new version | > **Tip:** Run `hermes doctor` to diagnose configuration issues and get fix suggestions.
← Hermes Agent SkillsHermes Agent β†’