Claude Codeのターミナルのちらつきを直す方法
/tui fullscreen、CLAUDE_CODE_NO_FLICKER、同期出力でClaude Codeのちらつきやスクロールの飛びを止める方法。tmux、VS Code、Windowsでの対処法も。
- CLI
- 0.2.17
- プレビュー ref
- a2c45c8
要点
Claude Code内でこれを実行します。
/tui fullscreenClaude Codeのフルスクリーンレンダラーに切り替わります。Anthropicはこれをちらつきのないレンダラーと説明しています。会話はそのまま再起動され、設定は今後のセッションにも保存されます。元に戻すには /tui default を実行します。
原因に応じたその他の対処法:
- ちらつきだけで、ターミナルが同期出力に対応している場合:
CLAUDE_CODE_FORCE_SYNC_OUTPUT=1 claudeで起動します。従来のレンダラーのままです。 - 環境変数で設定したい場合:
CLAUDE_CODE_NO_FLICKER=1 claudeで起動時にフルスクリーン描画が有効になります。 - tmux上の場合: tmuxを更新するか、Claude Codeを専用のターミナルタブで動かします。
- Windows Terminalで描画の残骸が残る場合:
CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT=1。
フルスクリーン描画はAnthropicのドキュメント(2026年10月26日時点)でリサーチプレビューとされているため、詳細は変わる可能性があります。
問題
症状はおなじみです。ツールの出力が流れてくると画面がチカチカする。Claudeが作業している間にスクロール位置が先頭に飛ぶ。長いセッションではターミナルが重くなり、ちらつきもひどくなる。描画速度がボトルネックになるターミナルほど目立ちます。AnthropicはVS Codeの統合ターミナル、tmux、iTerm2を挙げています。
原因は、従来のレンダラーが更新のたびに画面の大部分を描き直していることです。対処法は、Claude Codeの描画方法を変えるか、各更新を一度にまとめて反映するようターミナルに伝えるかのどちらかです。
対処法1:Claude Codeをフルスクリーン描画に切り替える
/tui fullscreenフルスクリーン描画は vim や htop と同じようにターミナルの代替スクリーンバッファに描画し、見えているメッセージだけをレンダリングします。そのため更新ごとに送るデータが減り、長い会話でもメモリ使用量が一定に保たれ、マウス操作にも対応します。「フルスクリーン」は描画領域を占有するという意味で、ウィンドウのサイズは問いません。
再起動時に引き継がれるもの:画面に表示されている会話、権限モードとeffortレベル、/model で選んだモデル、--allowed-tools や --agent などのフラグ。
どのレンダラーが有効か確認するには:
/tuiClaudeの作業中も入力欄が下部に固定されていれば、フルスクリーンが有効です。
フルスクリーンモードで変わること
会話は代替スクリーンバッファにあるため、ターミナル自体のスクロールバックや検索からは見えません。
| これまで | フルスクリーンでは |
|---|---|
Cmd+f やtmuxの検索 | Ctrl+o でトランスクリプトモードにし、/ で検索 |
| ネイティブのドラッグでコピー | アプリ内で選択し、マウスを離すとコピー |
| ターミナルのスクロールバック | Claude Code内でマウスホイール、PgUp、PgDn |
トランスクリプトモードでは、[ で会話全体をターミナルのネイティブなスクロールバックに書き出し、v でエディターで開けます。
マウスのキャプチャが邪魔なら、レンダラーはそのままでマウスだけ無効にします。
CLAUDE_CODE_NO_FLICKER=1 CLAUDE_CODE_DISABLE_MOUSE=1 claude対処法2:同期出力を有効にして従来のレンダラーを使い続ける
一部のターミナルは、再描画を1回の更新として反映する同期出力に対応していても、Claude Codeが検出できる形でそれを伝えません。AnthropicはEmacsの eat を例に挙げています。そうしたターミナルでは強制的に有効にします。
CLAUDE_CODE_FORCE_SYNC_OUTPUT=1 claudeレンダラーを変えずにちらつきが止まるので、ネイティブのスクロールバックと選択はそのまま使えます。
対処法3:CLAUDE_CODE_NO_FLICKERを設定する
環境変数でフルスクリーン描画を有効にするには:
CLAUDE_CODE_NO_FLICKER=1 claudePowerShellの場合:
$env:CLAUDE_CODE_NO_FLICKER = "1"; claudeまたは settings.json に:
{
"env": {
"CLAUDE_CODE_NO_FLICKER": "1"
}
}tmuxでのClaude Codeのちらつきを直す
Anthropicのフルスクリーンのページによると、3.6系までのtmuxは同期出力を実装していないため、ターミナルで直接動かすよりtmux上のほうが再描画のちらつきが多くなることがあります。v2.1.201の変更履歴には、同期出力を有効にしてtmux 3.4以降でのちらつきを修正したことも記載されています。それでもちらつく場合:
-
claude updateでClaude Codeを更新します。 -
tmuxを最新のリリースに更新します。
-
フルスクリーン描画を試します。その中でマウスホイールでスクロールするには、tmuxのマウスモードを有効にします。
# ~/.tmux.conf set -g mouse on -
それでも続く場合は、tmuxの外の専用ターミナルタブでClaude Codeを動かします。
iTerm2のtmux統合モード(tmux -CC)ではフルスクリーン描画を使わないでください。Anthropicのドキュメントによると、マウスホイールが効かず、ダブルクリックでターミナルの状態が壊れることがあります。iTerm2内の通常のtmuxは問題ありません。
VS Codeのターミナルでのちらつきを直す
VS Codeの統合ターミナルは、Anthropicがスループットに制約があるとして挙げているターミナルの1つです。主な対処法はフルスクリーン描画です。マウスがキャプチャされている間にネイティブの選択をするには Shift を押したまま操作します。macOSでは terminal.integrated.macOptionClickForcesSelection を有効にして Option を使います。
Windows Terminalで残る文字を直す
ウィンドウのサイズを変えるまで古い断片が画面に残る場合、ターミナルがClaude Codeの差分更新を正しく合成できていません。AnthropicはWindows TerminalとConPTYベースのホストを挙げています。代わりにすべてのセルを再描画させます。
$env:CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT = "1"
claude一度だけ再描画するなら Ctrl+L を押します。会話と入力内容はそのまま残ります。
ターミナル以外でセッションを追う
ちらつきの報告の中には、小さなターミナルで長い実行を眺めている場合、それも別のデバイスからSSH越しに見ている場合が少なくありません。TUIに入力するよりセッションを見守ることが目的なら、レンダラーを調整するより別の表示方法のほうが役立ちます。
ターミナルウィンドウではなくスマートフォンやブラウザからClaude Codeを追いかけて指示したいなら、HappierはClaude Code、Codexなどのエージェントをスマートフォン、デスクトップ、Webからクロスデバイスで実行・オーケストレーションできるオープンソースアプリです。セッションを独自のインターフェースでメッセージとツール呼び出しのトランスクリプトとして表示するため、そのデバイスではターミナルのレンダラーは関係ありません。本物のClaude TUIを使いたいときは、HappierのClaude統合ターミナルのオプションでtmuxやzellijの中で動かせます。これはオプトインで、新しいセッションに適用されます。
セットアップはスマートフォンからHappierを使う方法にあります。HappierはGitHubで公開されており、こちらからダウンロードでき、Discordもあります。
トラブルシューティング
Cannot switch renderers in this session
Claude Codeは理由を表示し、切り替えません。スクリーンリーダーモードでは、アタッチされたバックグラウンドセッションを除き、常に従来のレンダラーを使います。理由が許すなら、CLAUDE_CODE_NO_FLICKER=1 で新しいセッションを開始してください。
フルスクリーンレンダラーの起動が完了しなかったという警告
Claude Codeはフルスクリーンの起動失敗を数え、従来のレンダラーにフォールバックします。起動に失敗した後も CLAUDE_CODE_NO_FLICKER には従いますが、保存された設定には従いません。Claude Codeとターミナルを更新してから、もう一度 /tui fullscreen を試してください。
コピー&ペーストができなくなった
フルスクリーンはマウスをキャプチャします。ターミナルの選択キー(iTerm2では Option、Terminal.appでは Fn、ほとんどのその他では Shift)を押したまま操作するか、CLAUDE_CODE_DISABLE_MOUSE=1 を設定します。
よくある質問
Claude Codeがちらつくのはなぜ?
従来のレンダラーは出力が流れてくるたびに画面の大部分を描き直します。描画が遅いターミナルや部分的な更新を反映するターミナルでは、それがちらつきや飛びとして見えます。
フルスクリーンモードでClaudeの動作は変わる?
変わりません。変わるのはCLIの描画方法です。モデル、権限、ツールは同じです。
フルスクリーン描画はメモリ使用量が少ない?
Anthropicのドキュメントによると、見えているメッセージだけをレンダーツリーに保持するため、会話の長さに関係なくメモリ使用量は一定です。