| sidebar_position | 4 |
|---|---|
| title | Toolsets Reference |
| description | Reference for Hermes core, composite, platform, and dynamic toolsets |
Toolsets are named bundles of tools that control what the agent can do. They're the primary mechanism for configuring tool availability per platform, per session, or per task.
Every tool belongs to exactly one toolset. When you enable a toolset, all tools in that bundle become available to the agent. Toolsets come in three kinds:
- Core — A single logical group of related tools (e.g.,
filebundlesread_file,write_file,patch,search_files) - Composite — Combines multiple core toolsets for a common scenario (e.g.,
debuggingbundles file, terminal, and web tools) - Platform — A complete tool configuration for a specific deployment context (e.g.,
hermes-cliis the default for interactive CLI sessions)
hermes chat --toolsets web,file,terminal
hermes chat --toolsets debugging # composite — expands to file + terminal + web
hermes chat --toolsets all # everythingtoolsets:
- hermes-cli # default for CLI
# - hermes-telegram # override for Telegram gatewayhermes tools # curses UI to enable/disable per platformOr in-session:
/tools list
/tools disable browser
/tools enable homeassistant
| Toolset | Tools | Purpose |
|---|---|---|
browser |
browser_back, browser_cdp, browser_click, browser_console, browser_dialog, browser_get_images, browser_navigate, browser_press, browser_scroll, browser_snapshot, browser_type, browser_vision, web_search |
Core browser automation. Includes web_search as a fallback for quick lookups. browser_cdp and browser_dialog are gated at runtime — registered only when a CDP endpoint is reachable at session start (via /browser connect, browser.cdp_url config, Browserbase, or Camofox). browser_dialog works together with the pending_dialogs and frame_tree fields that browser_snapshot adds when a CDP supervisor is attached. |
clarify |
clarify |
Ask the user a question when the agent needs clarification. |
code_execution |
execute_code |
Run Python scripts that call Hermes tools programmatically. |
cronjob |
cronjob |
Schedule and manage recurring tasks. |
debugging |
composite (file + terminal + web) |
Debug bundle — file, process/terminal, web extract/search. |
delegation |
delegate_task |
Spawn isolated subagent instances for parallel work. |
discord |
discord |
Core Discord text/embed/DM actions (gateway-only). Active on the hermes-discord toolset. |
discord_admin |
discord_admin |
Discord moderation (bans, role changes, channel management). Active on the hermes-discord toolset; requires the bot to hold the relevant Discord permissions. |
feishu_doc |
feishu_doc_read |
Read Feishu/Lark document content. Used by the Feishu document-comment intelligent-reply handler. |
feishu_drive |
feishu_drive_add_comment, feishu_drive_list_comments, feishu_drive_list_comment_replies, feishu_drive_reply_comment |
Feishu/Lark drive comment operations. Scoped to the comment agent; not exposed on hermes-cli or other messaging toolsets. |
file |
patch, read_file, search_files, write_file |
File reading, writing, searching, and editing. |
homeassistant |
ha_call_service, ha_get_state, ha_list_entities, ha_list_services |
Smart home control via Home Assistant. Only available when HASS_TOKEN is set. |
computer_use |
computer_use |
Background macOS desktop control via cua-driver — does not steal cursor/focus. Works with any tool-capable model. macOS only; requires cua-driver on $PATH. |
image_gen |
image_generate |
Text-to-image generation via FAL.ai (with opt-in OpenAI / xAI backends). |
video_gen |
video_generate |
Text-to-video and image-to-video via plugin-registered backends (xAI Grok-Imagine, FAL.ai Veo 3.1 / Pixverse v6 / Kling O3). Pass image_url to animate an image; omit it for text-to-video. |
kanban |
kanban_block, kanban_comment, kanban_complete, kanban_create, kanban_heartbeat, kanban_link, kanban_show |
Multi-agent coordination tools — only registered when the agent is spawned by the kanban dispatcher (HERMES_KANBAN_TASK env set). Lets workers mark tasks done with structured handoffs, block for human input, heartbeat during long ops, comment on threads, and (for orchestrators) fan out into child tasks. |
memory |
memory |
Persistent cross-session memory management. |
messaging |
send_message |
Send messages to other platforms (Telegram, Discord, etc.) from within a session. |
moa |
mixture_of_agents |
Multi-model consensus via Mixture of Agents. |
safe |
image_generate, vision_analyze, web_extract, web_search (via includes) |
Read-only research + media generation. No file writes, no terminal, no code execution. |
search |
web_search |
Web search only (without extract). |
session_search |
session_search |
Search past conversation sessions. |
skills |
skill_manage, skill_view, skills_list |
Skill CRUD and browsing. |
spotify |
spotify_albums, spotify_devices, spotify_library, spotify_playback, spotify_playlists, spotify_queue, spotify_search |
Native Spotify control (playback, queue, search, playlists, albums, library). Registered by the bundled spotify plugin. |
terminal |
process, terminal |
Shell command execution and background process management. |
todo |
todo |
Task list management within a session. |
tts |
text_to_speech |
Text-to-speech audio generation. |
vision |
vision_analyze |
Image analysis via vision-capable models. |
video |
video_analyze |
Video analysis and understanding tools (opt-in, not in the default toolset — add explicitly via --toolsets). |
web |
web_extract, web_search |
Web search and page content extraction. |
x_search |
x_search |
Search X (Twitter) posts and threads via xAI's built-in x_search Responses tool. Off by default; opt in via hermes tools. Schema only registered when xAI credentials (SuperGrok OAuth or XAI_API_KEY) are configured. |
yuanbao |
yb_query_group_info, yb_query_group_members, yb_search_sticker, yb_send_dm, yb_send_sticker |
Yuanbao DM/group actions and sticker search. Registered only on hermes-yuanbao. |
Platform toolsets define the complete tool configuration for a deployment target. Most messaging platforms use the same set as hermes-cli:
| Toolset | Differences from hermes-cli |
|---|---|
hermes-cli |
Full toolset — the default for interactive CLI sessions. Includes file, terminal, web, browser, memory, skills, vision, image_gen, todo, tts, delegation, code_execution, cronjob, session_search, clarify, and safe (read-only) bundles plus the standard messaging tools. |
hermes-acp |
Drops clarify, cronjob, image_generate, send_message, text_to_speech, and all four Home Assistant tools. Focused on coding tasks in IDE context. |
hermes-api-server |
Drops clarify, send_message, and text_to_speech. Keeps everything else — suitable for programmatic access where user interaction isn't possible. |
hermes-cron |
Same as hermes-cli. |
hermes-telegram |
Same as hermes-cli. |
hermes-discord |
Adds discord and discord_admin on top of hermes-cli. |
hermes-slack |
Same as hermes-cli. |
hermes-whatsapp |
Same as hermes-cli. |
hermes-signal |
Same as hermes-cli. |
hermes-matrix |
Same as hermes-cli. |
hermes-mattermost |
Same as hermes-cli. |
hermes-email |
Same as hermes-cli. |
hermes-sms |
Same as hermes-cli. |
hermes-bluebubbles |
Same as hermes-cli. |
hermes-dingtalk |
Same as hermes-cli. |
hermes-feishu |
Adds the five feishu_doc_* / feishu_drive_* tools (only used by the document-comment handler, not the regular chat adapter). |
hermes-qqbot |
Same as hermes-cli. |
hermes-wecom |
Same as hermes-cli. |
hermes-wecom-callback |
Same as hermes-cli. |
hermes-weixin |
Same as hermes-cli. |
hermes-yuanbao |
Adds the five yb_* tools (DM/group/sticker) on top of hermes-cli. |
hermes-homeassistant |
Same as hermes-cli (the Home Assistant tools are already present by default and activate when HASS_TOKEN is set). |
hermes-webhook |
Same as hermes-cli. |
hermes-gateway |
Internal gateway orchestrator toolset — union of every hermes-<platform> toolset; used when the gateway needs to accept any message source. |
Each configured MCP server generates a mcp-<server> toolset at runtime. For example, if you configure a github MCP server, a mcp-github toolset is created containing all tools that server exposes.
# config.yaml
mcp_servers:
github:
command: npx
args: ["-y", "@modelcontextprotocol/server-github"]This creates a mcp-github toolset you can reference in --toolsets or platform configs.
Plugins can register their own toolsets via ctx.register_tool() during plugin initialization. These appear alongside built-in toolsets and can be enabled/disabled the same way.
Define custom toolsets in config.yaml to create project-specific bundles:
toolsets:
- hermes-cli
custom_toolsets:
data-science:
- file
- terminal
- code_execution
- web
- visionallor*— expands to every registered toolset (built-in + dynamic + plugin)
The hermes tools command provides a curses-based UI for toggling individual tools on or off per platform. This operates at the tool level (finer than toolsets) and persists to config.yaml. Disabled tools are filtered out even if their toolset is enabled.
See also: Tools Reference for the complete list of individual tools and their parameters.