Skip to main content
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:
  • 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., mibyan-cli is the default for interactive CLI sessions)

Configuring Toolsets

Per-session (CLI)

Per-platform (config.yaml)

Interactive management

Or in-session:

Core Toolsets

Platform Toolsets

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

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.
This creates a mcp-github toolset you can reference in --toolsets or platform configs. The bare server name (github) works as an alias. If a server is named like a built-in toolset (homeassistant, browser), that name resolves to the built-in tools plus the server’s mcp__<server>__* tools; neither side shadows the other.

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:

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 mibyan_KANBAN_TASK set). Kanban tools mutate shared board state, so they stay off by default even under all.

Relationship to mibyan tools

The mibyan 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.