ターミナルがちかちかする。長いセッションになると画面が追えなくなる。Claude Codeを使い込んでいる開発者なら、一度はこの不満を感じたはずだ。
それを解決したのが NO_FLICKERモード と、その中に実装された Focus View(Ctrl+O) だ。単なるUI改善に見えるが、実際に使ってみるとエージェント開発のワークフローが変わる。
NO_FLICKERモードとは何か
Claude Code v2.1.89(2026年4月リリース)以降で使えるようになった実験的なフルスクリーンレンダリングモード。有効化は環境変数一つだ。
# NO_FLICKERモードを有効化(セッション単位)
CLAUDE_CODE_NO_FLICKER=1 claude
# 永続的に有効化(~/.zshrcまたは~/.bashrcに追記)
export CLAUDE_CODE_NO_FLICKER=1
従来のClaude Codeは、Claudeがツールを実行するたびに出力がストリームされ、画面全体が上に流れていく。tmuxやVS Code統合ターミナルでは特に顕著だった。
NO_FLICKERモードは、ターミナルの代替スクリーンバッファ(`vim`や`htop`と同じ仕組み)を使う。現在画面に表示されているメッセージだけをレンダリングするため、会話が長くなってもメモリ使用量が一定に保たれる。入力欄は画面下部に固定される。
3つの状態を持つCtrl+O
NO_FLICKERモードで真価を発揮するのが Ctrl+O だ。このキーは3つの状態を循環する。
| 状態 | Ctrl+O回数 | 表示内容 | 用途 |
|---|---|---|---|
| 通常プロンプト | 0回(初期状態) | 通常の会話画面 | 通常の作業 |
| トランスクリプトモード | 1回目 | 会話全体をlessスタイルで閲覧 | 過去のやり取りを検索・参照 |
| Focus View(フォーカスビュー) | 2回目 | 最後のプロンプト+ツール要約+最終レスポンス | 直近の作業結果を確認 |
3回目のCtrl+Oで通常プロンプトに戻る。
Focus Viewが特に便利な場面
v2.1.97(2026年4月8日リリース)で追加されたFocus Viewは、「直前のプロンプト・ツール呼び出しの1行サマリー(編集差分含む)・最終レスポンス」の3点セットを表示する。長い会話の中で「さっきClaudeが何をしたか」を素早く確認したい時に使う。
特に効果的なのは大規模なコード変更をした後だ。Claudeが10ファイルに変更を加えた後、「結局何を変えたんだっけ」を確認する時、Focus Viewならツール呼び出しが1行のdiff統計として見える。全部のツール出力を読み返す必要がない。
# 動作確認用のコマンド例
# 注意: 本番環境で使用する前に、必ずテスト環境で動作確認してください。
# 1. NO_FLICKERモードで起動
CLAUDE_CODE_NO_FLICKER=1 claude
# 2. Claudeに複数ファイルへの変更を依頼
# (例: "src/以下の全Pythonファイルにtype hintsを追加してください")
# 3. 作業完了後、Ctrl+Oを2回押してFocus Viewに移行
# → "最後のプロンプト / 編集ファイル数とdiff統計 / 最終レスポンス" が表示される
# 4. Ctrl+Oをもう1回でプロンプト画面に戻る
トランスクリプトモードの検索機能
Ctrl+O 1回目で入るトランスクリプトモードは、過去の会話履歴を検索できるlessスタイルのビューアだ。
# トランスクリプトモードのキーバインド
# /, n, N → 検索(/キーでクエリ入力、n/Nで次/前の一致箇所へ)
# j/k → 1行スクロール
# Ctrl+u / Ctrl+d → 半ページスクロール
# g / G → 先頭・末尾へジャンプ
# [ → 会話全体をターミナルのscrollbackバッファに書き出す
# (tmux copy modeやCmd+Fで検索可能になる)
# v → $VISUALまたは$EDITORで会話をファイル表示
# Esc / q → 通常プロンプトに戻る
重要な点は、NO_FLICKERモードでは会話が代替スクリーンバッファに存在するため、ターミナルのCmd+F検索は効かないことだ。代わりにCtrl+O(トランスクリプトモード)→`/`で検索する。あるいは`[`キーでscrollbackに書き出せば、tmuxのコピーモードやCmd+Fも使える。
マウスサポートという地味な革命
NO_FLICKERモードにはマウスサポートも含まれている。ターミナルでマウスが使える——これは地味に見えて実は大きい。
ツール出力(折りたたまれた状態)をクリックして展開できる。URLやファイルパスをクリックして直接開ける。テキストのダブルクリックで単語選択、トリプルクリックで行選択ができる。選択したテキストはクリップボードに自動コピーされる。
マウス操作が逆に邪魔な場合(SSH接続時などネイティブ選択を優先したい場合)は以下で無効化できる。
# マウスキャプチャを無効化しつつNO_FLICKERは維持
CLAUDE_CODE_NO_FLICKER=1 CLAUDE_CODE_DISABLE_MOUSE=1 claude
# マウスホイールのスクロール速度を調整(デフォルトは1)
export CLAUDE_CODE_SCROLL_SPEED=3 # vimと同じ感覚
私の評価:「落ち着く」という効果
正直に言うと、NO_FLICKERモードを使い始めた直後は「ビジュアル的な違いだけ」と思っていた。ところが1週間使い続けると、ターミナルがちかちかしないことで集中が維持しやすいことに気づいた。Claude Codeで長い作業をする時のフロー状態が、従来より途切れにくい。
Focus Viewについては、「さっき何をしたか」を確認するためにスクロールバックを読む時間が明らかに減った。特にdiff統計が1行で見えるのが実用的だ。10ファイル変更して「変更量が想定より多い」と気づくのが早くなった。
ただし、完璧ではない。iTerterm2のtmux統合モード(`tmux -CC`)とは非互換だ。SSH越しのマウス操作はターミナルの設定次第で動かないことがある。あくまで「research preview」なので、デフォルトでは無効になっている点も覚えておく必要がある。
設定ガイド:環境別の推奨設定
| 環境 | 推奨設定 | 注意点 |
|---|---|---|
| ローカルターミナル(iTerm2/Kitty/WezTerm) | CLAUDE_CODE_NO_FLICKER=1 |
マウスサポート最も安定 |
| VS Code統合ターミナル | CLAUDE_CODE_NO_FLICKER=1 |
URLはCmd+clickを使う(xterm.js判定) |
| tmux(通常) | CLAUDE_CODE_NO_FLICKER=1 + set -g mouse on |
tmux.confでマウスモード有効化が必要 |
| iTerm2 tmux統合(-CC) | 非推奨 | 代替スクリーンバッファと非互換 |
| SSH越し | CLAUDE_CODE_DISABLE_MOUSE=1も追加 |
OSC 52シーケンスのブロックに注意 |
参考・出典
- Claude Code公式ドキュメント: Fullscreen rendering — Anthropic(参照日: 2026-04-11)
- Claude Code v2.1.97 リリースノート: focus view, live status refresh — Buttondown(参照日: 2026-04-11)
- Claude Code GitHub Releases — Anthropic(参照日: 2026-04-11)
- Anthropic Fixes Claude Code Terminal Flickering with NO_FLICKER — Piunika Web(参照日: 2026-04-11)
あわせて読みたい:
- AIエージェント構築完全ガイド — Claude Codeを使ったエージェント開発の全体像
- AIエージェントツール比較ガイド — Claude Code以外のエージェントツール選定
この記事はAIgent Lab編集部がお届けしました。