
Claude Code のちらつき解消|NO_FLICKER と fullscreen 設定
Claude Code を使っていると、ツール出力が流れるたびに画面がチカチカ点滅したり、作業中にスクロール位置が勝手に一番上へ飛んだりして集中を削がれることがある。とくに VS Code 統合ターミナルや tmux、iTerm2 で顕著だ。この悩みに応えるのが NO_FLICKER(フルスクリーンレンダリング)モードである。本記事では有効化の方法、仕組み、マウス操作、tmux での注意点、そして元のレンダラーに戻す手順まで、Anthropic 公式ドキュメントをもとに整理する。
Claude Code のちらつきは会話中に /tui fullscreen を実行するか、CLAUDE_CODE_NO_FLICKER=1 claude で起動すればほぼ解消できる。ターミナルの代替スクリーンバッファに描画して変更部分だけを更新するため、点滅とスクロール暴走が消え、長い会話でもメモリが一定に保たれ、マウス操作まで使えるようになるとわかる。
目次 (10)
NO_FLICKER(フルスクリーンレンダリング)とは
フルスクリーンレンダリングは、Claude Code CLI の代替となる描画方式だ。vim や htop と同じようにターミナルの「代替スクリーンバッファ」に画面を描き、いま見えているメッセージだけを描画する。これにより更新のたびにターミナルへ送るデータ量が減り、ちらつきが消え、長い会話でもメモリ使用量が一定に保たれる。
ここでいう「フルスクリーン」はウィンドウの最大化とは無関係で、vim のように描画面を専有するという意味だ。どのウィンドウサイズでも動作する。研究プレビュー(opt-in)機能で、Claude Code v2.1.89 以降が必要になる。
出典: Fullscreen rendering — Claude Code Docs
有効化する 2 つの方法
有効化には次の 2 通りがある。
- 会話中に
/tui fullscreenと入力する。CLI がtui設定を保存し、会話を保ったままフルスクリーンで再起動するため、セッションの途中でも文脈を失わずに切り替えられる。 - 起動前に環境変数を指定する。
CLAUDE_CODE_NO_FLICKER=1 claudeのように書く(v2.1.110 より前のバージョンではこの方法を使う)。
tui 設定と環境変数は等価だ。/tui コマンドは再起動したプロセスから CLAUDE_CODE_NO_FLICKER をクリアし、書き込んだ設定を優先させる。現在どちらのレンダラーが有効かは、引数なしの /tui を実行すれば確認できる。
有効になったかの見分け方
フルスクリーンレンダリングが効くと、入力ボックスが画面下部に固定され、出力が流れても動かなくなる。Claude が作業している間に入力欄が動かなければ、モードは有効だ。逆に、従来モードでは出力が流れるたびに入力欄が押し上げられていく。
会話は代替スクリーンバッファに置かれるため、見えているメッセージだけがレンダーツリーに保持される。これが会話の長さに関係なくメモリを一定に保つ仕組みでもある。
仕組み:代替スクリーンバッファと差分描画
従来のレンダラーは更新のたびに画面全体を再描画するため、点滅が起きていた。フルスクリーンレンダリングは、いま画面に表示されている内容の仮想的なコピーを保持し、変更が起きたときに新旧の状態を比較して、実際に変わった文字と行だけを更新する。
この差分ベースの描画によって、全画面の再描画に伴うちらつきが解消される。効果が最も体感しやすいのは、描画スループットがボトルネックになりやすい VS Code 統合ターミナル・tmux・iTerm2 だ。
マウス操作が使えるようになる
フルスクリーンレンダリングはマウスイベントを捕捉し、Claude Code 内で処理する。主な操作は次のとおり。
- プロンプト入力内をクリックしてカーソル位置を移動する。
/コマンドや@ファイル一覧の候補をクリックして確定する。- 折りたたまれたツール結果をクリックして展開・再折りたたみする。
- macOS では
Cmd、Linux・Windows ではCtrlを押しながら URL やファイルパスをクリックして開く。 - クリック&ドラッグで会話中のテキストを選択する(マウスを離すと自動でクリップボードへコピー)。
- マウスホイールで会話をスクロールする。
なお /config で「Copy on select」をオフにすれば自動コピーを止められ、代わりに Ctrl+Shift+c で手動コピーする。
スクロールと会話の検索方法
会話が代替スクリーンバッファにあるため、ターミナル標準の Cmd+f や tmux 検索では会話を検索できない。代わりに Ctrl+o でトランスクリプトモードに入り、/ で検索、n / N で次・前の一致へ移動する。
スクロールは PgUp / PgDn で半画面ずつ、Ctrl+Home で先頭へ、Ctrl+End で最新メッセージへジャンプする。上へスクロールすると自動追従が一時停止し、Ctrl+End かホイールで最下部に戻ると再開する。会話を丸ごとターミナルのスクロールバックへ書き出したいときは、トランスクリプトモードで [ を押す。
ちらつきだけ欲しい・マウスは不要な場合
マウス捕捉が SSH や tmux で邪魔になる場合は、ちらつき解消とメモリ一定はそのままにマウスだけをオフにできる。
CLAUDE_CODE_NO_FLICKER=1 CLAUDE_CODE_DISABLE_MOUSE=1 claude
この設定でも PgUp / PgDn / Ctrl+Home / Ctrl+End によるキーボードスクロールとネイティブなテキスト選択は使える。一方で、クリックによるカーソル移動・ツール出力の展開・URL クリック・ホイールスクロールは失われる。ホイールスクロールだけ残してクリックとドラッグを無効化したい場合は、代わりに CLAUDE_CODE_DISABLE_MOUSE_CLICKS=1(v2.1.195 以降)を使う。
tmux で使うときの注意点
tmux 内でも動作するが、注意点が 3 つある。
- マウスホイールでのスクロールには tmux のマウスモードが必要だ。
~/.tmux.confにset -g mouse onを追加して設定を再読み込みする。 - iTerm2 の tmux 統合モード(
tmux -CC)とは非互換で、ホイールが効かずダブルクリックで表示が崩れる。統合モードでは有効化しない。-CCなしの通常 tmux なら問題ない。 - tmux は同期出力に対応しないため、直接ターミナルで動かすときより再描画時のちらつきが増えることがある。気になる場合、とくに SSH 越しでは、tmux の外の独立したタブで Claude Code を動かすとよい。
元のレンダラーに戻す方法
フルスクリーンレンダリングを止めるには /tui default を実行するか、環境変数で有効化した場合は CLAUDE_CODE_NO_FLICKER を解除する。保存された tui 設定に関わらず従来レンダラーを強制したいときは、CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 を設定する。従来レンダラーは会話をターミナル標準のスクロールバックに残すため、Cmd+f や tmux コピーモードがそのまま使える。
まだ研究プレビューである点に注意
フルスクリーンレンダリングは研究プレビュー機能だ。一般的なターミナルエミュレーターでテストされているが、あまり使われないターミナルや特殊な設定では描画の問題が起きることがある。不具合に遭遇したら、Claude Code 内で /feedback を実行するか、claude-code GitHub リポジトリに issue を立てる。その際はターミナルエミュレーターの名称とバージョンを添えるとよい。
まずは /tui fullscreen を一度試し、点滅とスクロール暴走が消える体験を確かめてから、常用するかどうか判断するのがおすすめだ。