Tech BlogAWSツール & 技術ブログ

Claude Codeが見違える。CLAUDE_CODE_NO_FLICKER=1で手に入る快適なターミナル体験

はじめに

Claude Codeを毎日使っていると、「動作自体に不満はないけど、ターミナルの表示がちらつくのが気になる」と感じたことはないでしょうか。

ツール実行時に画面がガタガタ動く、長い会話でスクロールが不安定になる——使えないわけではないけど、地味にストレスが溜まるタイプの問題です。

実は、環境変数を1つ設定するだけでこれらが劇的に改善されます。

CLAUDE_CODE_NO_FLICKER=1

今回はこの環境変数で何が変わるのか、設定方法、そして「やらなくてもいい人」についても正直に書きます。


設定方法

設定は非常にシンプルです。

その場で試す場合

CLAUDE_CODE_NO_FLICKER=1 claude

起動コマンドの前に付けるだけです。まずはこれで試してみてください。

恒久的に設定する場合

echo 'export CLAUDE_CODE_NO_FLICKER=1' >> ~/.zshrc
source ~/.zshrc

bashユーザーの場合は ~/.bashrc に読み替えてください。一度設定すれば、以降は普通に claude と打つだけで有効になります。


何が変わるのか

1. 画面のちらつきが消える

最もわかりやすい変化です。

この環境変数を有効にすると、Claude Codeはターミナルの代替スクリーンバッファ(alternate screen buffer) を使ったフルスクリーン描画モードに切り替わります。vimやhtopのような表示方式です。

これにより、ツール実行中の出力ストリーミングや、スクロール位置のジャンプによるちらつきが解消されます。長い会話でも画面が安定しているのは、想像以上に快適です。

2. 入力ボックス内でマウスカーソルが動かせる

個人的に一番大きい変化はこれです。

従来のClaude Codeでは、入力ボックス内のカーソル移動はキーボードの矢印キーに頼るしかありませんでした。長いプロンプトを書いている途中で「あ、前半のここを直したい」と思ったとき、矢印キーを連打するか、一度全部消してやり直す——そんな経験がある方も多いはずです。

NO_FLICKERモードでは、入力ボックス内をマウスでクリックしてカーソルを移動できます。 普通のテキストエディタと同じ感覚でプロンプトを編集できるようになります。

「え、そんなこと?」と思うかもしれません。でも実際に体験すると、これがないと元に戻れないレベルの快適さです。地味な改善こそ日常の体験を大きく変えるという好例だと思います。

3. メモリ使用量が安定する

通常モードでは、会話が長くなるにつれてターミナルのスクロールバッファにすべての出力が蓄積されていきます。これが長時間のセッションでメモリ使用量が増加する原因の一つです。

フルスクリーンモードでは画面に表示されている分だけがバッファに保持されるため、会話の長さに関係なくメモリ使用量がほぼ一定に保たれます。長時間のコーディングセッションでも安定して動作するのは嬉しいポイントです。

4. 入力ボックスが画面下部に固定される

通常モードではストリーミング中に入力ボックスの位置がずれることがありますが、フルスクリーンモードでは常に画面下部に固定されます。

ツールの出力が長くなっても、入力位置を見失うことがありません。

5. ツール出力の展開・折りたたみがマウスでできる

ツールの実行結果をマウスクリックで展開・折りたたみできるようになります。長いログ出力やファイル内容を確認したいときにキーボード操作なしで切り替えられるのは、ちょっとしたことですが便利です。


デメリット・注意点

万能ではないので、注意点も把握しておきましょう。

ターミナルのスクロールバックが使えない

フルスクリーンモードはvimと同じ代替スクリーンバッファを使うため、ターミナルのネイティブなスクロールバック(上にスクロールして過去の出力を見る)ができません。 Cmd+F(macOS)でのターミナル内テキスト検索も効きません。

過去の出力を検索したい場合は、Claude Code内の検索機能(Ctrl+O/)を使う形になります。

マウスキャプチャとの干渉

マウス操作がClaude Code側にキャプチャされるため、tmuxのコピーモードやターミナルのネイティブなテキスト選択がそのままでは使えない場合があります。

マウスキャプチャだけを無効にしたい場合は、以下の環境変数を追加で設定できます。

export CLAUDE_CODE_DISABLE_MOUSE=1

これでフルスクリーン描画のメリットは維持しつつ、マウスはターミナル側の操作に戻せます。ただし、その場合はクリックでのカーソル移動やツール出力の展開・折りたたみは使えなくなります。

一部のターミナル環境で問題が出る可能性

まだリサーチプレビュー段階の機能であるため、すべてのターミナルで完璧に動作する保証はありません。特にiTerm2の tmux -CC 統合モードとの互換性に問題がある点は確認されています。

一般的なターミナル(macOSのターミナル.app、iTerm2の通常モード、Alacritty、WezTermなど)では問題なく動作します。


やらなくてもいい人

正直に言えば、以下に当てはまる人は無理に設定する必要はありません。

  • そもそもちらつきが気にならない人 — 感じ方は人それぞれです。現状で不満がないなら、わざわざ変える理由はありません
  • ターミナルのスクロールバックを頻繁に使う人 — 過去の出力を Cmd+F で検索する習慣がある人は、フルスクリーンモードだとその操作ができなくなるため、逆にストレスが増えるかもしれません
  • tmuxのコピーモードに依存している人 — マウスキャプチャとの干渉を避けるための追加設定が必要になります
  • 会話が短い人 — 1回のセッションが短ければ、メモリ安定化のメリットはあまり感じないでしょう

逆に、長時間のセッションが多い人長いプロンプトを頻繁に書く人画面のちらつきが気になっていた人には強くおすすめします。


まとめ

  • CLAUDE_CODE_NO_FLICKER=1 でフルスクリーン描画モードが有効になる
  • 画面のちらつきが消え、長時間セッションでもメモリが安定する
  • 入力ボックス内でマウスカーソルが動かせるのが地味だけど最大の恩恵
  • ツール出力の展開・折りたたみもマウスでできるように
  • ターミナルのスクロールバックが使えなくなる点には注意
  • まずは CLAUDE_CODE_NO_FLICKER=1 claude で試してみて、合わなければ戻せばいいだけ

環境変数を1つ足すだけで、Claude Codeの日常的な使い心地が一段上がります。 まだ設定していない方は、ぜひ今日から試してみてください。