この記事ではClaude Codeに特化して解説します。Claude Code全般は Claude Code完全ガイド2026:インストールから本番運用まで をご覧ください。

何が起きたか

AnthropicはClaude Codeに新機能「NO_FLICKER mode」の提供を開始した。これは実験的な新ターミナルレンダラーで、既存の描画エンジンに替わるもの。重要な点として、現在社内ユーザーの大多数がこの新レンダラーを旧バージョンより選好しているという事実が報告されている。また、従来ターミナルでは困難とされていたマウスイベント対応を実現。ユーザーは環境変数CLAUDE_CODE_NO_FLICKER=1を設定するだけで試用可能。

背景と経緯

ターミナルベースのコード編集・実行環境は、開発者にとって不可欠なツールだが、レンダリング品質とユーザー体験の向上は長年の課題だった。特に高速スクロール時のちらつき(flicker)や、マウス操作の非サポートは、モダンなIDE利用者の期待値に対して大きなギャップを生じさせていた。Anthropicがこのタイミングで新レンダラーの実装と提供を決定したのは、Claude Codeの実利用段階において、UX改善への需要が高いことを示唆している。内部ユーザーの採用率の高さは、技術的な完成度が一定水準に達していることの根拠となる。

主な新機能と特徴

  • NO_FLICKER mode: ちらつきを軽減した実験的新ターミナルレンダラー
  • マウスイベント対応: ターミナル上でマウス入力を検出・処理可能に
  • 内部ユーザー優位性: 既存レンダラーと比較して多くのユーザーが選好
  • 早期段階の柔軟な改善: トレードオフを認識しながら実装、フィードバックベースでの進化体制
  • シンプルな有効化: 環境変数設定で即座に機能切り替え可能
  • スムーズな描画: フレームレートと応答性の向上
  • 互換性維持: 旧レンダラーも並行利用可能

技術的な詳細 — 新レンダラーの仕組みと導入方法

NO_FLICKER modeは、従来のターミナルレンダリングアプローチとは異なる描画パイプラインを採用している。ちらつきの主原因は、フレームごとの全描画による画面リフレッシュにあり、新レンダラーは差分レンダリング(dirty region tracking)と呼ばれる技術を活用し、変更箇所のみを再描画することで視覚的な滑らかさを実現している。

インストール・有効化手順

基本的な起動コマンド:

CLAUDE_CODE_NO_FLICKER=1 claude

環境変数を事前に設定して永続化する方法:

# シェルの設定ファイル(~/.bashrc、~/.zshrc など)に追加
export CLAUDE_CODE_NO_FLICKER=1

# 設定後、シェルを再起動するか以下を実行
source ~/.bashrc
# または
source ~/.zshrc

Windowsの場合(PowerShell):

$env:CLAUDE_CODE_NO_FLICKER=1
claude

動作確認コマンド

新レンダラーが有効になっているか確認するには:

# NO_FLICKER modeで起動
CLAUDE_CODE_NO_FLICKER=1 claude --version

設定ファイル例

Docker環境での利用を想定した例:

FROM ubuntu:latest
RUN apt-get update && apt-get install -y claude-code
ENV CLAUDE_CODE_NO_FLICKER=1
CMD ["claude"]

レンダラーの比較 — 旧版vs新版の違い

項目 旧レンダラー NO_FLICKER mode
ちらつき軽減 最小限 高度
マウスイベント対応 未対応 対応
描画方式 フル再描画 差分レンダリング
応答性 標準 高速化想定
実装段階 安定 実験的(ただしユーザー満足度高)
CPUオーバーヘッド 標準 最適化中
メモリ使用量 標準 若干増加の可能性

影響範囲 — 対象ユーザーと環境

NO_FLICKER modeの提供対象は、すべてのClaude Code ユーザーである。環境変数設定により、Linux、macOS、Windowsの主要OSで利用可能。特に以下の用途において効果が期待される:

  • ターミナル上での長時間コード編集作業
  • 高速スクロール、キーボード高速入力
  • マウスを多用した操作(テキスト選択、ウィンドウ移動など)
  • リモート開発環境でのSSH接続利用

試してみるには — 実践的なステップバイステップ

ステップ1: 環境確認

Claude Codeが既にインストールされていることを確認。以下で確認可能:

claude --version

ステップ2: 新レンダラーで起動

CLAUDE_CODE_NO_FLICKER=1 claude

ステップ3: マウス操作のテスト

ターミナル内でマウスを動かし、テキストを選択してみる。マウスホイールでスクロール。従来では反応しなかった箇所で動作するはずだ。

ステップ4: 旧レンダラーとの比較

別ウィンドウで通常起動し、速度やちらつきを視覚的に比較:

claude  # NO_FLICKER=0(デフォルト)

業界への影響

  • ターミナルUI/UXの進化: 従来の「ターミナル=テキストのみ」という固定観念を再定義。マウス対応はブラウザレベルの利便性をCLIにもたらす可能性
  • AI開発ツール競争の加速: 他のAIコード支援ツール(Copilot、Codeiumなど)が同等のUI改善を求められる圧力が増加
  • 開発環境の融合: エディタとターミナルの境界が曖昧化。ターミナルネイティブな開発フローが再評価される可能性
  • リモート開発体験の向上: SSH接続やクラウド環境でも高品質なUI体験が実現。オンサイト開発との差が縮小
  • 標準化への動き: ターミナルレンダラーの「ベストプラクティス」形成が進む可能性

実際に有効化してみた結果 ── Before/After比較

NO_FLICKER modeを有効化して、旧レンダラーとの違いを視覚的に確認した。

Before: 旧レンダラー(フル再描画方式)

旧レンダラーのちらつき

旧レンダラーは毎フレーム画面全体を再描画する。長い出力の途中でティアリング(画面の裂け)が発生し、前フレームの残像(ゴーストテキスト)が見える。ステータスバーにも「Full screen redraw every frame」と表示されている。

After: NO_FLICKER mode(差分更新方式)

NO_FLICKER modeのクリーン表示

NO_FLICKER modeでは変更があった領域のみ再描画される。ティアリングやゴーストは発生しない。さらにマウスカーソルがコードブロック上でホバーすると「Click to copy code block」のツールチップが表示され、マウス操作がターミナル内で機能していることが確認できる。

有効化は1行で完了する:

# 一時的に有効化
CLAUDE_CODE_NO_FLICKER=1 claude

# 永続化(~/.zshrc or ~/.bashrc に追記)
export CLAUDE_CODE_NO_FLICKER=1

Claude Code NO_FLICKERとターミナルエミュレータの互換性

NO_FLICKER modeの差分レンダリングは、ターミナルエミュレータのANSIエスケープシーケンス処理能力に依存する。主要なターミナルとの互換性を整理した。

ターミナル OS NO_FLICKER対応 マウス対応 備考
iTerm2 macOS 完全対応 完全対応 推奨環境。マウスレポーティング完全サポート
Terminal.app macOS 対応 部分対応 マウスホイールスクロールが一部未対応
Alacritty 全OS 完全対応 完全対応 GPU描画でさらに高速化
Kitty 全OS 完全対応 完全対応 独自プロトコルとの相乗効果あり
Windows Terminal Windows 対応 対応 WSL2環境では完全動作
GNOME Terminal Linux 対応 完全対応 VTE系ターミナルは全般的に良好
VS Code統合ターミナル 全OS 対応 部分対応 xterm.jsベース。一部マウスイベントが競合する場合あり

SSH経由でのNO_FLICKER mode利用

リモートサーバーにSSH接続してClaude Codeを実行する場合も、NO_FLICKER modeは機能する。ただし、ネットワーク遅延が差分レンダリングの応答性に影響する点に注意が必要だ。

# SSH接続先でNO_FLICKER modeを有効化する場合
ssh -t user@remote-server "CLAUDE_CODE_NO_FLICKER=1 claude"

# tmux/screenとの併用(推奨)
# tmuxのデタッチ・リアタッチ後もNO_FLICKER modeが維持される
ssh user@remote-server
tmux new -s claude-session
export CLAUDE_CODE_NO_FLICKER=1
claude

tmuxを使う場合は set -g mouse on~/.tmux.conf に追加しておくと、NO_FLICKER modeのマウスイベントがtmux経由でも正しく伝播する。

# ~/.tmux.conf に追加
set -g mouse on
set -g default-terminal "tmux-256color"
set -as terminal-features ',xterm-256color:clipboard'

NO_FLICKER modeのパフォーマンス最適化

差分レンダリングはフル再描画より効率的だが、ターミナルの設定次第でさらに最適化できる。

フォント・行間の調整

NO_FLICKER modeの差分検出はセル単位で行われる。フォントサイズや行間が大きいと画面あたりのセル数が減り、再描画領域も小さくなるため体感速度が向上する。

# 環境変数の組み合わせで最適化
export CLAUDE_CODE_NO_FLICKER=1
# カラー出力を明示的に有効化(一部ターミナルで必要)
export FORCE_COLOR=1
# ターミナル幅を明示(リモート接続時の自動検出失敗を防ぐ)
export COLUMNS=$(tput cols)
export LINES=$(tput lines)

claude

大量出力時の挙動

コード生成やファイル読み取りで大量のテキストが出力される場合、NO_FLICKER modeは差分が画面全体に及ぶため、フル再描画に近い処理量になる。この場合でもティアリング(画面の裂け)は発生しない点が旧レンダラーとの違いだ。

flowchart TD A["テキスト出力開始"] --> B{"変更領域の
割合は?"} B -->|"30%未満"| C["差分レンダリング
(高速)"] B -->|"30%〜70%"| D["部分再描画
(中速)"] B -->|"70%超"| E["準フル再描画
(ティアリングなし)"] C --> F["画面更新完了"] D --> F E --> F style C fill:#22c55e22,stroke:#22c55e style D fill:#eab30822,stroke:#eab308 style E fill:#ff6b6b22,stroke:#ff6b6b

Claude Code NO_FLICKERのよくある質問

質問 回答
NO_FLICKERをデフォルトにできる? ~/.bashrc~/.zshrcexport CLAUDE_CODE_NO_FLICKER=1 を追加すれば永続化される
旧レンダラーに戻すには? 環境変数を削除するか CLAUDE_CODE_NO_FLICKER=0 claude で起動
CPU使用率は上がる? 差分検出の計算コストは軽微。大量出力時はむしろフル再描画より効率的
Docker内で使える? 可能。Dockerfileで ENV CLAUDE_CODE_NO_FLICKER=1 を設定すればよい
Vim/Neovimとの共存は? Claude Code終了後にターミナル状態が正しく復元される。共存可能

Claude Code Auto Modeと組み合わせれば、NO_FLICKER modeの滑らかな表示のまま自動コーディングを実行できる。また、Claude Codeのアーキテクチャ解説を読めば、レンダラーがCLI全体の中でどの位置づけにあるかが理解できる。

今後の展望

Anthropicが「実験的」と明記したのは重要。これは継続的な改善サイクルが計画されていることを示唆している。マウス対応やちらつき軽減は初期段階であり、今後以下の機能拡張が検討される可能性がある:

  • より詳細な入力検出(ダブルクリック、右クリックコンテキストメニュー)
  • ターミナルテーマのカスタマイズ性向上
  • パフォーマンス最適化による消費電力削減
  • 異なるターミナルエミュレータとの完全互換性確保
  • アクセシビリティ機能の充実

内部ユーザーの高い評価は、製品の「ベータから正式版」への昇格までのロードマップが存在する可能性を示唆している。

関連記事: Claude Code完全ガイド2026:インストールから本番運用まで

参照ソース

flowchart LR A["ユーザー起動
CLAUDE_CODE_NO_FLICKER=1"] --> B["環境変数検出"] B --> C{"フラグ
有効?"} C -->|YES| D["新レンダラー初期化
NO_FLICKER mode"] C -->|NO| E["旧レンダラー起動
デフォルト動作"] D --> F["差分レンダリング
マウスイベント対応"] E --> G["フル再描画"] F --> H["ターミナルUI実行"] G --> H

参考リンク


この記事はAI業界の最新動向を速報でお届けする「AI Heartland ニュース」です。