Skip to content

原文(日本語に翻訳)

tmux 3.4以降で端末の同期出力(synchronized output)を有効にすることで、描画のちらつきを修正しました。

原文(英語)

Fixed rendering flicker under tmux 3.4+ by enabling synchronized terminal output

概要

tmux 3.4以降の中でClaude Codeを実行すると、画面の再描画が段階的に端末へ送られることで、更新の途中経過が一瞬見えてしまい、ちらつき(flicker)として認識される問題がありました。この修正により、対応するtmuxバージョンでは同期出力(synchronized output、フレーム全体が完成してから一括で端末に反映される仕組み)が自動的に有効化され、描画のちらつきが解消されました。

基本的な使い方

特別な設定は不要です。tmux 3.4以降の中でClaude Codeを起動すると、自動的に同期出力が使われます。

bash
tmux
claude
# tmux 3.4+であれば自動的に同期出力が有効になり、描画がちらつかなくなる

修正前: tmux 3.4以降のセッション内でClaude Codeの画面が更新されるたびに、途中状態の描画が一瞬見えてちらついていた。

修正後: フレームが完成してから一括で反映されるため、ちらつきなくスムーズに画面が更新される。

実践例

tmuxでペインを分割して長時間の対話セッションを行う

tmux上で複数ペインに分割し、片方でClaude Codeを動かしながら別ペインでログを確認するような使い方で、応答が流れるように表示される際のちらつきがなくなり、読みやすさが向上します。

bash
tmux new -s dev
# ペインを分割してClaude Codeを起動
claude

SSH経由でリモートサーバー上のtmuxからClaude Codeを使う

リモートサーバーにSSH接続し、tmuxセッション内でClaude Codeを長時間動かす運用(バックグラウンドエージェントの監視など)でも、回線経由での描画のもたつきやちらつきが軽減されます。

tmuxとフルスクリーンレンダリングを併用する場合

CLAUDE_CODE_NO_FLICKER を設定してフルスクリーンレンダリングモードを使っている場合でも、tmux側の同期出力対応と合わせることで、さらに描画が安定します。

bash
CLAUDE_CODE_NO_FLICKER=1 claude

注意点

  • 同期出力はtmux 3.4以降でのみ有効になります。それより古いtmuxではこの恩恵は受けられませんが、動作自体には影響しません。
  • tmux内ではデスクトップ通知やプログレスバーが外側の端末に届かないなど、別の既知の制約があります。~/.tmux.confallow-passthrough on などを設定することで改善できます。詳細は端末設定のドキュメントを参照してください。
  • screenなど他のターミナルマルチプレクサは今回の修正の対象外です。

関連情報