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 ishermes-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 extractionTerminal
terminal, process — command execution and process managementFiles
read_file, write_file, patch, search_files — file manipulationBrowser
11 browser tools — full web automation via Browserbase
Vision
vision_analyze, image_generate — image analysis and generationMemory & Skills
memory, todo, session_search, skills_list, skill_view, skill_manageDelegation
execute_code, delegate_task — code execution and subagent spawningScheduling
cronjob, send_message — cron jobs and cross-platform messagingEnabling and disabling tools
hermes tools command
Run hermes tools from your terminal to open an interactive menu for enabling or disabling tools per platform:
~/.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:
Changing toolsets takes effect on the next session start. Toolset changes mid-conversation would break Anthropic prompt caching and significantly increase API costs.