---
license: "MIT. Translation of the Hermes Agent documentation, Copyright (c) 2025 Nous Research. See https://wiki.winsmux.dev/hermes/licenses.txt"
title: "ゲートウェイのコマンド対応表"
description: "共有ゲートウェイ上で、ローカルの各クライアントがスラッシュコマンドをどう扱うか"
upstream_path: developer-guide/gateway-command-parity.md
upstream_blob: 6176698928426ad0b9488d4d90d9b016e1746a53
sources:
  - https://hermes-agent.nousresearch.com/docs/developer-guide/gateway-command-parity
---

<!-- GENERATED by scripts/gen_gateway_command_parity.py — DO NOT EDIT. -->
<!-- tests/hermes_cli/test_gateway_command_parity.py fails when this table is stale. -->

# ゲートウェイのコマンド対応表（ローカルセッション） {#gateway-command-parity-local-sessions}

ローカルのクライアント（従来型 CLI、Ink TUI、Desktop、ACP）はどれも、そのセッションを持つ 1 つのゲートウェイに接続します。
スラッシュコマンドは、クライアント内で正規の操作
（`session.mutate`、`session.create`、`prompt.receipt` など）に対して実行されるか、`slash.exec` としてオーナーに送られます。
後者の場合、`gateway/session_commands.py` は下の表で確認済みの読み取り系コマンドだけを実行し、
それ以外は拒否します（`unsupported_command`）。従来型 CLI（`hermes chat`）は、main の `HermesCLI` に
ゲートウェイ側のエージェントとセッションストアを組み合わせたものです。その列には、プロセス内で実行される main のハンドラー名を載せています
（ターン、ツール、セッションへの書き込みは、`hermes_cli/gateway_agent.py` /
`gateway_session_store.py` を通じてゲートウェイに送られます）。`--stream-json` / セーフモード用の転送クライアントは、
より狭い独自の経路を持っています（`hermes_cli/gateway_chat_commands.py`）。

**ゲートウェイ（`slash.exec`）**: `read` = ローカルセッションで本物のハンドラーが動きます（
`tests/gateway/test_session_read_commands.py` で確認済み）。`control` = 受付で区切った書き込みです（`/approve`
`/deny` は、このセッションで待っている承認を解決します。`tests/gateway/test_session_approval_commands.py`）。
`refused` = 拒否されます。
**備考**: `per-session setting (gateway handler)` = メッセージング用のハンドラーが動き、設定を
このローカルセッション（次のターンと `config.get`）に適用します。config.yaml への保存は、
ハンドラー自体が保存する場合だけです。`client-local (cli_only)` のコマンドは、クライアントのターミナルや UI の機能です。

登録済みコマンドは 103 個で、内訳は control 29、read 18、refused 56 です。

| コマンド | ゲートウェイ（`slash.exec`） | 従来型 CLI | Ink | Desktop | ACP | 備考 |
|---|---|---|---|---|---|---|
| `/agents` (/tasks) | refused | HermesCLI._handle_agents_command | delegation.pause | slash.exec: refused | slash.exec: refused | ゲートウェイ全体が対象です。すべてのチャットで動いているエージェントと、プロセスの非同期ジョブを一覧表示します |
| `/approvals` | control | HermesCLI._handle_approvals_command | slash.exec | slash.exec | slash.exec | per-session setting (gateway handler) |
| `/approve` | control | messaging-only: unknown command | slash.exec | slash.exec | slash.exec | messaging-only |
| `/autoprune` | control | HermesCLI._handle_autoprune_command | slash.exec | slash.exec | slash.exec |  |
| `/battery` | refused | HermesCLI._handle_battery_command | sidecar: system.battery (preference not saved) | slash.exec: refused | slash.exec: refused | client-local (cli_only) |
| `/bg` | refused | HermesCLI._handle_background_command | prompt.background | action: background | slash.exec: refused |  |
| `/blueprint` (/bp) | control | HermesCLI._handle_blueprint_command | slash.exec | slash.exec | slash.exec |  |
| `/branch` (/fork) | refused | HermesCLI._handle_branch_command | canonical route | action: branch | ACP fork_session |  |
| `/browser` | refused | HermesCLI._handle_browser_command | sidecar: browser.manage | action: browser | slash.exec: refused | client-local (cli_only) |
| `/btw` | refused | HermesCLI._handle_btw_command | prompt.btw | action: btw | slash.exec: refused |  |
| `/bundles` | read | HermesCLI._handle_bundles_command | slash.exec | slash.exec | slash.exec |  |
| `/busy` | control | HermesCLI._handle_busy_command | canonical route | unavailable: terminal | slash.exec | per-session setting (gateway handler) |
| `/clear` | refused | HermesCLI._cmd_clear | local | action: new | session.mutate reset | client-local (cli_only) |
| `/codex-runtime` (/codex_runtime) | control | HermesCLI._handle_codex_runtime | slash.exec | slash.exec | slash.exec | per-session setting (gateway handler) |
| `/commands` | read | messaging-only: unknown command | slash.exec | action: help | slash.exec | messaging-only |
| `/compress` (/compact) | refused | HermesCLI._manual_compress | canonical route | action: compress | session.mutate compress |  |
| `/config` | refused | HermesCLI.show_config | slash.exec: refused | unavailable: terminal | slash.exec: refused | client-local (cli_only) |
| `/context` (/ctx) | read | HermesCLI._show_context_breakdown | slash.exec | slash.exec | slash.exec | TUI セッションでは、main の /context をカテゴリ表付きでその場で表示します |
| `/copy` | refused | HermesCLI._handle_copy_command | local | unavailable: terminal | slash.exec: refused | client-local (cli_only) |
| `/cron` | refused | HermesCLI._handle_cron_command | slash.exec | unavailable: terminal | slash.exec: refused | TUI セッションでは、値なしの `/cron` と `/cron list [--all]` がプロファイルのジョブを読み取ります。client-local (cli_only) |
| `/curator` | control | HermesCLI._handle_curator_command | slash.exec | unavailable: advanced | slash.exec |  |
| `/debug` | control | HermesCLI._handle_debug_command | slash.exec | slash.exec | slash.exec | ログを公開のペーストサービスにアップロードします |
| `/deny` | control | messaging-only: unknown command | slash.exec | slash.exec | slash.exec | messaging-only |
| `/diff` | read | HermesCLI._handle_diff_command | slash.exec | slash.exec | slash.exec |  |
| `/egress` | control | HermesCLI._cmd_egress | slash.exec | slash.exec | slash.exec |  |
| `/export` | refused | HermesCLI._handle_export_command | slash.exec: refused | slash.exec: refused | slash.exec: refused | client-local (cli_only) |
| `/fast` | control | HermesCLI._handle_fast_command | config.get, config.set | unavailable: advanced | slash.exec | per-session setting (gateway handler) |
| `/focus` | refused | HermesCLI._handle_focus_command | local (preference not saved) | slash.exec: refused | slash.exec: refused | client-local (cli_only) |
| `/footer` | control | HermesCLI._handle_footer_command | slash.exec | unavailable: terminal | slash.exec | per-session setting (gateway handler) |
| `/goal` | control | HermesCLI._handle_goal_command | slash.exec | slash.exec | slash.exec |  |
| `/handoff` | refused | HermesCLI._handle_handoff_command | slash.exec: refused | action: handoff | slash.exec: refused | client-local (cli_only) |
| `/hatch` (/generate-pet) | refused | HermesCLI._handle_hatch_command | slash.exec: refused | action: hatch | slash.exec: refused | client-local (cli_only) |
| `/heartbeat` (/hb) | control | HermesCLI._handle_heartbeat_command | slash.exec | slash.exec | slash.exec |  |
| `/help` | read | HermesCLI._cmd_help | local | action: help | local |  |
| `/history` | refused | HermesCLI.show_history | local | unavailable: terminal | slash.exec: refused | client-local (cli_only) |
| `/image` | refused | HermesCLI._handle_image_command | local | unavailable: terminal | slash.exec: refused | client-local (cli_only) |
| `/import` | refused | HermesCLI._handle_import_command | slash.exec: refused | slash.exec: refused | slash.exec: refused | client-local (cli_only) |
| `/indicator` | refused | HermesCLI._handle_indicator_command | config.get, config.set | unavailable: terminal | slash.exec: refused | client-local (cli_only) |
| `/init` | control | HermesCLI._handle_init_command | slash.exec | slash.exec | slash.exec |  |
| `/insights` | read | HermesCLI._show_insights | slash.exec | unavailable: advanced | slash.exec |  |
| `/journey` (/learning, /memory-graph) | refused | HermesCLI._handle_journey_command | local | action: journey | slash.exec: refused | client-local (cli_only) |
| `/kanban` | read (list/show/stats/assignees/context/runs/log/diagnostics) | HermesCLI._handle_kanban_command | slash.exec | unavailable: advanced | slash.exec |  |
| `/learn` | control | HermesCLI._handle_learn_command | slash.exec | slash.exec | slash.exec |  |
| `/login` | control | HermesCLI._handle_login_command | slash.exec | unavailable: settings | slash.exec |  |
| `/loop` (/proactive) | control | HermesCLI._handle_loop_command | slash.exec | slash.exec | slash.exec |  |
| `/memory` | read (bare / `pending`) | HermesCLI._handle_memory_command | slash.exec | slash.exec | slash.exec |  |
| `/moa` | control | HermesCLI._cmd_moa | slash.exec | slash.exec | slash.exec |  |
| `/model` | refused | HermesCLI._handle_model_switch | canonical route | picker: model | session.mutate model |  |
| `/new` (/reset) | refused | HermesCLI._cmd_new | local | action: new | session.mutate reset |  |
| `/palette` | refused | HermesCLI._open_command_palette | slash.exec: refused | slash.exec: refused | slash.exec: refused | client-local (cli_only) |
| `/paste` | refused | HermesCLI._handle_paste_command | local | unavailable: terminal | slash.exec: refused | client-local (cli_only) |
| `/pause` | refused | messaging-only: unknown command | slash.exec: refused | slash.exec: refused | slash.exec: refused | messaging-only |
| `/personality` | control | HermesCLI._handle_personality_command | canonical route | slash.exec | slash.exec | per-session setting (gateway handler) |
| `/pet` | refused | HermesCLI._handle_pet_command | slash.exec | action: pet | slash.exec: refused | client-local (cli_only) |
| `/plan` | control | HermesCLI._handle_plan_command | slash.exec | slash.exec | slash.exec |  |
| `/platform` | refused | messaging-only: unknown command | slash.exec: refused | slash.exec: refused | slash.exec: refused | メッセージング用アダプターを扱います。`pause`/`resume` はアダプターの状態を変えます |
| `/platforms` (/gateway) | read | HermesCLI._show_gateway_status | slash.exec | unavailable: terminal | slash.exec | client-local (cli_only) |
| `/plugins` | refused | HermesCLI._cmd_plugins | slash.exec | unavailable: terminal | slash.exec: refused | client-local (cli_only) |
| `/profile` | read | HermesCLI._handle_profile_command | slash.exec | action: profile | slash.exec |  |
| `/prompt` (/compose) | refused | HermesCLI._handle_prompt_compose_command | local | slash.exec: refused | slash.exec: refused | client-local (cli_only) |
| `/queue` (/q) | refused | HermesCLI._cmd_queue | local | action: queue | prompt.submit |  |
| `/quit` (/exit) | refused | HermesCLI._cmd_exit | local | unavailable: terminal | slash.exec: refused | client-local (cli_only) |
| `/reasoning` | control | HermesCLI._handle_reasoning_command | canonical route | action: reasoning | slash.exec | per-session setting (gateway handler) |
| `/redraw` | refused | HermesCLI._cmd_redraw | local | unavailable: terminal | slash.exec: refused | client-local (cli_only) |
| `/refine` | control | HermesCLI._handle_refine_command | slash.exec | slash.exec | slash.exec |  |
| `/reload` | refused | HermesCLI._cmd_reload | canonical route | unavailable: terminal | slash.exec: refused | client-local (cli_only) |
| `/reload-mcp` (/reload_mcp) | refused | HermesCLI._confirm_and_reload_mcp | refused: not available yet | unavailable: advanced | slash.exec: refused |  |
| `/reload-skills` (/reload_skills) | refused | HermesCLI._cmd_reload_skills | commands.catalog, skills.reload | unavailable: advanced | slash.exec: refused |  |
| `/restart` | refused | messaging-only: unknown command | slash.exec: refused | unavailable: terminal | slash.exec: refused | messaging-only |
| `/resume` | refused | HermesCLI._handle_resume_command | local | picker: session | slash.exec: refused | メッセージングのチャットのセッションを切り替えます。ローカルのクライアントは ID で再開します |
| `/retry` | refused | HermesCLI._cmd_retry | canonical route | action: retry | session.mutate rewind + resubmit |  |
| `/review` | control | HermesCLI._handle_review_command | slash.exec | slash.exec | slash.exec |  |
| `/rollback` | refused | HermesCLI._handle_rollback_command | rollback.diff, rollback.list, rollback.restore | slash.exec: refused | slash.exec: refused | ファイルシステムのチェックポイントを復元します |
| `/save` | refused | HermesCLI.save_conversation | session.save | rpc session.save | slash.exec: refused | ゲートウェイのホスト上にエクスポートファイルを書き出します |
| `/sessions` | refused | HermesCLI._handle_sessions_command | local | picker: session | slash.exec: refused | メッセージングの発信元ごとに絞った一覧です（`/sessions all` にはメッセージングの管理者が必要です） |
| `/sethome` (/set-home) | refused | messaging-only: unknown command | slash.exec: refused | unavailable: terminal | slash.exec: refused | messaging-only |
| `/skills` | read (bare/`pending`/`diff`; `approve`/`reject`/`approval` control; hub refused) | HermesCLI._cmd_skills | slash.exec; sidecar: skills.manage | slash.exec | slash.exec | client-local (cli_only) |
| `/skin` | refused | HermesCLI._handle_skin_command | config.get, config.set | action: skin | slash.exec: refused | client-local (cli_only) |
| `/snapshot` (/snap) | refused | HermesCLI._handle_snapshot_command | slash.exec: refused | unavailable: terminal | slash.exec: refused | client-local (cli_only) |
| `/start` | refused | messaging-only: unknown command | slash.exec: refused | slash.exec: refused | slash.exec: refused | messaging-only |
| `/status` | read | HermesCLI._show_session_status | canonical route | slash.exec (rpc fallback) | slash.exec | TUI セッションでは main の `Hermes TUI Status` を表示します |
| `/statusbar` (/sb) | refused | HermesCLI._cmd_statusbar | local (preference not saved) | unavailable: terminal | slash.exec: refused | client-local (cli_only) |
| `/steer` (/s) | refused | HermesCLI._cmd_steer | canonical route | action: steer | session.steer |  |
| `/stop` | refused | HermesCLI._handle_stop_command | canonical route | action: stop | slash.exec: refused |  |
| `/subgoal` | control | HermesCLI._handle_subgoal_command | slash.exec | slash.exec | slash.exec |  |
| `/subscription` (/upgrade) | refused | HermesCLI._show_subscription | sidecar: subscription.state | slash.exec: refused | slash.exec: refused | client-local (cli_only) |
| `/suggestions` (/suggest) | read (bare only) | HermesCLI._handle_suggestions_command | slash.exec | slash.exec | slash.exec |  |
| `/timestamps` (/ts) | refused | HermesCLI._handle_timestamps_command | slash.exec: refused | slash.exec: refused | slash.exec: refused | client-local (cli_only) |
| `/title` | control | HermesCLI._cmd_title | canonical route | action: title | session.mutate rename (bare: slash.exec) |  |
| `/tools` | refused | HermesCLI._handle_tools_command | refused: not available yet | slash.exec: refused | session.info | client-local (cli_only) |
| `/toolsets` | read | HermesCLI.show_toolsets | slash.exec | unavailable: terminal | slash.exec | client-local (cli_only) |
| `/topic` | refused | messaging-only: unknown command | slash.exec: refused | slash.exec: refused | slash.exec: refused | messaging-only |
| `/topup` | read | HermesCLI._show_billing | sidecar: billing.state | slash.exec | slash.exec |  |
| `/undo` | refused | HermesCLI._cmd_undo | canonical route | action: undo | session.mutate rewind |  |
| `/update` | refused | HermesCLI._cmd_update | local | unavailable: terminal | slash.exec: refused |  |
| `/usage` | read (bare only (`reset` refused)) | HermesCLI._handle_usage_command | canonical route | slash.exec | slash.exec |  |
| `/verbose` | control | HermesCLI._toggle_verbose | config.set | unavailable: terminal | slash.exec | per-session setting (gateway handler) |
| `/version` (/v) | read | HermesCLI._cmd_version | slash.exec | slash.exec | slash.exec |  |
| `/voice` | control | HermesCLI._handle_voice_command | canonical route | unavailable: composer-voice | slash.exec | per-session setting (gateway handler) |
| `/wake` | refused | HermesCLI._handle_wake_command | local | action: wake | slash.exec: refused | client-local (cli_only) |
| `/whoami` | read | HermesCLI._handle_whoami_command | slash.exec | slash.exec | slash.exec |  |
| `/worktree` | refused | HermesCLI._handle_worktree_command | slash.exec: refused | slash.exec: refused | slash.exec: refused | client-local (cli_only) |
| `/yolo` | control | HermesCLI._toggle_yolo | config.set | action: yolo | slash.exec | per-session setting (gateway handler) |
