Skip to content

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.

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.

CategoryExamplesDescription
Webweb_search, web_extractSearch the web and extract page content
X Searchx_searchSearch X (Twitter) posts and threads via xAI’s built-in x_search Responses tool
Terminal & Filesterminal, process, read_file, patchExecute commands and manipulate files
Browserbrowser_navigate, browser_snapshot, browser_visionInteractive browser automation with text and vision support
Mediavision_analyze, image_generate, video_generate, video_analyze, text_to_speechMultimodal analysis and generation
Agent orchestrationtodo, clarify, execute_code, delegate_taskPlanning, clarification, code execution, and subagent delegation
Memory & recallmemory, session_searchPersistent memory and session search
Automation & deliverycronjob, send_messageScheduled tasks and outbound messaging delivery
Integrationsha_*, MCP server tools, rl_*Home Assistant, MCP, RL training, and other integrations
Terminal window
# Use specific toolsets
hermes chat --toolsets "web,terminal"
# See all available tools
hermes tools
# Configure tools per platform (interactive)
hermes tools

Common 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.

The terminal tool can execute commands in different environments:

BackendDescriptionUse Case
localRun on your machine (default)Development, trusted tasks
dockerIsolated containersSecurity, reproducibility
sshRemote serverSandboxing, keep agent away from its own code
singularityHPC containersCluster computing, rootless
modalCloud executionServerless, scale
daytonaCloud sandbox workspacePersistent remote dev environments
# In ~/.hermes/config.yaml
terminal:
backend: local # or: docker, ssh, singularity, modal, daytona
cwd: "." # Working directory
timeout: 180 # Command timeout in seconds
terminal:
backend: docker
docker_image: python:3.11-slim

One 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.

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)

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

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 processes
process(action="poll", session_id="proc_abc123") # Check status
process(action="wait", session_id="proc_abc123") # Block until done
process(action="log", session_id="proc_abc123") # Full output
process(action="kill", session_id="proc_abc123") # Terminate
process(action="write", session_id="proc_abc123", data="y") # Send input

PTY mode (pty=true) enables interactive CLI tools like Codex and Claude Code.

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.