Claude Codeの操作効率を上げるコマンド・キーバインドを整理する|/compact・/goal・/loop・Remote Controlの仕様
Claude Codeを毎日使っていると、/compactや/clearのような基本コマンド以外にも、地味に効くショートカットやスラッシュコマンドが増えてきています。
バージョンアップのたびに挙動が微妙に変わっている部分もあるため、実務で使う前に公式ドキュメントで正確な仕様を確認しました。
特にEsc二回押しの巻き戻しや/btwのツールアクセス範囲は、思っていた挙動と違う部分があったので整理しておきます。
/compactで要約時に優先情報を指定する
/compactは引数なしでも会話を要約してコンテキストを解放しますが、/compact [instructions]の形で要約の観点を指定できます。
アーキテクチャ上の決定事項やテストコマンドなど、消えてほしくない情報がある場合はこの引数で明示するのが確実です。
毎回同じ指示を書くのが面倒な場合は、CLAUDE.mdに「compact時は変更ファイル一覧とテストコマンドを必ず残す」のような常設指示を書いておく方法もドキュメントに載っています。
Esc二回はundoではなくrewindメニューを開く操作
Esc二回押しは単純な「直前の状態に戻す」操作ではありませんでした。 プロンプト入力欄にテキストがある状態でEscを二回押すと、入力をクリアして履歴に退避するだけの挙動になります。 入力欄が空の状態でEscを二回押した場合にだけrewindメニューが開き、そこで「会話だけ戻して現在のコードは維持する」「コードだけ戻して会話は維持する」「要約する」を個別に選べる仕組みです。 つまり「コードと会話を両方まとめて巻き戻す」という単一動作ではなく、対象を分けて復元できる点が実際の挙動でした。 このチェックポイントは自動生成され30日で自動的にクリーンアップされるため、長期保存用の手段としては使えません。 また、bashコマンドで直接削除・変更したファイルや、Claude Code外で手動編集した内容は追跡対象外です。
Ctrl+S:入力中のプロンプトを退避する
長い文章を入力している途中で、他のコマンドを先に打ちたくなることがあります。そんなときはCtrl+Sを押すと、入力中のテキストが一時的に退避され、プロンプトが空になります。
作業が終わってもう一度Ctrl+Sを押すと、退避していたテキストが復元されます。カーソル位置や貼り付けた内容もそのまま戻るので、作業を中断した地点からすぐに再開できます。
Ctrl+R:コマンド履歴を検索する
Ctrl+Rは、過去に入力したプロンプトを検索するショートカットです。
bashのreverse-i-searchと近い感覚で使えます。
「Ctrl+Rを押す」→「検索文字列を入力する」→「Ctrl+R最新のものから順に辿っていく」 です
ただし、レンダリングモードによって挙動が異なる点に注意が必要です。
- クラシックレンダラー:検索結果がインライン表示され、全プロジェクトを横断して検索されます
- フルスクリーンレンダリング:専用の検索ダイアログが開きます。ここでCtrl+Sを押すと、検索範囲を「このセッションのみ」「このプロジェクトのみ」「全プロジェクト」の3段階で切り替えられます
このダイアログ内でのCtrl+Sの挙動(検索範囲の切り替え)は見落としがちなので、覚えておくと便利です。
Ctrl+Oでトランスクリプトビューアーを開く
Ctrl+Oはツール使用状況の詳細と実行内容を表示するトランスクリプトビューアーのトグルです。
各アシスタントメッセージにタイムスタンプと使用モデルが付き、MCP呼び出しのように普段はCalled slack 3 timesの一行に折りたたまれている内容も展開されます。
フルスクリーンレンダリングでは{ }でユーザープロンプト単位にジャンプでき、[でネイティブのスクロールバックに書き出してターミナル側の検索機能を使う、vで$VISUAL/$EDITORに書き出して開くといった操作も用意されていました。
/btwは会話履歴を汚さず質問できるが、ツールは使えない
/btwは会話履歴に追加せずに横から質問できるコマンドです。
ただし回答はあくまで「これまでの会話に含まれる内容」からのみ生成され、ファイル読み込みやコマンド実行などのツールアクセスは一切できません。
直近20往復分の/btwのやり取りが次の/btwにも引き継がれる仕組みなので、複数回質問を重ねても文脈は保持されます。
回答表示中にfキーを押すと、その質問と回答を含む会話のコピーをバックグラウンドサブエージェントとしてフォークでき、そこから先はツール込みで作業を継続できます。
「会話内で完結する確認」は/btw、「新しく何かを調べさせる」はサブエージェント、と役割を分けて使うのが適切だと分かりました。
/goalで達成条件までタスクを継続させる
/goal [condition|clear]は、指定した条件が満たされるまでターン間で作業を継続させるコマンドです。
引数なしで実行すると現在有効なゴール、または直近に達成したゴールが表示されます。
clear、stop、off、reset、none、cancelのいずれかを渡すと、有効なゴールを途中で解除できます。
/loopで定期実行・自己ペースループを回す
/loop [interval] [prompt]はセッションを開いたままプロンプトを繰り返し実行するビルトインスキルです。
intervalを省略すると、間隔をClaude自身が判断する自己ペースモードになります。
promptも省略した場合は、ビルトインのメンテナンス用プロンプトか、用意していればloop.mdの内容が実行される仕様でした。
エイリアスとして/proactiveも用意されています。
claude --remote-controlとclaude remote-controlの違い
スマホなど別デバイスからの操作には三つの入口があり、それぞれ挙動が違います。
claude remote-controlはサーバーモードで、ターミナルは接続待ち専用になり、セッションURLとQRコードを表示します。
claude --remote-control(エイリアス--rc)は通常のインタラクティブセッションを起動しつつリモート接続も有効にする方式で、こちらはローカルのターミナルからも並行して入力できます。
すでに開いているセッションから移行したい場合は/remote-control(エイリアス/rc)で、会話履歴を引き継いだままリモート接続に切り替わります。
ログイン状態によるエラーの出方が地味に違っていて、claude remote-controlは資格情報が不適格だとその場でエラー終了しますが、claude --remote-controlは一旦インタラクティブセッションが起動したあとにRemote Control側の接続失敗通知が出る、という順序になっていました。
Bedrock・Google Cloud・Microsoft FoundryなどのAPIエンドポイントや、ANTHROPIC_BASE_URLをapi.anthropic.com以外に向けている環境では利用できない制約も確認しておく必要があります。
/teleportと--cloudはクラウド実行とローカルを行き来する別方向の機能
claude --cloud "タスク内容"でクラウド上にタスクを投げられます。
戻す側はclaude --teleport(対話的なピッカー、またはclaude --teleport <session-id>でセッション指定)や、セッション内の/teleport(エイリアス/tp)から行います。
ここで誤解しやすいのは、この引き継ぎが一方向だという点です。
--teleportでクラウドセッションをローカルに引き込むことはできますが、逆にローカルの既存セッションをそのままウェブ側に push する手段はCLIには用意されていません(デスクトップアプリの「Continue in」メニューからは可能です)。
Remote Controlが「同じローカルセッションを別デバイスからも操作する」仕組みなのに対し、--teleport/--cloudは「実行場所そのものを切り替える」仕組みという整理をしておくと混同しません。
/clearと/compactの使い分け
/clear(エイリアス/reset、/new)は空のコンテキストで新しい会話を開始するコマンドで、プロジェクトメモリ(CLAUDE.mdなど)はそのまま引き継がれます。
一方/compactは同じ会話を続けながらコンテキストだけを圧縮する用途で、完全にリセットしたいときと文脈を保ちたいときで使い分ける必要があります。
/clear実行前の会話は破棄されるわけではなく、/resumeで戻れるほか、同一プロセス内であればrewindメニューの「前セッション」エントリからも復元できる仕様でした。
# クラウドにタスクを投げる
claude --cloud "このリポジトリのlintエラーを直して"
# ローカルに戻す(対話的ピッカー)
claude --teleport
# サーバーモードでRemote Controlを起動する
claude remote-control --spawn worktree