Claude Code スクロールの不具合とワークアラウンド
Claude Code の plan mode で実装計画(plan)の承認ダイアログが表示されると、plan の部分しかスクロールできず、それより前の会話に遡れない という問題があります。
plan を承認するかどうか判断するには「そこに至るまでの調査結果や会話」を見返したいことが多いのに、肝心のその部分が見られない、というかなりストレスの溜まる挙動です。自分も頻繁に遭遇しているので、調べた内容と回避策をまとめておきます。
症状
plan mode で Claude に計画を立てさせると、最後に ExitPlanMode の承認ダイアログが表示されます。このとき、
- PageUp / PageDown やマウスホイールでスクロールしても、plan の中身だけ がスクロールする
- plan より前にある Claude の調査過程や会話履歴には遡れない
- ダイアログを操作している限り、フォーカスが plan コンテナから外れない
という状態になります。plan が長い場合は plan 自体をスクロールできるのはよいのですが、その外側に出る手段がありません。
原因
plan 承認ダイアログが「内部スクロール可能なコンテナ」として実装されており、ダイアログ表示中はスクロール系のキー入力・ホイール操作をすべてこのコンテナがキャプチャするためです。
Claude Code の TUI は、ダイアログ表示中はダイアログがキー入力を独占するモーダル設計になっています。スクロールキーも例外ではなく plan コンテナに吸われるため、外側の会話履歴には届きません。
この挙動は #66026 (Plan mode scrolling broken) として報告されています。また、ダイアログが overflow した場合のスクロール操作がドキュメントに記載されていない問題も #54162 で指摘されています。
関連 issue 一覧
| Issue | タイトル | 状態 |
|---|---|---|
| #66026 | Plan mode scrolling broken — plan がフォーカスを保持し前の会話に遡れない | Open |
| #54162 | ダイアログ overflow 時のスクロール操作がドキュメントに未記載 | Open |
回避策
Ctrl+O でトランスクリプトモードに切り替える
最も手軽な回避策です。Ctrl+O を押すと less 形式のトランスクリプトモードに切り替わり、会話全体を / で検索、n / N で前後移動しながら確認できます。ダイアログのモーダル層とは別画面なので、plan コンテナにキーを吸われません。確認が終わったらもう一度 Ctrl+O で戻れば、承認ダイアログの操作に戻れます。
Esc でダイアログを一旦抜ける
承認を保留してダイアログを閉じれば通常の会話表示に戻るので、前の部分を普通にスクロールして確認できます。plan の内容自体は失われないので、確認後に「さっきの plan で進めて」と伝えれば再度承認に進めます。
plan をファイルに書かせる
長い plan を精読したい場合はこれが確実です。plan mode で作業させる際に「plan を tmp/plan.md にも保存して」と頼んでおけば、ダイアログの表示に依存せず、別ウィンドウやエディタで plan と経緯をまとめて確認できます。
所感
plan の承認は「Claude がこれから何をするか」を人間がレビューする重要なチェックポイントなので、その判断材料である直前の会話が見られないのは設計として本末転倒に感じます。
ダイアログがキー入力を独占するモーダル設計自体は理解できるのですが、せめてトランスクリプトモードへの切り替えがダイアログ上に案内されていれば、ここまで迷うことはないはずです。#54162 の通りドキュメントにも記載がないため、回避策の存在自体に気づきにくいのが現状です。
根本修正は #66026 の対応待ちということになります。