スラッシュコマンド
コマンドは Gateway によって処理されます。ほとんどのコマンドは、/ で始まる単独のメッセージとして送信する必要があります。
ホスト専用の bash チャットコマンドは ! <cmd> を使います(/bash <cmd> はそのエイリアスです)。
関連する仕組みは 2 つあります。
- コマンド: 単独の
/...メッセージ。 - ディレクティブ:
/think,/fast,/verbose,/reasoning,/elevated,/exec,/model,/queue。- ディレクティブは、モデルがメッセージを見る前に取り除かれます。
- 通常のチャットメッセージ内では(ディレクティブだけのメッセージではない場合)、これらは「インラインヒント」として扱われ、セッション設定は保持されません。
- ディレクティブだけのメッセージでは(メッセージがディレクティブだけを含む場合)、セッションに保持され、確認応答が返されます。
- ディレクティブは認可された送信者に対してのみ適用されます。
commands.allowFromが設定されている場合、それが使われる唯一の許可リストです。それ以外の場合、認可はチャンネルの許可リスト/ペアリングとcommands.useAccessGroupsによって決まります。認可されていない送信者には、ディレクティブは平文として扱われます。
/help, /commands, /status, /whoami (/id)。
これらは即座に実行され、モデルがメッセージを見る前に取り除かれ、残りのテキストは通常のフローを継続します。
config
commands.text(デフォルトtrue)は、チャットメッセージ内での/...解析を有効にします。- ネイティブコマンドのない画面(WhatsApp/WebChat/Signal/iMessage/Google Chat/Microsoft Teams)では、これを
falseに設定してもテキストコマンドは引き続き動作します。
- ネイティブコマンドのない画面(WhatsApp/WebChat/Signal/iMessage/Google Chat/Microsoft Teams)では、これを
commands.native(デフォルト"auto")は、ネイティブコマンドを登録します。- Auto: Discord/Telegram ではオン、Slack ではオフ(スラッシュコマンドを追加するまで)、ネイティブ対応のないプロバイダーでは無視されます。
- プロバイダーごとに上書きするには
channels.discord.commands.native、channels.telegram.commands.native、またはchannels.slack.commands.nativeを設定します(bool または"auto")。 falseを設定すると、Discord/Telegram では起動時に以前登録されたコマンドを削除します。Slack のコマンドは Slack app 側で管理され、自動では削除されません。
commands.nativeSkills(デフォルト"auto")は、対応している場合に skill コマンドをネイティブ登録します。- Auto: Discord/Telegram ではオン、Slack ではオフ(Slack では skill ごとにスラッシュコマンドを作成する必要があります)。
- プロバイダーごとに上書きするには
channels.discord.commands.nativeSkills、channels.telegram.commands.nativeSkills、またはchannels.slack.commands.nativeSkillsを設定します(bool または"auto")。
commands.bash(デフォルトfalse)は、ホストシェルコマンドを実行する! <cmd>を有効にします(/bash <cmd>はエイリアスです。tools.elevatedの許可リストが必要です)。commands.bashForegroundMs(デフォルト2000)は、bash がバックグラウンドモードに切り替わるまで待つ時間を制御します(0なら即座にバックグラウンド化)。commands.config(デフォルトfalse)は/configを有効にします(openclaw.jsonを読み書き)。commands.mcp(デフォルトfalse)は/mcpを有効にします(mcp.servers配下の OpenClaw 管理 MCP config を読み書き)。commands.plugins(デフォルトfalse)は/pluginsを有効にします(plugin の検出/状態確認と install + enable/disable 制御)。commands.debug(デフォルトfalse)は/debugを有効にします(ランタイム専用の上書き)。commands.allowFrom(任意)は、コマンド認可用のプロバイダー別許可リストを設定します。設定されている場合、これがコマンドとディレクティブの唯一の認可元になります(チャンネルの許可リスト/ペアリングとcommands.useAccessGroupsは無視されます)。グローバルデフォルトには"*"を使い、プロバイダー固有キーがそれを上書きします。commands.useAccessGroups(デフォルトtrue)は、commands.allowFromが設定されていない場合に、コマンドへ許可リスト/ポリシーを適用します。
コマンド一覧
テキスト + ネイティブ(有効時):/help/commands/tools [compact|verbose](現在のエージェントが今この時点で使えるものを表示。verboseは説明を追加)/skill <name> [input](名前で skill を実行)/status(現在の状態を表示。利用可能な場合は、現在のモデルプロバイダーの使用量/クォータも含む)/tasks(現在のセッションのバックグラウンドタスクを一覧表示。エージェントローカルのフォールバック件数付きで、アクティブおよび最近のタスク詳細を表示)/allowlist(allowlist 項目を一覧表示/追加/削除)/approve <id> <decision>(exec 承認プロンプトを解決。利用可能な決定は保留中の承認メッセージを使います)/context [list|detail|json](「context」を説明。detailはファイルごと + tool ごと + skill ごと + system prompt サイズを表示)/btw <question>(今後のセッション文脈を変えずに、現在のセッションについて一時的な脇道の質問をする。/tools/btw を参照)/export-session [path](エイリアス:/export)(完全な system prompt を含めて現在のセッションを HTML にエクスポート)/whoami(送信者 id を表示。エイリアス:/id)/session idle <duration|off>(focused thread bindings の無操作時自動 unfocus を管理)/session max-age <duration|off>(focused thread bindings の最大経過時間による自動 unfocus を管理)/subagents list|kill|log|info|send|steer|spawn(現在のセッションの sub-agent 実行を調査、制御、または起動)/acp spawn|cancel|steer|close|status|set-mode|set|cwd|permissions|timeout|model|reset-options|doctor|install|sessions(ACP ランタイムセッションを調査および制御)/agents(このセッションの thread-bound agents を一覧表示)/focus <target>(Discord: この thread、または新しい thread を、session/subagent target にバインド)/unfocus(Discord: 現在の thread binding を削除)/kill <id|#|all>(このセッションの実行中 sub-agent を 1 つまたはすべて即座に中断。確認メッセージなし)/steer <id|#> <message>(実行中 sub-agent を即座に操縦。可能なら実行中に、それ以外では現在の作業を中断して steer メッセージで再開)/tell <id|#> <message>(/steerのエイリアス)/config show|get|set|unset(config をディスクへ永続化、owner-only。commands.config: trueが必要)/mcp show|get|set|unset(OpenClaw MCP server config を管理、owner-only。commands.mcp: trueが必要)/plugins list|show|get|install|enable|disable(検出された plugins を調査し、新しいものを install し、有効化を切り替える。書き込みは owner-only。commands.plugins: trueが必要)/pluginは/pluginsのエイリアスです。/plugin install <spec>は、openclaw plugins installと同じ plugin spec を受け付けます: ローカルパス/アーカイブ、npm package、またはclawhub:<pkg>。- enable/disable の書き込みには、引き続き再起動のヒントが返されます。監視中のフォアグラウンド Gateway では、OpenClaw が書き込み直後に自動でその再起動を行う場合があります。
/debug show|set|unset|reset(ランタイム上書き、owner-only。commands.debug: trueが必要)/usage off|tokens|full|cost(レスポンスごとの usage フッターまたはローカルの cost 要約)/tts off|always|inbound|tagged|status|provider|limit|summary|audio(TTS を制御。/tts を参照)- Discord: ネイティブコマンドは
/voiceです(Discord は/ttsを予約)。テキストの/ttsは引き続き動作します。
- Discord: ネイティブコマンドは
/stop/restart/dock-telegram(エイリアス:/dock_telegram)(返信先を Telegram に切り替え)/dock-discord(エイリアス:/dock_discord)(返信先を Discord に切り替え)/dock-slack(エイリアス:/dock_slack)(返信先を Slack に切り替え)/activation mention|always(グループのみ)/send on|off|inherit(owner-only)/resetまたは/new [model](任意の model ヒント。残りはそのまま渡される)/think <off|minimal|low|medium|high|xhigh>(model/provider による動的な選択肢。エイリアス:/thinking,/t)/fast status|on|off(引数を省略すると、現在有効な fast-mode 状態を表示)/verbose on|full|off(エイリアス:/v)/reasoning on|off|stream(エイリアス:/reason。on の場合、Reasoning:で始まる別メッセージを送信。stream= Telegram の draft のみ)/elevated on|off|ask|full(エイリアス:/elev。fullは exec 承認をスキップ)/exec host=<auto|sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id>(現在値を表示するには/execを送る)/model <name>(エイリアス:/models。またはagents.defaults.models.*.aliasの/<alias>)/queue <mode>(debounce:2s cap:25 drop:summarizeのようなオプションも指定可能。現在の設定を見るには/queueを送る)/bash <command>(ホスト専用。! <command>のエイリアス。commands.bash: true+tools.elevatedの許可リストが必要)/dreaming [off|core|rem|deep|status|help](dreaming mode を切り替える、または状態を表示。Dreaming を参照)
/compact [instructions](/concepts/compaction を参照)! <command>(ホスト専用。一度に 1 つ。長時間実行ジョブには!poll+!stopを使う)!poll(出力 / 状態を確認。任意でsessionIdを指定可能。/bash pollも動作)!stop(実行中の bash ジョブを停止。任意でsessionIdを指定可能。/bash stopも動作)
- コマンドは、コマンドと引数の間に任意で
:を受け付けます(例:/think: high,/send: on,/help:)。 /new <model>は model alias、provider/model、または provider 名(あいまい一致)を受け付けます。一致しなければ、そのテキストはメッセージ本文として扱われます。- provider usage の完全な内訳を見るには
openclaw status --usageを使ってください。 /allowlist add|removeにはcommands.config=trueが必要で、チャンネルのconfigWritesを尊重します。- マルチアカウントチャンネルでは、config 対象の
/allowlist --account <id>と/config set channels.<provider>.accounts.<id>...も、対象アカウントのconfigWritesを尊重します。 /usageはレスポンスごとの usage フッターを制御します。/usage costは OpenClaw セッションログからローカルの cost 要約を表示します。/restartはデフォルトで有効です。無効化するにはcommands.restart: falseを設定してください。- Discord 専用ネイティブコマンド:
/vc join|leave|statusはボイスチャンネルを制御します(channels.discord.voiceとネイティブコマンドが必要。テキストでは利用不可)。 - Discord の thread-binding コマンド(
/focus,/unfocus,/agents,/session idle,/session max-age)には、実効的な thread bindings が有効である必要があります(session.threadBindings.enabledおよび/またはchannels.discord.threadBindings.enabled)。 - ACP コマンドのリファレンスとランタイム挙動: ACP Agents。
/verboseはデバッグと追加の可視化向けです。通常使用では off のままにしてください。/fast on|offはセッション上書きを保持します。これをクリアして config のデフォルトへ戻すには、Sessions UI のinheritオプションを使ってください。/fastは provider 固有です: OpenAI/OpenAI Codex はネイティブ Responses endpoint 上でこれをservice_tier=priorityに対応付け、一方、api.anthropic.comへ送られる OAuth 認証トラフィックを含む直接の公開 Anthropic リクエストでは、これをservice_tier=autoまたはstandard_onlyに対応付けます。OpenAI と Anthropic を参照してください。- tool 失敗の要約は、関係がある場合は引き続き表示されますが、詳細な失敗テキストが含まれるのは
/verboseがonまたはfullのときだけです。 /reasoning(および/verbose)はグループ設定では危険です: 意図せずに内部 reasoning や tool 出力を露出させる可能性があります。特にグループチャットでは、off のままにしておくことを推奨します。/modelは新しいセッション model を即座に保持します。- エージェントがアイドル状態なら、次の実行で即座に使われます。
- すでに実行が進行中の場合、OpenClaw はライブ切り替えを pending としてマークし、きれいな再試行ポイントでのみ新しい model に再起動します。
- すでに tool 活動または返信出力が始まっている場合、その pending 切り替えは、後の再試行機会または次のユーザーターンまでキューに残ることがあります。
- ファストパス: 許可リスト入り送信者からのコマンドのみのメッセージは即時処理されます(queue + model をバイパス)。
- グループの mention ゲート: 許可リスト入り送信者からのコマンドのみのメッセージは mention 要件をバイパスします。
- インラインショートカット(許可リスト入り送信者のみ): 一部のコマンドは通常メッセージ内に埋め込まれていても動作し、モデルが残りのテキストを見る前に取り除かれます。
- 例:
hey /statusは status 返信を発生させ、残りのテキストは通常フローを続行します。
- 例:
- 現在の対象:
/help,/commands,/status,/whoami(/id)。 - 認可されていないコマンドのみのメッセージは黙って無視され、インラインの
/...トークンは平文として扱われます。 - skill コマンド:
user-invocableな skills はスラッシュコマンドとして公開されます。名前はa-z0-9_にサニタイズされ(最大 32 文字)、衝突した場合は数値サフィックスが付きます(例:_2)。/skill <name> [input]は名前で skill を実行します(ネイティブコマンドの上限のために skill ごとのコマンドが作れない場合に便利です)。- デフォルトでは、skill コマンドは通常のリクエストとしてモデルへ転送されます。
- Skills は任意で
command-dispatch: toolを宣言でき、コマンドを tool へ直接ルーティングできます(決定的で、モデル不要)。 - 例:
/prose(OpenProse plugin)— OpenProse を参照。
- ネイティブコマンド引数: Discord は動的オプションに autocomplete を使います(必須引数を省略した場合はボタンメニューも表示)。Telegram と Slack では、コマンドが選択肢に対応していて引数を省略した場合、ボタンメニューが表示されます。
/tools
/tools は config に関する質問ではなく、ランタイム上の質問に答えます: この会話でこのエージェントが今使えるものは何か。
- デフォルトの
/toolsは compact で、すばやく確認しやすいよう最適化されています。 /tools verboseは短い説明を追加します。- 引数に対応したネイティブコマンド画面では、同じ
compact|verboseのモード切り替えが公開されます。 - 結果はセッションスコープなので、agent、channel、thread、送信者認可、または model が変わると出力も変わる可能性があります。
/toolsには、実際にランタイムで到達可能な tools が含まれます。core tools、接続された plugin tools、channel 所有の tools も含みます。
/tools を静的カタログとして扱うのではなく、Control UI の Tools パネルや config/catalog 画面を使ってください。
使用量の表示面(どこに何が出るか)
- provider usage/quota(例: 「Claude 80% left」)は、usage tracking が有効な場合、現在の model provider について
/statusに表示されます。OpenClaw は provider のウィンドウを% leftに正規化します。MiniMax では、残量のみの percent フィールドは表示前に反転され、model_remains応答では model タグ付きの plan label とともに chat-model エントリーが優先されます。 /statusの token/cache 行 は、ライブ session snapshot がまばらな場合に、最新の transcript usage エントリーへフォールバックできます。既存のゼロでないライブ値が依然として優先され、transcript フォールバックは、保存済み total が欠けているか小さすぎる場合に、アクティブ runtime model label や、より大きな prompt 指向 total の復元にも使えます。- レスポンスごとの tokens/cost は
/usage off|tokens|fullによって制御されます(通常返信に追記されます)。 /model statusは models/auth/endpoints に関するものであり、usage についてではありません。
model 選択(/model)
/model はディレクティブとして実装されています。
例:
/modelと/model listは、compact で番号付きの picker(model family + 利用可能な providers)を表示します。- Discord では、
/modelと/modelsは provider と model のドロップダウン、および Submit ステップを持つ対話型 picker を開きます。 /model <#>はその picker から選択します(可能なら現在の provider を優先)。/model statusは詳細表示を示し、利用可能な場合は設定済みの provider endpoint(baseUrl)と API mode(api)も含みます。
debug の上書き
/debug を使うと、ランタイム専用の config 上書き(メモリー上、ディスクではない)を設定できます。owner-only。デフォルトでは無効で、commands.debug: true で有効にします。
例:
- 上書きは新しい config 読み取りへ即座に反映されますが、
openclaw.jsonには書き込みません。 - すべての上書きをクリアしてディスク上の config に戻るには
/debug resetを使ってください。
config の更新
/config はディスク上の config(openclaw.json)へ書き込みます。owner-only。デフォルトでは無効で、commands.config: true で有効にします。
例:
- config は書き込み前に検証され、無効な変更は拒否されます。
/configの更新は再起動後も保持されます。
MCP の更新
/mcp は、mcp.servers 配下の OpenClaw 管理 MCP server 定義を書き込みます。owner-only。デフォルトでは無効で、commands.mcp: true で有効にします。
例:
/mcpは、Pi 所有の project settings ではなく、OpenClaw config に保存します。- 実際に実行可能な transport は runtime adapters が判断します。
plugin の更新
/plugins を使うと、運用者は検出された plugins を調査し、config 上で有効化を切り替えられます。読み取り専用フローでは /plugin をエイリアスとして使えます。デフォルトでは無効で、commands.plugins: true で有効にします。
例:
/plugins listと/plugins showは、現在のワークスペースとディスク上の config に対する実際の plugin 検出を使います。/plugins enable|disableは plugin config だけを更新し、plugins の install や uninstall は行いません。- enable/disable の変更後は、適用のために Gateway を再起動してください。
画面ごとの注意
- テキストコマンド は通常のチャットセッション内で実行されます(DM は
mainを共有し、グループは独自のセッションを持ちます)。 - ネイティブコマンド は分離されたセッションを使います:
- Discord:
agent:<agentId>:discord:slash:<userId> - Slack:
agent:<agentId>:slack:slash:<userId>(プレフィックスはchannels.slack.slashCommand.sessionPrefixで設定可能) - Telegram:
telegram:slash:<userId>(CommandTargetSessionKey経由でチャットセッションを対象にする)
- Discord:
/stopはアクティブなチャットセッションを対象にするため、現在の実行を中断できます。- Slack:
channels.slack.slashCommandは、単一の/openclaw形式コマンド向けに引き続きサポートされています。commands.nativeを有効にする場合、組み込みコマンドごとに 1 つの Slack スラッシュコマンドを作成する必要があります(名前は/helpと同じ)。Slack のコマンド引数メニューは、一時的な Block Kit ボタンとして配信されます。- Slack のネイティブ例外: Slack は
/statusを予約しているため、/statusではなく/agentstatusを登録してください。テキストの/statusは Slack メッセージ内で引き続き動作します。
- Slack のネイティブ例外: Slack は
BTW の脇道質問
/btw は、現在のセッションについてのすばやい脇道の質問です。
通常のチャットと異なり、これは:
- 現在のセッションを背景文脈として使い、
- 別個の tool-less な one-shot 呼び出しとして実行され、
- 今後のセッション文脈を変えず、
- transcript history には書き込まれず、
- 通常の assistant メッセージではなく、ライブの脇道結果として配信されます。
/btw は、メインの
タスクを進めたまま一時的な確認をしたいときに便利です。
例: