Skip to content

Built-in commands

Every slash command shipped with CraftBot, with its aliases, subcommands, and behavior. All of them work in both interfaces. The two marked otherwise say so.

At a glance:

Command Aliases What it does
/help [command] /h, /? List commands, or detail one
/clear /cls Clear the chat and action log
/clear-tasks /cleartasks Remove finished tasks from the task panel
/reset (none) Reset agent state and clear history
/exit /quit, /q Shut down CraftBot
/menu (none) Open the settings menu (browser only)
/provider [name] [key] (none) View or change the LLM provider
/mcp <subcommand> (none) Manage MCP servers
/skill <subcommand> (none) Manage skills
/cred <subcommand> (none) Credentials and integration status
/update [--check] /upgrade Check for and install updates
/tokens (none) Show this session's token usage

Beyond these, the registry also holds integration commands (/gmail, /slack, ...) and skill commands (/pdf, /docx, ...), covered at the end.

/help

/help              # list all commands with descriptions and aliases
/help mcp          # usage, subcommands, and examples for one command

The leading slash on the argument is optional (/help mcp and /help /mcp both work). Skill shortcuts are hidden from the main list to keep it short. /skill list shows them.

/clear

Clears the chat transcript and the action log in the current interface, and also drops the agent's persisted conversation memory, so a restart won't resurrect the cleared chat. Task history and dashboard data are unaffected. Use it when the conversation is cluttered. Use /reset when the agent needs a fresh start.

/clear-tasks

Removes tasks whose status is completed, failed, or cancelled from the task panel, along with their child actions. Running and waiting tasks are preserved, and dashboard usage data and task history are untouched. Requires an action panel, so it's effectively a browser command. In the CLI it reports that no action panel is available.

/reset

Resets the agent to its initial state: clears the current task, action history, and conversation context, and wipes the chat view. Saved settings and credentials are not affected. Feedback arrives as system messages while the reset runs in the background.

/exit

Stops the agent cleanly and ends the session. In service mode the service manager may restart it. Use python craftbot.py stop to keep it down.

Opens the settings menu. Browser only. In the CLI it points you to /help instead. (In practice you'll click Settings in the sidebar; the command exists mainly for keyboard-first use.)

/provider

View or switch the LLM provider without opening settings.

/provider                        # show current provider and masked API key
/provider anthropic              # switch provider (keeps any stored key)
/provider anthropic sk-ant-...   # switch and set the key in one line

Accepted names:

Name Provider Key
openai OpenAI OPENAI_API_KEY
gemini Google Gemini GOOGLE_API_KEY
anthropic Anthropic ANTHROPIC_API_KEY
byteplus BytePlus BYTEPLUS_API_KEY
deepseek DeepSeek DEEPSEEK_API_KEY
grok Grok (xAI) XAI_API_KEY
glm Z.ai (GLM) ZAI_API_KEY
fugu Sakana (Fugu) SAKANA_API_KEY
openrouter OpenRouter OPENROUTER_API_KEY
remote Ollama (local) none

The change is saved to settings.json and the LLM reinitializes immediately, with no restart. Model selection, base URLs, and subscription login live in Settings → Model; see LLM providers.

/mcp

Manage MCP servers. /mcp with no arguments prints usage.

Subcommand Does
list [--all] List enabled servers; --all includes disabled ones
add <name> --transport stdio -- <cmd...> Add a stdio server (everything after -- is the launch command)
add <name> --transport http <url> Add an HTTP server
add-json <name> '<json>' Add a server from a JSON config block
remove <name> Remove a server
enable <name> / disable <name> Toggle a server without removing it
env <name> <key> <value> Set an environment variable for a server
/mcp add myserver --transport stdio -- python server.py
/mcp add remote-tools --transport http https://example.com/mcp
/mcp env myserver API_KEY my-secret-key
/mcp list --all

The browser's Settings → MCPs page edits the same configuration.

/skill

Manage skills. /skill with no arguments prints usage.

Subcommand Does
list [--all] List enabled skills; --all includes disabled ones
info <name> Description, version, author, path, and the skill's actions
enable <name> / disable <name> Toggle a skill; this also registers/unregisters its slash command
install <path> Install from a local directory
install <git-url> Install from a GitHub/GitLab URL
create <name> [description] Scaffold a new skill
remove <name> Remove a skill
reload Re-scan skills from disk
dirs Show the directories scanned for skills
/skill info pdf
/skill enable cli-anything
/skill install https://github.com/user/skill.git
/skill create my_skill "My custom skill"

/cred

Read-only overview of credentials and integrations. Connecting happens with the per-integration commands or Settings → Integrations.

Subcommand Does
list Every integration with connected / not connected
status Same, with account names for connected integrations and a connected count
integrations Every available integration with its /command and description

/update

/update            # check GitHub for a newer version and install it
/update --check    # check only, don't install

An update pulls the latest code, installs dependencies, and restarts CraftBot automatically, streaming progress as system messages. If you're already current, it says so.

/tokens

Prints the cumulative token usage of the chat it's typed in, as a system message:

Session token usage
  Input:  79,022
  Cached: 312,455
  Output: 5,770
  Total:  84,792

Input is genuinely new prompt tokens (cache reads excluded), Cached is prompt tokens served from the provider's cache, and Total is Input + Output. Totals accumulate across every run in the session and survive restarts and /clear (clearing wipes the conversation, not the session's lifetime counters). A brand-new chat that hasn't sent a message yet reports zeros. Sessions created before this command existed start counting from their next run.

Integration commands

Every available integration registers its own command named after itself: /gmail, /slack, /discord, /telegram_bot, /notion, and so on (run /cred integrations for the live list). Each supports:

/<integration>              # help, including integration-specific subcommands
/<integration> connect      # start the connect flow (token, OAuth, or interactive/QR)
/<integration> disconnect
/<integration> status       # connection state and accounts

Token-based integrations take their credentials as arguments, like /telegram_bot connect <token> (running connect bare tells you which fields it needs). OAuth ones open the provider's flow. Interactive ones (like WhatsApp Web) walk you through it. Some handlers add extra subcommands (QR login, invites), listed in that integration's help. Details per service are on the integration pages.

Skill commands

Every enabled skill is also a slash command: /pdf, /docx, /xlsx, and whatever else you've enabled. These don't run UI code. They hand your text to the agent with that skill pre-selected:

/pdf merge report-a.pdf and report-b.pdf into final.pdf

Arguments flow into the skill's instructions through $ARGUMENTS substitution (skills can also grab positional pieces with $ARGUMENTS[0], $1, ...). Invoked bare, the agent asks what you need. Enabling or disabling a skill registers or removes its command immediately, and a skill whose name collides with an existing command is skipped. They're hidden from /help. See them with /skill list or the browser's / autocomplete.