フルスクリーンレンダリングはオプトイン形式のリサーチプレビューであり、Claude Code v2.1.88 以降が必要です。CLAUDE_CODE_NO_FLICKER=1 で有効にできます。フィードバックに基づいて動作が変わる可能性があります。
フルスクリーンレンダリングは Claude Code CLI の代替レンダリングパスで、ちらつきを排除し、長い会話でもメモリ使用量を一定に保ち、マウスサポートを追加します。vim や htop のようにターミナルの代替スクリーンバッファにインターフェースを描画し、現在表示されているメッセージのみをレンダリングします。これにより、各更新時にターミナルに送信されるデータ量が削減されます。
この違いは、VS Code 統合ターミナル、tmux、iTerm2 など、レンダリングスループットがボトルネックになるターミナルエミュレータで最も顕著です。Claude が作業中にターミナルのスクロール位置が上部にジャンプしたり、ツール出力がストリーミングされるときに画面がフラッシュしたりする場合、このモードがそれに対応します。
フルスクリーンという用語は、vim のようにターミナルの描画サーフェスを Claude Code が占有する方法を説明しています。ターミナルウィンドウを最大化することとは関係なく、任意のウィンドウサイズで動作します。
フルスクリーンレンダリングを有効にする
Claude Code を起動するときに CLAUDE_CODE_NO_FLICKER 環境変数を設定します。
CLAUDE_CODE_NO_FLICKER=1 claude
すべてのセッションで有効にするには、~/.zshrc や ~/.bashrc などのシェルプロファイルで変数をエクスポートします。
export CLAUDE_CODE_NO_FLICKER=1
変更内容
フルスクリーンレンダリングは CLI がターミナルに描画する方法を変更します。入力ボックスは出力がストリーミングされるときに移動するのではなく、画面の下部に固定されたままになります。Claude が作業中に入力が固定されたままの場合、フルスクリーンレンダリングがアクティブです。レンダーツリーに保持されるのは表示されているメッセージのみなので、会話の長さに関係なくメモリは一定に保たれます。
会話がターミナルのスクロールバックではなく代替スクリーンバッファに存在するため、いくつかの点で動作が異なります。
| 以前 | 現在 | 詳細 |
|---|
Cmd+f または tmux 検索でテキストを検索 | Ctrl+o の後に / で検索するか、Ctrl+o の後に [ で会話をネイティブスクロールバックに書き込んで Cmd+f が再度機能するようにする | 会話を検索およびレビューする |
| ターミナルのネイティブなクリックアンドドラッグで選択およびコピー | アプリ内選択、マウスリリース時に自動的にコピー | マウスを使用する |
Cmd クリックで URL を開く | URL をクリック | マウスを使用する |
マウスキャプチャがワークフローに干渉する場合、ちらつきのないレンダリングを保持しながらオフにすることができます。
マウスを使用する
フルスクリーンレンダリングはマウスイベントをキャプチャし、Claude Code 内で処理します。
- プロンプト入力をクリックして、入力しているテキスト内の任意の場所にカーソルを配置します。
- 折りたたまれたツール結果をクリックして展開し、完全な出力を表示します。もう一度クリックして折りたたみます。ツール呼び出しとその結果は一緒に展開されます。表示するものがあるメッセージのみがクリック可能です。
- URL またはファイルパスをクリックして開きます。Edit または Write の後に出力されたものなど、ツール出力内のファイルパスはデフォルトアプリケーションで開きます。プレーン
http:// および https:// URL はブラウザで開きます。ほとんどのターミナルでは、マウスキャプチャが傍受するネイティブな Cmd クリックまたは Ctrl クリックが置き換わります。VS Code 統合ターミナルおよび同様の xterm.js ベースのターミナルでは、Cmd クリックを使い続けてください。Claude Code はリンクが 2 回開かれるのを避けるため、そこではターミナル独自のリンクハンドラに従います。
- クリックしてドラッグして、会話内の任意の場所のテキストを選択します。ダブルクリックで単語を選択し、iTerm2 の単語境界に一致するため、ファイルパスは 1 つのユニットとして選択されます。トリプルクリックで行を選択します。
- マウスホイールでスクロールして会話を移動します。
選択されたテキストはマウスリリース時にクリップボードに自動的にコピーされます。これをオフにするには、/config で [Copy on select] をトグルします。オフの場合、Ctrl+Shift+c を押して手動でコピーします。kitty、WezTerm、Ghostty、iTerm2 など kitty キーボードプロトコルをサポートするターミナルでは、Cmd+c も機能します。選択がアクティブな場合、Ctrl+c はキャンセルではなくコピーします。
会話をスクロールする
フルスクリーンレンダリングはアプリ内でスクロールを処理します。これらのショートカットを使用してナビゲートします。
| ショートカット | アクション |
|---|
PgUp / PgDn | 画面の半分だけ上下にスクロール |
Ctrl+Home | 会話の開始にジャンプ |
Ctrl+End | 最新のメッセージにジャンプして自動フォローを再度有効にする |
| マウスホイール | 数行ずつスクロール |
MacBook キーボードのように PgUp、PgDn、Home、End キーが専用にない場合、Fn を矢印キーで押し続けます。Fn+↑ は PgUp を送信し、Fn+↓ は PgDn を送信し、Fn+← は Home を送信し、Fn+→ は End を送信します。これにより Ctrl+Fn+→ が下部へのジャンプショートカットになります。これが不便に感じられる場合は、マウスホイールで下部にスクロールしてフォローを再開するか、scroll:bottom を到達可能な何かに再バインドします。
上にスクロールすると自動フォローが一時停止され、新しい出力があなたを下部に戻しません。Ctrl+End を押すか、下部にスクロールしてフォローを再開します。
これらのアクションは再バインド可能です。キーバインディングを参照してカスタマイズしてください。アクション名は scroll:pageUp、scroll:pageDown、scroll:top、scroll:bottom です。デフォルトバインディングのない追加アクションには、scroll:lineUp、scroll:lineDown、scroll:halfPageUp、scroll:halfPageDown、scroll:fullPageUp、scroll:fullPageDown が含まれます。
ホイールスクロール速度を調整する
マウスホイールスクロールが遅く感じられる場合、ターミナルは乗数なしで物理的なノッチごとに 1 つのスクロールイベントを送信している可能性があります。Ghostty や高速スクロールが有効な iTerm2 など、一部のターミナルはすでにホイールイベントを増幅しています。VS Code 統合ターミナルを含む他のターミナルは、ノッチごとに正確に 1 つのイベントを送信します。Claude Code は検出できません。
CLAUDE_CODE_SCROLL_SPEED を設定してベーススクロール距離を乗算します。
export CLAUDE_CODE_SCROLL_SPEED=3
値 3 は vim および同様のアプリケーションのデフォルトと一致します。この設定は 1 から 20 の値を受け入れます。
会話を検索およびレビューする
Ctrl+o を押してトランスクリプトモードに入ります。フルスクリーンレンダリングがアクティブな場合、トランスクリプトモードは less スタイルのナビゲーションと検索を取得します。
| キー | アクション |
|---|
/ | 検索を開きます。入力して一致を検索し、Enter で受け入れ、Esc でキャンセルしてスクロール位置を復元します |
n / N | 次または前の一致にジャンプします。検索バーを閉じた後に機能します |
j / k または ↑ / ↓ | 1 行スクロール |
g / G または Home / End | 上部または下部にジャンプ |
Ctrl+u / Ctrl+d | ページの半分をスクロール |
Ctrl+b / Ctrl+f または Space / b | ページ全体をスクロール |
Esc、q、または Ctrl+o | トランスクリプトモードを終了 |
ターミナルの Cmd+f と tmux 検索は、会話がネイティブスクロールバックではなく代替スクリーンバッファに存在するため、会話を見ることができません。コンテンツをターミナルに戻すには、Ctrl+o を押してトランスクリプトモードに最初に入ってから、以下を実行します。
[: すべてのツール出力が展開された完全な会話をターミナルのネイティブスクロールバッファに書き込みます。会話はターミナル内の通常のテキストになるため、Cmd+f、tmux コピーモード、その他のネイティブツールで検索または選択できます。長いセッションはこれが発生している間、一瞬一時停止する可能性があります。これは Esc または q でトランスクリプトモードを終了するまで続き、フルスクリーンレンダリングに戻ります。次の Ctrl+o は新たに開始します。
v: 会話を一時ファイルに書き込み、$VISUAL または $EDITOR で開きます。
Esc、q、または Ctrl+o を押してプロンプトに戻ります。
tmux で使用する
フルスクリーンレンダリングは tmux 内で機能しますが、2 つの注意点があります。
マウスホイールスクロールには tmux のマウスモードが必要です。~/.tmux.conf がまだ有効にしていない場合は、この行を追加して設定をリロードします。
マウスモードがない場合、ホイールイベントは Claude Code ではなく tmux に送信されます。PgUp と PgDn を使用したキーボードスクロールはどちらの方法でも機能します。Claude Code は起動時に tmux がマウスモードオフで検出された場合、1 回限りのヒントを出力します。
フルスクリーンレンダリングは iTerm2 の tmux 統合モード(tmux -CC で入るモード)と互換性がありません。統合モードでは、iTerm2 は各 tmux ペインをネイティブスプリットとしてレンダリングし、tmux がターミナルに描画することを許可しません。代替スクリーンバッファとマウストラッキングはそこで正しく機能しません。マウスホイールは何もしませんし、ダブルクリックはターミナル状態を破損する可能性があります。tmux -CC セッションでフルスクリーンレンダリングを有効にしないでください。-CC なしの iTerm2 内の通常の tmux は正常に機能します。
ネイティブテキスト選択を保持する
マウスキャプチャは最も一般的な摩擦点です。特に SSH 経由または tmux 内です。Claude Code がマウスイベントをキャプチャすると、ターミナルのネイティブなコピーオンセレクトが機能しなくなります。クリックアンドドラッグで行う選択は Claude Code 内に存在し、ターミナルの選択バッファには存在しないため、tmux コピーモード、Kitty ヒント、および同様のツールはそれを見ることができません。
Claude Code は選択をクリップボードに書き込もうとしますが、使用するパスはセットアップに依存します。tmux 内では tmux ペーストバッファに書き込みます。SSH 経由では OSC 52 エスケープシーケンスにフォールバックし、一部のターミナルはデフォルトでブロックします。Claude Code は各コピー後にトーストを出力し、使用したパスを通知します。
ターミナルのネイティブ選択に依存する場合、CLAUDE_CODE_DISABLE_MOUSE=1 を設定してマウスキャプチャをオプトアウトしながら、ちらつきのないレンダリングとフラットメモリを保持します。
CLAUDE_CODE_NO_FLICKER=1 CLAUDE_CODE_DISABLE_MOUSE=1 claude
マウスキャプチャが無効な場合、PgUp、PgDn、Ctrl+Home、Ctrl+End を使用したキーボードスクロールは引き続き機能し、ターミナルはネイティブに選択を処理します。クリックしてカーソルを配置、クリックしてツール出力を展開、URL クリック、Claude Code 内でのホイールスクロールが失われます。
リサーチプレビュー
フルスクリーンレンダリングはリサーチプレビュー機能です。一般的なターミナルエミュレータでテストされていますが、あまり一般的でないターミナルまたは異常な設定でレンダリングの問題が発生する可能性があります。
問題が発生した場合は、Claude Code 内で /feedback を実行して報告するか、claude-code GitHub リポジトリで issue を開いてください。ターミナルエミュレータの名前とバージョンを含めてください。
フルスクリーンレンダリングをオフにするには、環境変数をアンセットするか、CLAUDE_CODE_NO_FLICKER=0 を設定します。