Claude Codeでメッセージをキューに入れる方法 — Enterで積む、Escで割り込む
作業中にEnterで追加指示を積む方法と、Esc・Ctrl+Enterとの使い分け、Upキーでの取り戻し方を、届くタイミングとバージョン条件つきで解説します。
作業中に追加指示を思いついたらEnterで積む
Claude Codeが作業している最中にメッセージを入力してEnterを押すと、ターンは中断されずメッセージがキューに積まれます。積まれたメッセージは会話の中に並び、送られるまで残ります。!から始まるシェルコマンドと、ほとんどのコマンドも同じ方法で積めます。例外は/statusのように、送った瞬間に実行されるコマンドです。
長いリファクタリングを任せている途中で「ついでにテストも直しておいて」と気づいたとき、止めずに入力してEnterを押すだけで済みます。特別な設定は要りません。
> 認証周りのリファクタを進めて
# Claudeがファイルの編集を開始
> (作業中に)テストコードも一緒に直しておいて
# → キューに積まれ、会話の中に灰色で表示される画面での見分け方があります。送信したメッセージも積んだメッセージも、Claudeが応答を始めるまでは灰色で表示されます。灰色のままなら、Claudeがまだ手を付けていないメッセージです。IDE(VS Codeなど)やdiffパネルで選択範囲を付けて積んだ場合、その選択範囲はEnterを押した時点のものが保たれ、あとから選択を変えても影響しません。
積んだ内容が届くタイミングは種類で違う
積んだものが届くタイミングは、メッセージかコマンドかで分かれます。さらに、キューを経由せず即実行されるコマンドもあります。
キューに入れたものの届き方
メッセージ
Claudeがツール呼び出しを実行している最中に積むと、そのツール呼び出しが終わり次第、同じターンの中でClaudeに渡されます。ターンが終わった時点で残っていたものは、キーを押さなくても、入力した順に送られます。
コマンドとシェルコマンド
ターンが終わるまで保留され、終わってから1つずつ、積んだ順に実行されます。
/planや! npm testが該当します。即実行されるコマンド
/status・/tasks・/usageは、作業中でもキューを経由せずすぐ実行されます。/model・/effort・/fastも即実行の側です。フルスクリーンレンダリングを使っているときは、/theme・/helpなどのダイアログ系も即実行されます。
即実行されるコマンドの中には、設定を変えるものがあります。効き始める時期は次のようにコマンドごとに違います。
| コマンド | 作業中に実行したときの効き方 |
|---|---|
/model | 作業中に実行したときの効き方キャッシュの警告が出る場合は確認したうえで、そのターンの次のリクエストから新しいモデルが使われる |
/effort | 作業中に実行したときの効き方/modelと同様に、そのターンの次のリクエストから新しい水準が使われる |
/fast | 作業中に実行したときの効き方実行中のターンは開始時の設定のまま終わり、切り替えは次のターンから。現在のモデルが対応していないときはモデルも切り替わり、新しいモデルは同じターンの次のリクエストから使われる |
/permissions | 作業中に実行したときの効き方ダイアログがすぐ開き、変更は同じターンの次のツール呼び出しから反映される |
/add-dir | 作業中に実行したときの効き方ディレクトリの確認がすぐ求められ、承認すると同じターンの次のツール呼び出しからアクセスできる |
上の表のうち/permissionsと/add-dirはv2.1.234以降の挙動で、それより前はターン終了までキューされていました。/model・/effort・/fastも、v2.1.242より前は挙動が違いました。当時はAnthropicから取得するフィーチャーフラグで、ターン中に動かすかキューするかが決まっていました。サードパーティプロバイダーなどフラグを取得しないセッションでは、常にキューされていました。フルスクリーンレンダリング時のダイアログ系コマンドも同じくv2.1.234が境目です。/bug・/feedbackのダイアログは、フルスクリーンかどうかに関係なくv2.1.232以降すぐ開きます。自分の環境の挙動が公式の説明と違うときは、まずバージョンを疑う価値があります。
ビルドやテストを走らせながら指示を積みたい場合は、Claude Codeバックグラウンド実行の使い方も参考になります。
Enter・Esc・Ctrl+Enterの使い分け
作業中に何かを伝えたくなったとき、キーは3つあり、それぞれターンへの作用が違います。
積む・止める・待たずに送る
Enter
ターンは止まりません。次の区切りで届くのを待つ、いちばん穏やかな方法です。
Esc
進行中のターンを中断します。それまでの作業内容は残り、積んであったものはすぐ送られます。入力欄の書きかけは送信されません。
Ctrl+Enter
積んだメッセージ(と書きかけの文)を今すぐ送ります。ターンを止めるかどうかは、Claudeが何をしているかで変わります。
キューを空にしたいときは、Escではなく次節のUpを使います。
Ctrl+Enter(v2.1.275以降)の挙動は、状況で二つに分かれます。積んだものの先頭に!のシェルコマンドがある場合は、必ずターンが中断されます。それ以外は次のとおりです。
- シェルコマンドやサブエージェントなど、バックグラウンドに移せる作業の最中: その作業はバックグラウンドへ移って動き続け、Claudeは同じターンの中でメッセージを読みます
- 応答の文章を書いている最中、またはバックグラウンドに移せない作業の最中: ターンが中断され、メッセージが次に送られます。v2.1.281より前は、どちらの場合も中断していました
シェルモードでは、このキーはコマンドを積むだけです。ターミナルによってはCtrl+Enterが通常のEnterとして届き、書きかけがキューに積まれるだけになります。その場合は、どのターミナルでも動くCtrl+X Ctrl+Sを使います。この2つのキーは、どちらもchat:sendNowというアクションに割り当てられています。キーバインドを変えるときは、このアクション名を指定します。詳しい使い方はCtrl+Enterで待たずに送信する方法で扱っています。
積むことを明示するキーもあります。Ctrl+X Enter(chat:queueSubmit、v2.1.247以降)は、作業中ならターンを中断せず必ず積みます。
実務では、Claudeが見当違いのファイルを編集し始めたときにEscが役立ちます。編集が進むほど手戻りが大きくなるので、違和感に気づいた時点で止める方が安上がりです。逆に、今の作業は正しく進んでいて追加のタスクを予約したいだけなら、Enterで積んで待たせる方が集中を途切れさせません。
積んだ内容を取り戻す — 入力欄の1行目でUp
送信前に取り消したくなったら、入力欄の1行目にカーソルがある状態でUpを押します。
積んだものを取り戻して直す
- 1
Upを押す
入力欄の最初の行で
Upを押すと、キュー内のメッセージとコマンドがキューから外れ、入力欄に戻ります。 - 2
並び方を確かめる
戻ったものは1件ずつ1行になり、その時点で入力欄に書きかけていたテキストより前に置かれます。書きかけの文章は消えません。
- 3
編集して積み直すか、空にする
内容を直して
Enterを押すと、まとめて1件のエントリとして積み直せます。入力欄を空にすれば破棄です。
シェルコマンドの取り戻しには条件があります。入力欄が空で、ほかに何も積んでいないときだけ、Upは積んだシェルコマンドを取り戻し、入力欄をシェルモードに切り替えます。それ以外の状況では、!付きのままキューに残り、ターン終了後に実行されます。メッセージとシェルコマンドが混在していると、Upを押してもシェルコマンドだけが手元に残らない、と覚えておくと戸惑いません。
複数件を積むと、どう届くか
Enterを連続で押して2件、3件と積むこともできます。積んだ順に届きます。
> APIのエラーハンドリングを直して
# 作業中に2件積む
> ログ出力も整えて
> READMEも更新して
# ツール呼び出しの区切り、遅くともターン終了時に、入力した順(ログ出力 → README)で送られる1つの長いメッセージにまとめるか、思いついた順に積むかは好みです。ただしUpで取り戻すと、複数件は1行ずつ並んだ状態で戻り、Enterを押すと1件のエントリに合体して積み直されます。まとめて送りたいなら、いったんUpで戻して整えるのが近道です。順序を保ったまま個別に届けたいなら、取り戻さずそのまま積んでおきます。
つまずきやすい点
/planのように、/statusと見た目が似ているコマンドでも扱いは同じではありません。作業中に即実行されるのは、確認系(/status・/tasks・/usage)、設定系(/model・/effort・/fast)、/permissions・/add-dir・/bugなどの一部だけです。/planを含むそれ以外のコマンドはキューに積まれ、ターン終了を待ちます。急ぎで送ったつもりが実は待たされていた、という取り違えはここで起こります。
Escとキューの関係も勘違いされやすい点です。Escはキューを空にせず、積んだものを送ります。空にするのはUpと入力欄のクリアです。
手元のバージョンが古いと、この記事の説明と挙動が合わないことがあります。今のバージョンは次のコマンドで確認できます。この記事に出てくるバージョン条件は、最大でv2.1.281です。
claude --version
# 2.1.285 (Claude Code)上は筆者の環境(v2.1.285)の出力で、上記の条件はすべて満たしています。キューの見え方や届くタイミングは対話画面の中の挙動なので、claude --helpのオプション一覧には出てきません。claude --helpにはキューを切り替えるオプションもありません。
状況別の選び方
まず「今の作業の方向は正しいか」を自分に問います。正しければ積む、違えば割り込む、方向と無関係な質問なら別の手段を使う、という順です。
| 状況 | 対応 |
|---|---|
| 今の作業と両立する追加タスクを思いついた | 対応Enterで積み、区切りで渡す |
| 方針が根本的に違うと気づいた | 対応Escでターンを止め、切り替える |
| 積んだものを待たずに読ませたい | 対応Ctrl+Enter(シェルなどはバックグラウンドへ移って動き続ける) |
| ビルドやテストの結果を待ってから次を出したい | 対応!コマンドを積み、ターン終了後の実行に任せる |
| 状態を確認したいだけ | 対応/statusのような即実行のコマンドをそのまま送る |
| 作業中の内容について、履歴を汚さず質問したい | 対応/btwで本流を止めずに脇道の質問をする方法を使う |
Claude Codeの入力操作全般では、Vimキーバインドでの入力も選べます。詳しくはClaude Code Vimモードの使い方とキー操作一覧にあります。
まとめ
迷ったら「いまの作業の方向は正しいか」で決めます。正しいなら止めずに積み、違うなら止めて差し替えます。挙動が記事と合わないときは、まずclaude --versionで境目のバージョンを確かめてください。