Claude Media
Claude Codeでスクロールバックが消える問題の原因と対処法

Claude Codeでスクロールバックが消える問題の原因と対処法

Claude Codeのフルスクリーン表示でスクロールバックが消える既知issueの経緯と、CLAUDE_CODE_DISABLE_ALTERNATE_SCREENでの回避策をまとめます。

Claude Codeのフルスクリーン表示中に、少し前のメッセージへスクロールしても何も出てこないことがあります。GitHub issue #42670によれば、原因はv2.1.89で加わったオルタネートスクリーンバッファの描画方式です。issueが立ってから半年近く経った2026年7月29日の投稿でも、解消していないという報告が付いています。CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1という環境変数で多くの場合は回避できますが、根はターミナルエミュレーターごとの描画差にあり、更新だけでは直らない組み合わせも報告されています。

何が起きているか — フルスクリーン表示でスクロールバックが消える

オルタネートスクリーンバッファとは、vimlessと同じくターミナルが持つ「別画面」に描画する仕組みです。Claude Codeのフルスクリーンレンダリング(TUI)はこの仕組みを使い、会話を専用の画面に描き直します。issueの報告者はv2.1.90・Apple Terminal環境で、マウスホイールを回しても画面上部の履歴が一切出てこないと書いています。

トランスクリプトモード(Ctrl+O)を開いても、issue提出当時(2026年4月)はCtrl+E(すべて展開)とq(終了)しか機能しませんでした。ドキュメントに載っていた「会話をスクロールバックへ書き出すキー」「エディタで開くキー」は、報告者の環境では動かなかったとされています。ターミナル標準のCmd+F検索も、alternate screenの中身までは届きません。

コメント欄にはmacOSのTerminal.app・iTerm2・Ghostty・Warp、WindowsのWSL2、Linux SSHと、幅広い環境からの追随報告が並びます。特定のターミナルアプリに限った不具合ではなく、フルスクリーンレンダリングを使うと共通して起きる症状だとわかります。

いつから起きているか — v2.1.89のNO_FLICKERを境に相次いだ報告

公式changelogでは、v2.1.89(2026年4月1日)でCLAUDE_CODE_NO_FLICKER=1が追加されています。ちらつきを抑えた新しいオルタネートスクリーンレンダリングを、仮想化スクロールバック付きで任意に有効化できる、という説明です。issue #42670が立てられたのは翌2026年4月2日で、報告者は「switched to」と書いており、自分から有効にしたつもりはないのに切り替わったと受け止めています。

issue本文は、同じ根本原因を持つとされる未解決issueを「12件以上」としており、実際に本文には11件のissue番号が列挙されています。提出から3日後、github-actions botは3件の類似issueとの重複と判定し、自動クローズを予告しました。実際に自動クローズされていますが、これは個別の修正コミットが入って解決した、という意味ではありません。

主要バージョンだけを抜き出すと、次のように選択肢が積み増されてきました。

バージョン日付関連する変更
v2.1.89日付2026-04-01関連する変更CLAUDE_CODE_NO_FLICKER=1追加(仮想化スクロールバック付きのちらつき抑制レンダリングを任意で有効化)
v2.1.132日付2026-05-07関連する変更CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1追加(オルタネートスクリーンだけを無効化)
v2.1.210日付2026-07-14関連する変更CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1使用時、エージェントビューから戻る際のゴーストフレーム表示を修正
v2.1.239日付2026-08-21関連する変更Bedrock/Vertex/Foundry等の新規インストールにもフルスクリーンレンダラーの提示を拡大

この並びだけ見ると段階的に手当てされてきたように映ります。ただしissueのコメントは、この間もずっと途切れずに届いています。2026年5月11日にはv2.1.138使用者から「まだ同じ問題がある」という投稿、2026年5月12日にはv2.1.126使用者からIntel系Warp環境での再現報告、2026年6月25日にはv2.1.191使用者から新しいパターンの報告が付いています。

今すぐ試せる対処 — 環境変数と状況別の使い分け

最も確実なのはCLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1です。フルスクリーンの機能はそのままに、オルタネートスクリーンへの切り替えだけを止め、会話をターミナルのネイティブなスクロールバックに残します。

export CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1

設定した状態でclaudeを起動すると、フルスクリーンの見た目のままCmd+Fやターミナル標準のスクロール操作が使えるようになります。恒久的に使うなら~/.zshrc~/.bashrcなどシェルの初期化ファイルに追記してください。

状況対処補足
とにかく過去の会話を遡りたい対処CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1補足フルスクリーンの他機能は維持される
フルスクリーンごとやめたい対処/tui default補足クラシックレンダラーに戻り、常にネイティブスクロールバックへ流れる
いまのセッションだけ一時的に見たい対処Ctrl+Oでトランスクリプトモード→[補足会話全体を一時的にネイティブスクロールバックへ書き出す
tmuxを併用している対処上記の環境変数 + 通常のtmux補足tmux -CC(iTerm2統合)は避ける
古いバージョンのまま困っていない対処対応不要補足クラシックレンダラーのままなら影響しない

Ctrl+Oのトランスクリプトモードで[を押すと、会話全体(ツール出力を全展開した状態)がネイティブスクロールバックへ一時的に書き出され、ターミナル標準の検索が使えます。操作の詳細はClaude CodeのCtrl+Oトランスクリプトビューアーの使い方にまとめています。フルスクリーンレンダリングの仕組み自体はClaude CodeのTUI(フルスクリーン)とは、tmux併用時の注意点はClaude Code tmux設定を参照してください。

なぜ直りきらないのか — ターミナルエミュレーターごとの描画差

issueのコメント欄では、有志による実測も進んでいます。2026年4月21日、WSL2/Windows 11環境からの報告によると、オルタネートスクリーンへの切り替えシーケンス(1049/1047/47のh/l)自体は検出されず、代わりにCSI 2J(画面全消去)とCSI H(カーソルを先頭へ)の組み合わせが描画のたびに送られていたといいます。CSI 2Jがスクロールバックに触れるかどうかはVT仕様上あいまいで、ConPTYやxterm.jsを含む一部のエミュレーターではスクロールバックを壊す挙動になっている、という分析でした。これはAnthropicの公式見解ではなく、あくまでissue上の検証です。

同じ報告では、CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1を試しても当時のWSL2/Win11パイプラインでは効果がなかったとも書かれています。一方、別の投稿(2026年4月3日、Ghostty環境)は同じ環境変数について「スクロールバックは戻るが、別の不具合(約300行の内部レンダーバッファ上限)は残る」と報告しています。同じ環境変数でも、効き方が環境によって揃わないことがうかがえます。

公式changelogがCLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1の追加を明記したのはv2.1.132(2026年5月7日)ですが、コメント欄では2026年4月3日の時点ですでに「未文書化のまま動く環境変数」として言及されています。文書化と実装のタイミングがずれていたことになります。

2026年4月23日には、iTerm2環境の利用者から、オルタネートスクリーンのメリットを保ちながらメイン画面のスクロールバックにも同時出力する「第3のモード」を求める要望が出ています。その後2026年5月12日、Warp環境・v2.1.126からの報告は原因をより明確に言い切りました。フルスクリーンレンダリングはオルタネートスクリーンへ全出力を描き、ターミナルのメイン画面には何も書き込まれないため、そもそもスクロールバックに残す対象自体が存在しない、という指摘です。tmuxのコピーモードやPgUp/PgDnといった端末側の操作では原理的に復元できない、という説明でもあります。「第3のモード」はissueの範囲では実装されていません。

直近では2026年6月25日、1セッションで多数のサブエージェントを並行実行し、その大きな出力が積み重なるとスクロールバックが再び途切れるという報告(v2.1.191)があります。2026年7月29日には「なぜこのissueがクローズされたのか分からない、新しいバージョンでも壊れたままだ」というコメントも付いています。

CLAUDE_CODE_DISABLE_ALTERNATE_SCREENは緩和策として使うのが実態に近い

一連の経緯を並べると、Anthropicが無反応だったわけではありません。任意で有効化できるちらつき抑制のNO_FLICKERから、オルタネートスクリーンを無効化できる環境変数、ゴーストフレーム修正、Bedrock/Vertex/Foundry環境への展開まで、半年近くかけて選択肢を積み増しています。ただし根本原因とされるCSI 2Jの扱いはターミナルエミュレーター側の実装差に依存するため、Claude Code単体のアップデートだけでは閉じ切れない領域が残ります。

実用的な結論は、CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1を「最新版に上げれば直る問題」の代わりに使うことです。バージョンを上げるたびに再発しないか確かめるより、環境変数を先に固定してしまうほうが手数は少なく済みます。

よくあるつまずき

CLAUDE_CODE_NO_FLICKER=0にしてもフルスクリーンから抜けられない

CLAUDE_CODE_NO_FLICKERはちらつき抑制の効果を切るだけで、フルスクリーン自体の有効・無効を切り替えるフラグではありません。フルスクリーンをやめたい場合は/tui defaultか、CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1を使ってください。

環境変数を設定したのに変わらない

exportした後に、その設定が今使っているシェルセッションへ反映されているか確認してください。~/.zshrcなどに書いた場合は、新しいターミナルタブを開くかsourceし直す必要があります。

tmuxのコピーモードで検索できない

tmux -CC(iTerm2のネイティブ統合モード)では、フルスクリーンレンダリングのマウス追跡やalternate screenの扱いがtmux本体とかみ合わず、期待どおりに動かないという報告があります。通常のtmux(-CCなし)やSSH越しの利用では問題が起きていません。

まとめ

Claude Codeのフルスクリーン表示でスクロールバックが消える症状は、v2.1.89のCLAUDE_CODE_NO_FLICKER導入を境にGitHub issue #42670へ報告が集まり、2026年7月29日の投稿でも解消を訴える声が続いています。手元で困っている場合は、まずCLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1を設定し、会話をネイティブなスクロールバックへ戻すのが最短です。Claude Codeの設定全体はClaude Code完全ガイドにまとまっています。

この記事を共有:XはてブLinkedIn