Skip to main content
Hermes ships with over 40 tools organized into named toolsets. Every platform (CLI, Telegram, Discord, etc.) uses the same core tool list. You can enable or disable individual tools without touching code.

What tools are

Tools are functions the agent calls during a conversation. When you ask Hermes to do something, it decides which tools to invoke, runs them, reads the results, and continues reasoning. Tools are the mechanism behind everything from running a terminal command to searching the web to creating a scheduled task. Each tool has:
  • A name the model uses to call it
  • A JSON schema describing its parameters
  • A handler function that runs the actual logic
  • An optional availability check (e.g., requiring an API key)

The toolset system

Tools are grouped into toolsets — named collections you can enable or disable together. The default toolset for the CLI is hermes-cli, which includes every core tool. You can compose custom toolsets from individual tools or from other toolsets. Some toolsets are composite: they include other toolsets by reference. For example, the debugging toolset includes web, file, and direct terminal/process tools. Configure active toolsets in ~/.hermes/config.yaml:

Core tools

The _HERMES_CORE_TOOLS list defines every tool enabled on all platforms by default.

Web

The web backend is configurable (firecrawl, parallel, or tavily). Set web.backend in config.yaml or choose during hermes tools setup.

Terminal & processes

The terminal tool routes to whichever backend is configured (local, docker, ssh, modal, daytona, or singularity). See Terminal backends for details. Background mode — pass background=true to get a session_id immediately. Use process(action="wait") to block until it completes, or process(action="poll") to check progress without blocking. PTY mode — pass pty=true for interactive CLI tools (Python REPL, Codex, Claude Code) that require a pseudo-terminal.

File operations

Vision & image generation

Browser automation

Code execution & delegation

Planning & memory

Skills

Scheduling & messaging

Mixture of agents

Honcho memory (optional)

Honcho tools are gated on the Honcho integration being active. See Memory for setup.

Home Assistant (optional)

Home Assistant tools are gated on the HASS_TOKEN environment variable.

Tool categories

Web

web_search, web_extract — research and content extraction

Terminal

terminal, process — command execution and process management

Files

read_file, write_file, patch, search_files — file manipulation

Browser

11 browser tools — full web automation via Browserbase

Vision

vision_analyze, image_generate — image analysis and generation

Memory & Skills

memory, todo, session_search, skills_list, skill_view, skill_manage

Delegation

execute_code, delegate_task — code execution and subagent spawning

Scheduling

cronjob, send_message — cron jobs and cross-platform messaging

Enabling and disabling tools

hermes tools command

Run hermes tools from your terminal to open an interactive menu for enabling or disabling tools per platform:
This writes your choices to ~/.hermes/config.yaml under the toolsets key.

/tools slash command

Inside a running chat session, use /tools to see which tools are currently active.

Per-platform configuration

Each platform can have its own toolset. The platform toolsets (hermes-cli, hermes-telegram, hermes-discord, etc.) all use the same _HERMES_CORE_TOOLS list by default. To restrict a platform, define a custom toolset:
Or reference one of the built-in scenario toolsets:
Changing toolsets takes effect on the next session start. Toolset changes mid-conversation would break Anthropic prompt caching and significantly increase API costs.