Built-in Tools (70+)
Tools are functions that extend the agent’s capabilities. They’re organized into logical toolsets that can be enabled or disabled per platform.
Available Tools
Section titled “Available Tools”Hermes ships with a broad built-in tool registry covering web search, browser automation, terminal execution, file editing, memory, delegation, RL training, messaging delivery, Home Assistant, and more.
High-level Categories
Section titled “High-level Categories”| Category | Examples | Description |
|---|---|---|
| Web | web_search, web_extract | Search the web and extract page content |
| X Search | x_search | Search X (Twitter) posts and threads via xAI’s built-in x_search Responses tool |
| Terminal & Files | terminal, process, read_file, patch | Execute commands and manipulate files |
| Browser | browser_navigate, browser_snapshot, browser_vision | Interactive browser automation with text and vision support |
| Media | vision_analyze, image_generate, video_generate, video_analyze, text_to_speech | Multimodal analysis and generation |
| Agent orchestration | todo, clarify, execute_code, delegate_task | Planning, clarification, code execution, and subagent delegation |
| Memory & recall | memory, session_search | Persistent memory and session search |
| Automation & delivery | cronjob, send_message | Scheduled tasks and outbound messaging delivery |
| Integrations | ha_*, MCP server tools, rl_* | Home Assistant, MCP, RL training, and other integrations |
Using Toolsets
Section titled “Using Toolsets”# Use specific toolsetshermes chat --toolsets "web,terminal"
# See all available toolshermes tools
# Configure tools per platform (interactive)hermes toolsCommon toolsets include web, search, terminal, file, browser, vision, image_gen, moa, skills, tts, todo, memory, session_search, cronjob, code_execution, delegation, clarify, homeassistant, messaging, spotify, discord, discord_admin, debugging, safe, and rl.
Terminal Backends
Section titled “Terminal Backends”The terminal tool can execute commands in different environments:
| Backend | Description | Use Case |
|---|---|---|
local | Run on your machine (default) | Development, trusted tasks |
docker | Isolated containers | Security, reproducibility |
ssh | Remote server | Sandboxing, keep agent away from its own code |
singularity | HPC containers | Cluster computing, rootless |
modal | Cloud execution | Serverless, scale |
daytona | Cloud sandbox workspace | Persistent remote dev environments |
Configuration
Section titled “Configuration”# In ~/.hermes/config.yamlterminal: backend: local # or: docker, ssh, singularity, modal, daytona cwd: "." # Working directory timeout: 180 # Command timeout in secondsDocker Backend
Section titled “Docker Backend”terminal: backend: docker docker_image: python:3.11-slimOne persistent container, shared across the whole process. Hermes starts a single long-lived container on first use and routes every terminal, file, and execute_code call through docker exec into that same container.
Container Resources
Section titled “Container Resources”Configure CPU, memory, disk, and persistence for all container backends:
terminal: backend: docker # or singularity, modal, daytona container_cpu: 1 # CPU cores (default: 1) container_memory: 5120 # Memory in MB (default: 5GB) container_disk: 51200 # Disk in MB (default: 50GB) container_persistent: true # Persist filesystem across sessions (default: true)Container Security
Section titled “Container Security”All container backends run with security hardening:
- Read-only root filesystem (Docker)
- All Linux capabilities dropped
- No privilege escalation
- PID limits (256 processes)
- Full namespace isolation
- Persistent workspace via volumes, not writable root layer
Background Process Management
Section titled “Background Process Management”Start background processes and manage them:
terminal(command="pytest -v tests/", background=true)# Returns: {"session_id": "proc_abc123", "pid": 12345}
# Then manage with the process tool:process(action="list") # Show all running processesprocess(action="poll", session_id="proc_abc123") # Check statusprocess(action="wait", session_id="proc_abc123") # Block until doneprocess(action="log", session_id="proc_abc123") # Full outputprocess(action="kill", session_id="proc_abc123") # Terminateprocess(action="write", session_id="proc_abc123", data="y") # Send inputPTY mode (pty=true) enables interactive CLI tools like Codex and Claude Code.
Sudo Support
Section titled “Sudo Support”If a command needs sudo, you’ll be prompted for your password (cached for the session). Or set SUDO_PASSWORD in ~/.hermes/.env.
On messaging platforms, if sudo fails, the output includes a tip to add SUDO_PASSWORD to ~/.hermes/.env.