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).
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
Theclarify 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
skipto skip one question. If the user stops responding, the remaining questions are not sent.
"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
Thegui_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:
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:
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. Theshow_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_KEYor a credential added withmibyan auth add openrouter, billed to your OpenRouter credit). - DeepInfra — live
video-gencatalog over the OpenAI-compatible videos endpoint (requiresDEEPINFRA_API_KEY).
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.

