Toolsets Reference

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.

How Toolsets Work

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:

Configuring Toolsets

Per-session (CLI)

hermes chat --toolsets web,file,terminal
hermes chat --toolsets debugging        # composite — expands to file + terminal + web
hermes chat --toolsets all              # everything

Per-platform (config.yaml)

toolsets:
  - hermes-cli          # default for CLI
  # - hermes-telegram   # override for Telegram gateway

Interactive management

hermes tools                            # curses UI to enable/disable per platform

Or in-session:

/tools list
/tools disable browser
/tools enable rl

Core Toolsets

ToolsetToolsPurpose
browserbrowser_back, browser_click, browser_console, browser_get_images, browser_navigate, browser_press, browser_scroll, browser_snapshot, browser_type, browser_vision, web_searchFull browser automation. Includes web_search as a fallback for quick lookups.
clarifyclarifyAsk the user a question when the agent needs clarification.
code_executionexecute_codeRun Python scripts that call Hermes tools programmatically.
cronjobcronjobSchedule and manage recurring tasks.
delegationdelegate_taskSpawn isolated subagent instances for parallel work.
feishu_docfeishu_doc_readRead Feishu/Lark document content. Used by the Feishu document-comment intelligent-reply handler.
feishu_drivefeishu_drive_add_comment, feishu_drive_list_comments, feishu_drive_list_comment_replies, feishu_drive_reply_commentFeishu/Lark drive comment operations. Scoped to the comment agent; not exposed on hermes-cli or other messaging toolsets.
filepatch, read_file, search_files, write_fileFile reading, writing, searching, and editing.
homeassistantha_call_service, ha_get_state, ha_list_entities, ha_list_servicesSmart home control via Home Assistant. Only available when HASS_TOKEN is set.
image_genimage_generateText-to-image generation via FAL.ai.
memorymemoryPersistent cross-session memory management.
messagingsend_messageSend messages to other platforms (Telegram, Discord, etc.) from within a session.
moamixture_of_agentsMulti-model consensus via Mixture of Agents.
rlrl_check_status, rl_edit_config, rl_get_current_config, rl_get_results, rl_list_environments, rl_list_runs, rl_select_environment, rl_start_training, rl_stop_training, rl_test_inferenceRL training environment management (Atropos).
searchweb_searchWeb search only (without extract).
session_searchsession_searchSearch past conversation sessions.
skillsskill_manage, skill_view, skills_listSkill CRUD and browsing.
terminalprocess, terminalShell command execution and background process management.
todotodoTask list management within a session.
ttstext_to_speechText-to-speech audio generation.
visionvision_analyzeImage analysis via vision-capable models.
webweb_extract, web_searchWeb search and page content extraction.

Composite Toolsets

These expand to multiple core toolsets, providing a convenient shorthand for common scenarios:

ToolsetExpands toUse case
debuggingweb + file + process, terminal (via includes) — effectively patch, process, read_file, search_files, terminal, web_extract, web_search, write_fileDebug sessions — file access, terminal, and web research without browser or delegation overhead.
safeimage_generate, vision_analyze, web_extract, web_searchRead-only research and media generation. No file writes, no terminal access, no code execution. Good for untrusted or constrained environments.

Platform Toolsets

Platform toolsets define the complete tool configuration for a deployment target. Most messaging platforms use the same set as hermes-cli:

ToolsetDifferences from hermes-cli
hermes-cliFull toolset — all 36 core tools including clarify. The default for interactive CLI sessions.
hermes-acpDrops clarify, cronjob, image_generate, send_message, text_to_speech, homeassistant tools. Focused on coding tasks in IDE context.
hermes-api-serverDrops clarify, send_message, and text_to_speech. Adds everything else — suitable for programmatic access where user interaction isn’t possible.
hermes-telegramSame as hermes-cli.
hermes-discordSame as hermes-cli.
hermes-slackSame as hermes-cli.
hermes-whatsappSame as hermes-cli.
hermes-signalSame as hermes-cli.
hermes-matrixSame as hermes-cli.
hermes-mattermostSame as hermes-cli.
hermes-emailSame as hermes-cli.
hermes-smsSame as hermes-cli.
hermes-bluebubblesSame as hermes-cli.
hermes-dingtalkSame as hermes-cli.
hermes-feishuSame as hermes-cli. Note: the feishu_doc / feishu_drive toolsets are used only by the document-comment handler, not by the regular Feishu chat adapter.
hermes-qqbotSame as hermes-cli.
hermes-wecomSame as hermes-cli.
hermes-wecom-callbackSame as hermes-cli.
hermes-weixinSame as hermes-cli.
hermes-homeassistantSame as hermes-cli plus the homeassistant toolset always on.
hermes-webhookSame as hermes-cli.
hermes-gatewayInternal gateway orchestrator toolset — union of the broadest possible tool set when the gateway needs to accept any message source.

Dynamic Toolsets

MCP server toolsets

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.

Plugin toolsets

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.

Custom toolsets

Define custom toolsets in config.yaml to create project-specific bundles:

toolsets:
  - hermes-cli
custom_toolsets:
  data-science:
    - file
    - terminal
    - code_execution
    - web
    - vision

Wildcards

Relationship to hermes tools

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.