Academy → ReferenceOfficial documentation · Arabic guidance

Toolsets Reference

مرجع مجموعات الأدوات

Reference8 min readLesson 64 questions✓ 2026-08-18
Before you read

What this page is, and what it holds.

This page covers Toolsets Reference. You will use hermes chat and hermes tools here; about 8 minutes to read. Every tool opens a door. Write, delete, and send deserve a pause before you enable them.

6sections
6code examples
2tables
2commands
1,441source words
The official one-line description

Reference for Hermes core, composite, platform, and dynamic toolsets

What you will be able to do

Outcomes taken from this page, not a template.

  • Understand what الأدوات is and when you need it.
  • Run hermes chat and hermes tools and understand what happens next.
  • Read the table and take only the row that applies to you.
Identifiers you will meet

Exactly as they appear in Hermes.

Commands
  • hermes chat
  • hermes tools
Page map

Jump to the part you need.

  1. 01How Toolsets Work
  2. 02Configuring Toolsets
  3. 03Core Toolsets
  4. 04Platform Toolsets
  5. 05Dynamic Toolsets
  6. 06Relationship to `hermes tools`
The full official page

Nothing summarised away.

The documentation body below is reproduced from the official source so commands and identifiers stay exact. Each section carries a short note describing what it contains.

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

Explains the idea itself. Read it slowly; the later sections build on it.

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., file bundles read_file, write_file, patch, search_files)
  • Composite — Combines multiple core toolsets for a common scenario (e.g., debugging bundles file, terminal, and web tools)
  • Platform — A complete tool configuration for a specific deployment context (e.g., hermes-cli is the default for interactive CLI sessions)

Configuring Toolsets

Settings you configure once. Change one at a time so you can see what each does. Commands here: hermes tools.

Per-session (CLI)

Shell3 lines
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)

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

Interactive management

Shell1 line
hermes tools                            # curses UI to enable/disable per platform

Or in-session:

Text3 lines
/tools list
/tools disable browser
/tools enable homeassistant

Core Toolsets

A lookup table. Do not read it all; find the row that applies to you.

ToolsetToolsPurpose
browserbrowser_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_searchCore 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.
clarifyclarifyAsk the user a question when the agent needs clarification.
code_executionexecute_codeRun Python scripts that call Hermes tools programmatically.
codingcomposite (file + terminal + search + web + skills + browser + todo + memory + session_search + clarify + code_execution + delegation + vision)Coding-focused bundle for software work: file editing, terminal, search, web docs, skills, browser, delegate, and code execution.
cronjobcronjobSchedule and manage recurring tasks.
debuggingcomposite (file + terminal + web)Debug bundle — file, process/terminal, web extract/search.
delegationdelegate_taskSpawn isolated subagent instances for parallel work.
discorddiscordCore Discord text/embed/DM actions (gateway-only). Active on the hermes-discord toolset.
discord_admindiscord_adminDiscord moderation (bans, role changes, channel management). Active on the hermes-discord toolset; requires the bot to hold the relevant Discord permissions.
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.
computer_usecomputer_useBackground desktop control via cua-driver — does not steal cursor/focus. Works with any tool-capable model. macOS, Windows, and Linux; requires cua-driver on $PATH.
context_engine(varies)Runtime tools exposed by the active context-engine plugin (empty until a plugin populates it).
image_genimage_generateText-to-image generation via FAL.ai (with opt-in OpenAI / xAI backends).
video_genvideo_generate, xai_video_edit, xai_video_extendText-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. xai_video_edit / xai_video_extend are provider-specific edit/extend tools, gated on xAI Imagine credentials.
kanbankanban_attach, kanban_attach_url, kanban_attachments, kanban_block, kanban_comment, kanban_complete, kanban_create, kanban_heartbeat, kanban_link, kanban_list, kanban_request_changes, kanban_request_review, kanban_show, kanban_unblockMulti-agent coordination tools. Registered for dispatcher-spawned task workers (HERMES_KANBAN_TASK) and for profiles that explicitly list the kanban toolset by name (the all/* wildcard does not enable it). Workers mark tasks done, request first-class review, block, heartbeat, comment, and create/link follow-up tasks; orchestrator profiles additionally get board-routing tools like list/unblock. delegate_task children are not Kanban run owners: their schema strips/disables this toolset and runtime guards reject direct board mutations, even if parent HERMES_KANBAN_* env vars are present.
memorymemoryPersistent cross-session memory management.
desktop_uiclose_terminal, focus_pane, open_preview, react_to_message, read_preview, read_terminal, read_window_belowAffordances that act on the Hermes desktop app itself — read/close the embedded terminal pane, open and read the in-app browser, identify the OS window behind the app, reveal a pane, react to a message. Enabled for sessions whose source is the desktop app, whichever backend it's connected to (local, SSH, URL, or Hermes Cloud). Never present on CLI, TUI, messaging, or cron sessions.
projectproject_create, project_list, project_switchCreate and switch desktop Projects (named, multi-folder workspaces). GUI / desktop sessions only.
safeimage_generate, vision_analyze, web_extract, web_search (via includes)Read-only research + media generation. No file writes, no terminal, no code execution.
searchweb_searchWeb search only (without extract).
session_searchsession_searchSearch past conversation sessions.
skillsskill_manage, skill_view, skills_listSkill CRUD and browsing.
spotifyspotify_albums, spotify_devices, spotify_library, spotify_playback, spotify_playlists, spotify_queue, spotify_searchNative Spotify control (playback, queue, search, playlists, albums, library). Registered by the bundled spotify plugin.
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.
videovideo_analyzeVideo analysis and understanding tools (opt-in, not in the default toolset — add explicitly via --toolsets).
webweb_extract, web_searchWeb search and page content extraction.
x_searchx_searchRead-only public X discovery via xAI's built-in x_search Responses tool. Use the xurl skill for authenticated X API reads and account actions. Off by default; opt in via hermes tools. Schema only registered when xAI credentials (SuperGrok OAuth or XAI_API_KEY) are configured.
yuanbaoyb_query_group_info, yb_query_group_members, yb_search_sticker, yb_send_dm, yb_send_stickerYuanbao DM/group actions and sticker search. Registered only on hermes-yuanbao.

Platform Toolsets

A lookup table. Do not read it all; find the row that applies to you.

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 — 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, computer_use, Home Assistant, and the kanban tools (all check_fn-gated at runtime).
hermes-acpDrops clarify, cronjob, image_generate, text_to_speech, computer_use, all four Home Assistant tools, and the kanban tools. Focused on coding tasks in IDE context.
hermes-api-serverDrops clarify, text_to_speech, computer_use, and the kanban tools. Keeps everything else — suitable for programmatic access where user interaction isn't possible.
hermes-cronSame as hermes-cli.
hermes-telegramSame as hermes-cli.
hermes-discordAdds discord and discord_admin on top of 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-feishuAdds the five feishu_doc_* / feishu_drive_* tools (only used by the document-comment handler, not the regular chat adapter).
hermes-qqbotSame as hermes-cli.
hermes-wecomSame as hermes-cli.
hermes-wecom-callbackSame as hermes-cli.
hermes-weixinSame as hermes-cli.
hermes-yuanbaoAdds the five yb_* tools (DM/group/sticker) on top of hermes-cli.
hermes-homeassistantSame as hermes-cli (the Home Assistant tools are already present by default and activate when HASS_TOKEN is set).
hermes-webhookRestricted safe subset — only web_search, web_extract, vision_analyze, and clarify. Webhook-triggered runs get no terminal, file, or browser access.
hermes-gatewayInternal gateway orchestrator toolset — union of every hermes-<platform> toolset; used when the gateway needs to accept any message source.

Dynamic Toolsets

Settings you configure once. Change one at a time so you can see what each does.

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.

YAML5 lines
# 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:

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

Wildcards

  • all or * — expands to every registered toolset (built-in + dynamic + plugin)

A handful of tools have an additional availability check on top of toolset membership and are not turned on by all/* alone:

  • Capability-gated tools (browser, computer_use, code_execution, Feishu, Home Assistant, cronjob) appear only when their backend/credential prerequisite is configured.
  • Workflow-gated tools — the kanban toolset — are deliberately opt-in. all/* does not enable kanban; you must list kanban explicitly (or be a dispatcher-spawned worker with HERMES_KANBAN_TASK set). Kanban tools mutate shared board state, so they stay off by default even under all.

Relationship to `hermes tools`

Commands you type in a terminal. Understand what one does before copying it. Commands here: 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.

Knowledge check

4 questions answered by this page alone.

Every option is a real identifier from the Hermes documentation. The wrong ones are real too, just from other pages.

1. According to this lesson, which command does “curses UI to enable/disable per platform”?
2. In this lesson's table, what is the “Tools” for “skills”?
3. Which of these headings does not appear in this lesson?
4. Which configuration key appears in this lesson's examples?