Claude Codeのターミナルのちらつきを直す方法

/tui fullscreen、CLAUDE_CODE_NO_FLICKER、同期出力でClaude Codeのちらつきやスクロールの飛びを止める方法。tmux、VS Code、Windowsでの対処法も。

対象バージョン
CLI
0.2.17
プレビュー ref
a2c45c8

要点

Claude Code内でこれを実行します。

/tui fullscreen

Claude 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 などのフラグ。

どのレンダラーが有効か確認するには:

/tui

Claudeの作業中も入力欄が下部に固定されていれば、フルスクリーンが有効です。

フルスクリーンモードで変わること

会話は代替スクリーンバッファにあるため、ターミナル自体のスクロールバックや検索からは見えません。

これまでフルスクリーンでは
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 claude

PowerShellの場合:

$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以降でのちらつきを修正したことも記載されています。それでもちらつく場合:

  1. claude update でClaude Codeを更新します。

  2. tmuxを最新のリリースに更新します。

  3. フルスクリーン描画を試します。その中でマウスホイールでスクロールするには、tmuxのマウスモードを有効にします。

    # ~/.tmux.conf
    set -g mouse on
  4. それでも続く場合は、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のドキュメントによると、見えているメッセージだけをレンダーツリーに保持するため、会話の長さに関係なくメモリ使用量は一定です。

関連ガイド

claudeterminaltroubleshootingtmux
最終更新: 2026-10-26