スラッシュコマンド
コマンドはゲートウェイによって処理されます。 ほとんどのコマンドは/で始まるスタンドアロンメッセージとして送信する必要があります。
コマンドは Gateway(ゲートウェイ)によって処理されます。ほとんどのコマンドは、/ で始まる 単独の メッセージとして送信する必要があります。ホスト専用の bash チャットコマンドは
! <cmd> を使用します(/bash <cmd> はエイリアスです)。
関連する仕組みは 2 つあります。
- Commands:単独の
/...メッセージ。 - Directives:
/think、/verbose、/reasoning、/elevated、/exec、/model、/queue。- Directives は、モデルがメッセージを見る前に取り除かれます。
- 通常のチャットメッセージ(directive のみではない場合)では、「インラインヒント」として扱われ、セッション設定は 保持されません。
- directive のみのメッセージ(メッセージが directive だけで構成される場合)では、セッションに保持され、確認応答が返ります。
- ディレクティブは 認可された送信者 に対してのみ適用されます。 Directives は 許可された送信者(チャンネル許可リスト/ペアリングに加えて
commands.useAccessGroups)に対してのみ適用されます。
未許可の送信者では、directive はプレーンテキストとして扱われます。 許可されていない送信者は、プレーンテキストとして扱われるディレクティブを参照します。 許可されていない送信者は、プレーンテキストとして扱われるディレクティブを参照します。
/help、/commands、/status、/whoami(/id)。これらは即座に実行され、モデルがメッセージを見る前に取り除かれ、残りのテキストは通常のフローで処理されます。 それらはすぐに実行され、モデルがメッセージを見る前に剥がされ、残りのテキストは通常のフローを通過します。 それらはすぐに実行され、モデルがメッセージを見る前に剥がされ、残りのテキストは通常のフローを通過します。
設定
commands.text(デフォルト:true)は、チャットメッセージ内の/...の解析を有効にします。- ネイティブコマンドを持たないサーフェス(WhatsApp/WebChat/Signal/iMessage/Google Chat/MS Teams)では、これを
falseに設定してもテキストコマンドは引き続き動作します。
- ネイティブコマンドを持たないサーフェス(WhatsApp/WebChat/Signal/iMessage/Google Chat/MS 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で登録したコマンドをクリアします。falseは、起動時に Discord/Telegram で以前に登録されたコマンドをクリアします。Slack のコマンドは Slack アプリ側で管理され、自動では削除されません。falseは、起動時に Discord/Telegram で以前に登録されたコマンドをクリアします。Slack のコマンドは Slack アプリ側で管理され、自動では削除されません。
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.debug(デフォルト:false)は、/debugを有効にします(ランタイムのみの上書き)。commands.allowFrom(任意)は、コマンド認可のためのプロバイダーごとの allowlist を設定します。 設定されている場合、 それがコマンドおよびディレクティブの唯一の認可ソースとなり(チャネルの allowlist/ペアリングやcommands.useAccessGroupsは無視されます)。 グローバルデフォルトには"*"を使用します。プロバイダー固有のキーがそれを上書きします。commands.useAccessGroups(デフォルト:true)は、コマンドに対して許可リスト/ポリシーを強制します。
コマンド一覧
テキスト + ネイティブ(有効時):/help/commands/skill <name> [input](名前で skill を実行)/status(現在のステータスを表示。利用可能な場合、現在のモデルプロバイダーの使用量/クォータを含む)/allowlist(許可リストエントリの一覧/追加/削除)/approve <id> allow-once|allow-always|deny(実行承認プロンプトを解決)/context [list|detail|json](「context」を説明。detailはファイル別+ツール別+skill 別+システムプロンプトサイズを表示)/whoami(送信者 ID を表示。エイリアス:/id)/subagents list|stop|log|info|send(現在のセッションにおけるサブエージェント実行の検査/停止/ログ表示/メッセージ送信)/kill <id|#|all>(このセッションで実行中の 1 つまたはすべてのサブエージェントを即時中止; 確認メッセージなし)/steer <id|#> <message>(実行中のサブエージェントを即時に操作: 可能であれば実行中に反映、そうでなければ現在の作業を中止して steer メッセージで再開)/tell <id|#> <message>(/steerのエイリアス)/config show|get|set|unset(設定をディスクに永続化。オーナー専用。commands.config: trueが必要)/debug show|set|unset|reset(ランタイム上書き。オーナー専用。commands.debug: trueが必要)/usage off|tokens|full|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(オーナー専用)/resetまたは/new [model](任意のモデルヒント。残りはそのまま渡されます)/think <off|minimal|low|medium|high|xhigh>(モデル/プロバイダーによる動的選択。エイリアス:/thinking、/t)/verbose on|full|off(エイリアス:/v)/reasoning on|off|stream(エイリアス:/reason。オンの場合、Reasoning:をプレフィックスとする別メッセージを送信。stream=Telegram の下書きのみ)/elevated on|off|ask|full(エイリアス:/elev。fullは実行承認をスキップ)/exec host=<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の許可リストが必要)
/compact [instructions](/concepts/compaction を参照)! <command>(ホスト専用。一度に 1 つ。長時間ジョブには!poll+!stopを使用)!poll(出力/ステータスを確認。任意のsessionIdを受け付けます。/bash pollも動作)!stop(実行中の bash ジョブを停止。任意のsessionIdを受け付けます。/bash stopも動作)
- コマンドは、コマンドと引数の間に任意で
:を受け付けます(例:/think: high、/send: on、/help:)。 /new <model>は、モデルエイリアス、provider/model、またはプロバイダー名(あいまい一致)を受け付けます。一致しない場合、テキストはメッセージ本文として扱われます。- プロバイダー使用量の完全な内訳を確認するには
openclaw status --usageを使用してください。 /allowlist add|removeにはcommands.config=trueが必要で、チャンネルのconfigWritesを尊重します。/usageはレスポンスごとの使用量フッターを制御します。/usage costは OpenClaw セッションログからローカルコスト要約を出力します。/restartはデフォルトで無効です。有効にするにはcommands.restart: trueを設定してください。/verboseはデバッグや可視性向上を目的としています。通常利用では オフ にしてください。/reasoning(および/verbose)はグループ環境では危険です。意図しない内部推論やツール出力を公開する可能性があります。特にグループチャットではオフのままにすることを推奨します。 それらを離れることを好みます, 特にグループチャットで. それらを離れることを好みます, 特にグループチャットで.- 高速パス: 許可リストに含まれる送信者からのコマンドのみのメッセージは、即時に処理されます(キュー+モデルをバイパス)。
- グループメンションのゲーティング: 許可リストに含まれる送信者からのコマンドのみのメッセージは、メンション要件をバイパスします。
- インラインショートカット(許可リストの送信者のみ): 一部のコマンドは通常メッセージ内に埋め込んでも動作し、モデルが残りのテキストを見る前に取り除かれます。
- 例:
hey /statusはステータス返信をトリガーし、残りのテキストは通常フローで処理されます。
- 例:
- 現在対応:
/help、/commands、/status、/whoami(/id)。 - 未許可のコマンドのみのメッセージは黙って無視され、インラインの
/...トークンはプレーンテキストとして扱われます。 - Skill コマンド:
user-invocableの skill はスラッシュコマンドとして公開されます。名前はa-z0-9_(最大 32 文字)に正規化され、衝突した場合は数値サフィックスが付きます(例:_2)。 名前はa-z0-9_(最大 32 文字)にサニタイズされます。衝突は数字のサフィックスを取得します(例えば_2)。/skill <name> [input]は名前で skill を実行します(ネイティブコマンドの制限により skill ごとのコマンドを作成できない場合に有用)。- デフォルトでは、skill コマンドは通常のリクエストとしてモデルに転送されます。
- Skill は、コマンドをツールに直接ルーティングするための
command-dispatch: toolを任意で宣言できます(決定論的、モデル不使用)。 - 例:
/prose(OpenProse プラグイン)— OpenProse を参照。
- ネイティブコマンドの引数: Discord は動的オプションに対してオートコンプリートを使用します(必須引数を省略した場合はボタンメニュー)。Telegram と Slack では、選択肢をサポートするコマンドで引数を省略するとボタンメニューが表示されます。 コマンドが選択肢をサポートし、argを省略すると、TelegramとSlackにボタンメニューが表示されます。 コマンドが選択肢をサポートし、argを省略すると、TelegramとSlackにボタンメニューが表示されます。
使用サーフェス(どこに何が表示されるか)
- プロバイダー使用量/クォータ(例:「Claude 残り 80%」)は、使用量追跡が有効な場合、現在のモデルプロバイダーについて
/statusに表示されます。 - レスポンスごとのトークン/コストは
/usage off|tokens|fullによって制御されます(通常の返信に付加)。 /model statusは、使用量ではなく モデル/認証/エンドポイント に関するものです。
モデル選択(/model)
/model は directive として実装されています。
例:
/modelと/model listは、コンパクトな番号付きピッカー(モデルファミリー+利用可能なプロバイダー)を表示します。/model <#>は、そのピッカーから選択します(可能な場合は現在のプロバイダーを優先)。/model statusは、設定されたプロバイダーエンドポイント(baseUrl)や API モード(api)を含む詳細表示を行います。
デバッグ用上書き
/debug を使用すると、ランタイムのみ の設定上書きを行えます(メモリのみ、ディスクには書き込みません)。オーナー専用です。デフォルトでは無効で、commands.debug: true により有効化します。 所有者のみ デフォルトでは無効です。commands.debug: true で有効にします。 所有者のみ デフォルトでは無効です。commands.debug: true で有効にします。
例:
- 上書きは新しい設定読み取りに即時反映されますが、
openclaw.jsonには 書き込まれません。 - すべての上書きをクリアしてディスク上の設定に戻すには
/debug resetを使用してください。
設定更新
/config は、ディスク上の設定(openclaw.json)に書き込みます。オーナー専用です。デフォルトでは無効で、commands.config: true により有効化します。 所有者のみ デフォルトでは無効です。commands.config: true で有効にします。 所有者のみ デフォルトでは無効です。commands.config: true で有効にします。
例:
- 書き込み前に設定が検証されます。無効な変更は拒否されます。
/configによる更新は再起動後も保持されます。
サーフェスに関する注記
- テキストコマンド は通常のチャットセッションで実行されます(ダイレクトメッセージは
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 ボタンとして提供されます。commands.nativeを有効にする場合、組み込みコマンドごとにスラッシュコマンドを1つ作成する必要があります (/helpと同じ名前)。 Slackのコマンド引数メニューは、一時的なBlock Kitボタンとして提供されます。commands.nativeを有効にする場合、組み込みコマンドごとにスラッシュコマンドを1つ作成する必要があります (/helpと同じ名前)。 Slackのコマンド引数メニューは、一時的なBlock Kitボタンとして提供されます。