Skip to main content
This page documents Mibyan’ built-in tools, grouped by toolset. Availability varies by platform, credentials, and enabled toolsets. Quick counts (current registry): ~100 tools — 10 browser tools (core) + 2 CDP-gated browser tools + 5 browser-vault tools + browser_exec, 4 file tools, 4 Home Assistant tools, 2 terminal tools (terminal, process_manage), 11 desktop-GUI tools (read_terminal, close_terminal, desktop_preview, drive_preview, annotate_preview, read_window_below, focus_pane, react_to_message, gui_tour, show_tip, apply_layout — desktop-app sessions only), 2 web tools, 5 Feishu tools, 7 Spotify tools (registered by the bundled spotify plugin), 5 Yuanbao tools, 14 kanban tools (registered when the kanban dispatcher spawns the agent), 1 project tool (desktop_project; desktop/GUI sessions), 2 Discord tools, 3 video tools (video_generate, xai_video_edit, xai_video_extend), and a handful of standalone tools (memory, clarify, delegate_task, execute_code, cronjob_manage, session_search, skill_view/skill_manage/skills_list, text_to_speech, image_generate, vision_analyze, video_analyze, todo_list, computer_use, x_search).
MCP ToolsIn addition to built-in tools, Mibyan can load tools dynamically from MCP servers. MCP tools appear with the prefix mcp__<server>__ (e.g., mcp__github__create_issue for the github MCP server). See MCP Integration for configuration.

browser toolset

browser toolset (CDP-gated tools)

These two tools live in the browser toolset but only register when a Chrome DevTools Protocol endpoint is reachable at session start — via /browser connect, browser.cdp_url config, a Browserbase session, or Camofox.

clarify toolset

Asking multiple questions at once

The clarify tool takes a questions array (1–5 independent questions, each with its own choices and multi_select) so the agent can batch several clarification needs into a single prompt instead of asking sequentially. The result is {responses, outcome}: a responses array in the same order, each entry with the question text, choices_offered, a status (answered, skipped or unanswered) and user_response (null unless answered). outcome is submitted, cancelled, timed_out or undelivered. Per-surface behavior:
  • Desktop shows every question on one card. Picks and typed answers stage locally, and one Confirm and continue button (enabled once at least one question has an answer) submits the whole batch; blank questions are skipped. Staged answers stay editable until that confirm. Skip cancels the whole batch.
  • TUI and CLI show a compact status list (✓ answered / ▸ active / · pending) with only the active question’s choices expanded. Enter locks the active answer and jumps to the next unanswered question; Tab moves between questions to answer in any order; an empty submit skips that question; Esc cancels the batch.
  • Messaging platforms (Telegram, Discord, …) ask the questions one at a time, one card per question. Reply skip to skip one question. If the user stops responding, the remaining questions are not sent.
If the prompt times out part-way, answers the user already locked are kept: the tool result carries them with "outcome": "timed_out" and marks the rest "status": "unanswered", so the agent can distinguish a deliberate skip from an absent user. On messaging platforms the result also carries a "notice" saying why the wait ended ([user did not respond within Nm], or [clarify prompt could not be delivered] when the platform rejected the card — Mibyan first retries the question as a plain numbered-list message, and only reports this when that fails too; [clarify prompt could not be delivered: no chat surface] when the run has no chat to prompt in), so an undelivered prompt is never reported as user inactivity.

connections toolset

One tool for both kinds of external app. A target is a managed connector ("gmail" or {"name": "gmail"}, authorized through the Nous gateway) or a local MCP server ({"name": "linear", "mcp": true}, an entry in mcp_servers). The deadline for one call is five minutes, fixed by the backend when the call starts; reopening the chat or restarting the desktop never extends it. The tool is present only when the Nous Portal has enabled connectors for the signed-in account (the managed_tools claim on its token). Other sessions do not see it.

code_execution toolset

cronjob toolset

delegation toolset

feishu_doc toolset

Scoped to the Feishu document-comment intelligent-reply handler (gateway/platforms/feishu_comment.py). Not exposed on mibyan-cli or the regular Feishu chat adapter.

feishu_drive toolset

Scoped to the Feishu document-comment handler. Drives comment read/write operations on drive files.

file toolset

For local files, a full unredacted read (including all pages of the same file version) or a successful write_file supplies a whole-file baseline. Reading a smaller region afterward does not discard that baseline while the bytes remain unchanged. A changed file, an unread file, or a view with hidden/redacted or clamped content still needs a full current read before replacement; patch remains available for targeted edits. Writes made through terminal commands or execute_code do not establish a write_file baseline.

homeassistant toolset

computer_use toolset

Honcho tools (honcho_profile, honcho_search, honcho_context, honcho_reasoning, honcho_conclude) are no longer built-in. They are available via the Honcho memory provider plugin at plugins/memory/honcho/. See Memory Providers for installation and usage.

image_gen toolset

kanban toolset

Registered when the agent is either (a) spawned by the kanban dispatcher (mibyan_KANBAN_TASK env set) or (b) running in a profile that explicitly enables the kanban toolset. Task-scoped workers use lifecycle tools for their assigned task; orchestrator profiles additionally get board-routing tools like kanban_list and kanban_unblock. See Kanban Multi-Agent for the full workflow.

project toolset

Tools for driving desktop Projects — named, multi-folder workspaces. Registered when the project toolset is enabled (primarily the desktop app / dashboard surfaces).

memory toolset

setup toolset

Granted only to sessions of the desktop setup profile (role: setup in its profile.yaml); never configurable.

session_search toolset

skills toolset

terminal toolset

desktop_ui toolset

Enabled for sessions whose source is the Mibyan desktop app, on any backend it is connected to (local, SSH, URL, or Mibyan Cloud). Absent from CLI, TUI, messaging, and cron sessions.

Tours

The gui_tour tool discovers its own targets — call action='targets' and it returns every addressable element on screen with a selector, a label, and a stable flag. Stable selectors key off identity (data-tour, id, data-testid, aria-label) and survive a re-render; positional nth-child paths don’t, so stable ones sort first and should be preferred. To give an element a durable handle of your own, mark it up:
Handles are applied at the primitive, not the call site, so one edit names every instance. The ones that already exist: When adding a surface, tag its shared primitive the same way rather than tagging screens one by one — that keeps the tour vocabulary small and stops selectors from rotting. The same engine backs curated (non-agent) tours in the desktop app, so a feature can ship its own walkthrough:
A step can also move the app to where its target lives, and the tour puts things back when it ends:
navigate takes a route path and pane a desktop pane name. Both run as the step is entered, targets that mount late are waited for, and closing the tour — by any route, including Esc — returns to wherever it started. Pass 'preview' as the second argument to run against the page in the preview pane instead of the app.

Tips

A tip is a tour step without the production: one bubble, one arrow, no scrim and nothing to page through. It’s the right weight for a sentence that would be clearer with a finger on the thing it’s about — “the model name is a button” — where dimming the whole app would not be. The show_tip tool takes the same selectors gui_tour(action='targets') reports, so discovery is one call for both, and the durable data-tour handles above name targets for either. One tip is on screen at a time; a new one replaces the last. The app can also show its own, walking a built-in catalog of app features in order, paced like a game’s loading-screen tips rather than a notification: a few minutes into a launch at the earliest, then at most one every six hours, and only at a genuinely idle moment. A tip from Mibyan shares that cooldown, so it also buys the user six hours of quiet from the rotation. The rotation is a single lap: each catalog tip shows once, whether it timed out or was closed with the ✕, and once every tip has had its turn the app goes quiet. The settings row starts the lap over. Both tips and tours are on by default and switched off in Settings → Appearance (display.in_app_tips, display.in_app_tours). Off covers Mibyan as well as the app: the switch reaches the connected gateway’s config and the tool leaves the model’s schema, so the agent is never told about a surface it isn’t allowed to use. Like every schema change, that lands on the next session — a running conversation keeps the toolset it started with, and the app declines the call in the meantime.

todo toolset

vision toolset

video toolset

Opt-in toolset (not loaded in the default mibyan-cli set). Add via --toolsets video or include video in your toolsets: config.

video_gen toolset

Opt-in toolset (not loaded in the default mibyan-cli set). Add via --toolsets video_gen or enable it in mibyan tools → Video Generation, which also walks you through picking a backend. Backends ship as plugins under plugins/video_gen/<name>/:
  • xAI Grok-Imagine — text-to-video and image-to-video (SuperGrok OAuth or XAI_API_KEY).
  • FAL.ai — Veo 3.1, Pixverse v6, Kling 3.0 / O3 (requires FAL_KEY).
  • OpenRouter — every generative model on OpenRouter’s video API (Veo 3.1, Sora 2 Pro, Kling 3, Seedance 2, Wan 3, Hailuo 3, Grok Imagine, FLUX 3 Video, …); text-to-video, image-to-video and reference-to-video; catalog and per-model limits fetched live (requires OPENROUTER_API_KEY or a credential added with mibyan auth add openrouter, billed to your OpenRouter credit).
  • DeepInfra — live video-gen catalog over the OpenAI-compatible videos endpoint (requires DEEPINFRA_API_KEY).
The single video_generate tool covers both modalities — pass image_url to animate a still, omit it to generate from text alone. The active backend auto-routes to the right endpoint. As with image_generate, the model is user-configured (video_gen.model) and not selectable by the agent — none of the video tools take a model argument. The tool’s description is rebuilt at session start to reflect the active backend’s actual capabilities (modalities, aspect ratios, resolutions, duration range, max reference images, audio support). See Video Generation Provider Plugins for backend authoring.

web toolset

x_search toolset

tts toolset

discord toolset

Registered on the mibyan-discord platform toolset (gateway only). Uses the same bot token as the messaging adapter.

discord_admin toolset

Registered on the mibyan-discord platform toolset. Moderation actions require the bot to hold the matching Discord permissions.

spotify toolset

Registered by the bundled spotify plugin. Requires an OAuth token — run mibyan auth spotify once to authorize.

mibyan-yuanbao toolset

Registered only on the mibyan-yuanbao platform toolset. Yuanbao is Tencent’s chat app; these tools drive its DM/group/sticker APIs.