Commands, package names, and image names on this page come from the open-source project that Mibyan Desktop is built on, and can differ from the Mibyan Desktop installer. For the supported Mibyan install and update path, see Install and update.
COMMAND_REGISTRY in mibyan_cli/commands.py:
- Interactive CLI slash commands — dispatched by
cli.py, with autocomplete from the registry - Messaging slash commands — dispatched by
gateway/run.py, with help text and platform menus generated from the registry
/plan used to be one of these; it is now a built-in command — see the Session table below.) A skill whose name matches a built-in command (or one of its aliases) never gets its own /<name> — the built-in wins and the skill stays loadable via /skill <name>; /skills list, /help skills and the command palette mark such a skill with slash command /<name> unavailable — name taken by built-in; use /skill <name>.
Permissions and admin/user split
Every messaging platform that supports a per-user allowlist (Telegram, Discord, Slack, Matrix, Mattermost, Signal, …) also supports a two-tier slash command split: admins get every registered command, regular users only get the names you list inuser_allowed_commands (plus the always-allowed floor /help and /whoami). Configure allow_admin_from and user_allowed_commands (and the per-group equivalents group_allow_admin_from / group_user_allowed_commands) inside the platform’s extra: block in ~/.mibyan/config.yaml.
See the per-platform docs for examples — the structure is identical across platforms:
If allow_admin_from is unset for a scope, that scope stays in unrestricted backward-compat mode — every allowed user can run every command.
Interactive CLI slash commands
Type/ in the CLI to open the autocomplete menu. Built-in commands are case-insensitive.
Session
Configuration
Tools & Skills
Info
Exit
Dynamic CLI slash commands
Quick Commands
User-defined quick commands map a short slash command to either a shell command or another slash command. Configure them in~/.mibyan/config.yaml:
/status, /deploy, or /inbox in the CLI or a messaging platform. Quick commands are resolved at dispatch time and may not appear in every built-in autocomplete/help table.
String-only prompt shortcuts are not supported as quick commands. Put longer reusable prompts in a skill, or use type: alias to point at an existing slash command.
Custom model aliases
Define your own short names for models you use often, then reach them with/model <alias> in a running session, mibyan chat --model <alias> at startup, or any messaging platform. Aliases work identically in these paths, on session-only (default) and --global switches.
Two config formats are supported:
Full form — pin an exact model, provider, and optionally a base URL. Put this in ~/.mibyan/config.yaml:
base_url can carry that endpoint’s credential via
api_key (a literal, or a "${VAR}" reference) or key_env (an environment
variable name); api_key wins if both are set. With neither set, the key is
resolved from the alias host
and never inherited from the provider that was active before the switch.
Short form — provider/model in one string. Set from the shell without editing YAML:
sonnet, kimi, opus, etc. will shadow the built-in. Alias names are case-insensitive.
Alias Resolution
Commands support prefix matching: typing/h resolves to /help, /mod resolves to /model. When a prefix is ambiguous (matches multiple commands), the first match in registry order wins. Full command names and registered aliases always take priority over prefix matches.
Messaging slash commands
Slack thread commands (The messaging gateway supports the following built-in commands inside Telegram, Discord, Slack, WhatsApp, Signal, Email, Home Assistant, and Teams chats:!prefix): Slack itself blocks native slash commands inside message threads (“/queue is not supported in threads. Sorry!”) and never delivers them to Mibyan. Inside a Slack thread, use the!prefix instead —!stop,!new,!status— and the gateway dispatches it exactly like the slash form.@Mibyan !stopand@Mibyan /stopwork in threads too. Only the first token is checked against the known command list, so messages like!nice workpass through to the agent unchanged. See Using commands inside threads for details.
Notes
/skin,/snapshot,/export,/import,/reload,/tools,/toolsets,/browser,/config,/cron,/platforms,/paste,/image,/statusbar,/battery,/focus,/plugins,/indicator,/wake,/journey,/redraw,/clear,/history,/save,/copy,/handoff,/prompt,/pet,/hatch,/timestamps,/subscription, and/quitare CLI-only commands./skillsis CLI-only for search/browse/install; its write-approval review subcommands (pending,approve,reject,diff,approval) also work on messaging platforms whenskills.write_approvalis on./memoryworks on both surfaces./verboseis CLI-only by default, but can be enabled for messaging platforms by settingdisplay.tool_progress_command: trueinconfig.yaml. When enabled, it cycles thedisplay.tool_progressmode and saves to config./focusand/verboseshare one suppression path (display.tool_progress), so they can never contradict each other:/focus onpins tool progress tooffand stashes your mode underdisplay.focus_saved_tool_progress;/focus offrestores it; cycling/verbosewhile focus is on takes the mode back and clears the focus badge. Focus view is display-only — it never changes conversation history, the system prompt, or anything sent to the model, so it has zero prompt-cache impact./sethome,/restart,/approve,/deny,/topic,/platform, and/commandsare messaging-only commands./status,/egress,/version,/whoami,/bg,/btw,/queue,/steer,/voice,/reload-mcp,/reload-skills,/rollback,/diff,/debug,/fast,/approvals,/busy,/footer,/curator,/kanban,/topup,/login,/suggestions,/blueprint,/learn,/init,/sessions,/loop, and/yolowork in both the CLI and the messaging gateway./voice join,/voice channel, and/voice leaveare only meaningful on Discord.- In the TUI,
/sessionsshows live sessions in the current TUI process. Use/resume [name]ormibyan --tui --resume <id-or-title>for saved or closed transcripts.
Confirmation prompts for destructive commands
The CLI prompts before running slash commands that throw away unsaved session state. The current destructive set is:
For each of these the CLI opens a three-choice modal: Approve Once (proceed this time), Always Approve (proceed and persist
approvals.destructive_slash_confirm: false so future destructive commands run without prompting), or Cancel.
Inline skip: append now, --yes, or -y to bypass the modal for a single invocation — e.g. /reset now, /new --yes my-session, /clear -y, /undo -y. Useful when the modal doesn’t render correctly on your terminal (see issue #30768 for native Windows PowerShell) or when scripting against the CLI.
Set approvals.destructive_slash_confirm: false in ~/.mibyan/config.yaml to disable the prompts globally; set it back to true to re-enable. See Security — Destructive slash command confirmation for context.
