
Claude Codeの /tui fullscreen でチラつきフリーなTUIを試してみた
どうも!オペ部の西村祐二です!
以前から CLAUDE_CODE_NO_FLICKER=1 という環境変数でflicker-freeなレンダリングを試すことはできていましたが、Claude Code v2.1.110でresearch previewとしてコマンド /tui fullscreen として提供されるようになりました。会話をそのまま保持したまま切り替えられるとのことだったので、普段使いのターミナルで試してみました。
/tui fullscreenモードとは
Fullscreen rendering - Claude Code Docs によると、vimやhtopと同じ「alternate screen buffer」にUIを描画するモードです。表示中のメッセージだけを描画ツリーに保持するため、会話が長くなってもメモリ使用量が一定に保たれ、ターミナルに送られるデータ量が減ることでちらつきが抑えられる仕組みになっています。
VS Codeの統合ターミナル、tmux、iTerm2などで描画スループットがボトルネックになっていた場面に効果が出やすいようです。fullscreenという名称ですが、ターミナルの描画面を乗っ取るという意味で、ウィンドウを最大化するわけではありません。
試してみる
環境
- Claude Code v2.1.114
- macOS 15.6
1. /tui fullscreenで切り替える
会話の途中でも /tui fullscreen を実行するだけで切り替えられます。コマンドを実行すると tui 設定が保存されてCLIが再起動し、それまでの会話は維持された状態でfullscreenモードに入ります。
/tui fullscreen
切り替え後は、入力ボックスが画面下部に固定されます。従来はツール出力のストリーミング中に入力ボックスの位置が動いてしまうことがありましたが、この挙動は解消されていました。

2. /tuiで現在のレンダラーを確認
引数なしで /tui を実行すると、現在アクティブなレンダラーが表示されます。デフォルトモードに戻したいときは /tui default を使います。
/tui
# Current renderer: fullscreen
/tui default
# デフォルトモードに戻す
3. 検索とスクロールの操作
fullscreenモードでは、ターミナルネイティブの Cmd+f 検索やtmuxのsearchが使えなくなります。会話の内容がalternate screen bufferに閉じているためです。Claude Code側が独自のキーバインドでスクロールと検索を提供する作りになっています。
fullscreenモード中のスクロール
PgUp/PgDn… 半画面スクロールCtrl+Home… 会話の先頭へジャンプCtrl+End… 末尾へジャンプし自動追従(auto-follow)を再開- マウスホイール … 数行ずつスクロール
- MacBookなど専用キーがない環境では
Fn+↑= PgUp、Fn+↓= PgDn、Fn+←= Home、Fn+→= End が代替(末尾ジャンプはCtrl+Fn+→)
上にスクロールするとauto-followが一時停止し、Ctrl+End か最下部までスクロールすると追従が再開します。
transcript modeでの検索
Ctrl+o で「transcript mode」に切り替わり、less風の操作で検索やスクロールバックへの書き出しができます。再度 Ctrl+o、または Esc / q で戻ります。
/… 検索を開く(Enterで確定、Escで元の位置に戻って閉じる)n/N… 次/前のマッチへジャンプ(検索バーを閉じた後も有効)j/k(または↑/↓) … 1行スクロールg/G(またはHome/End) … 先頭/末尾へジャンプCtrl+u/Ctrl+d… 半画面スクロールCtrl+b/Ctrl+f(またはSpace/b) … 1画面スクロール[… 会話全文を端末ネイティブのスクロールバックへ書き出す(Cmd+fやtmuxのcopy modeから検索できるようになる)v… 会話を一時ファイルへ書き出して$VISUAL/$EDITORで開く
以下はtranscript modeから検索したときの挙動

4. 自動スクロール(auto-follow)の制御
fullscreenモードの初期状態は、新しいメッセージが来ると自動で末尾にスクロールする挙動になっています。上にスクロールした間だけ追従を一時停止する挙動ですが、読んでいる途中で飛ばされるのが気になる場合は、/config 画面の Auto-scroll を off にすると自動追従そのものを無効化できます。
/config
Auto-scrollをoffにしても、パーミッション確認などの応答が必要なダイアログは末尾までスクロールされる仕組みになっています。

5. テキスト選択とコピー
従来のTUIでは、ドラッグ選択はターミナル(iTerm2やVS Codeの統合ターミナル)自身が処理していて、Claude Code側は「マウスがドラッグされた」ことすら関知していませんでした。コピーも選択後に Cmd+C を押すか、ターミナルの「Copy on select」設定に依存する形です。
fullscreenモードでは、Claude Code自身がマウスイベントを捕獲する「mouse capture」モードに入ります。ドラッグするとClaude Codeが独自に選択範囲を描画し、マウスボタンを離した瞬間に自動でクリップボードへコピーされる挙動に変わります。

ツール出力のクリック折りたたみ、URLクリックで開く、マウスホイールでの会話スクロールといった機能をアプリ側で扱うためにマウスイベントを捕まえている結果、テキスト選択もアプリ内処理になるという関係です。
実際に使っていて気になったのは、長めのツール出力をドラッグで範囲選択しようとしたときにスクロールがうまく追従せず、画面の上下にはみ出した部分を選びにくい場面がありました。
そういうときは無理にドラッグで選ぼうとせず、Ctrl+o でtranscript modeに入ってから [ で端末のスクロールバックへ書き出すか、v で $VISUAL / $EDITOR に流し込むほうが安定して選択・コピーできそうでした。
ちなみに、SSHやtmux越しの環境ではOSC 52やtmux paste bufferにフォールバックする形で動きますが、ターミナル設定によってはブロックされることもあります。ネイティブ選択を維持したい場合は、CLAUDE_CODE_DISABLE_MOUSE を併用してマウスキャプチャだけを無効化する方法も用意されていました。
CLAUDE_CODE_NO_FLICKER=1 CLAUDE_CODE_DISABLE_MOUSE=1 claude
テキスト選択は従来どおりターミナルネイティブの挙動に戻せる逃げ道として使えそうです。ただし代わりに「クリックでツール出力を展開」「URLクリックで開く」「マウスホイールで会話スクロール」は使えなくなります。
従来モードと比較
従来モードと比較して、以下の違いが確認できました。
| 項目 | 従来 | fullscreen |
|---|---|---|
| 入力ボックス | 出力に押されて移動 | 画面下部に固定 |
| メモリ | 会話長に比例 | 一定(可視分のみ保持) |
| 会話位置 | 通常スクロールバック | alternate screen buffer |
| テキスト検索 | Cmd+f / tmux search |
Ctrl+o → / |
| テキスト選択 | 端末ネイティブ | アプリ内選択、選択で自動コピー |
| ツール結果 | そのまま表示 | クリックで折りたたみ展開 |
試してみた感想
長時間タスクの実行結果がストリーミングで流れてくる場面で、画面全体がリフレッシュされる頻度が減るのは快適だなと感じました。
一方で、Cmd+f でのネイティブ検索やドラッグ選択に慣れていると、最初は操作感の違いに戸惑いました。transcript modeを軸にした操作に慣れてしまえば、現実的な落としどころに収まりそうです。
まとめ
Claude Code v2.1.110で追加された /tui fullscreen は、会話を保持したままflicker-freeなレンダリングへ切り替えられる機能でした。
- ちらつきが気になっていたVS Codeや特定のターミナル環境では体感の差が出やすい
- ネイティブ検索・選択の操作は変わるため、慣れとショートカット把握が必要
- 戻したいときは
/tui defaultですぐに切り替えられる
普段どおりに使いこなすには、transcript mode の操作に慣れておく必要がありそうです。あわせて、/config の Auto-scroll やCLAUDE_CODE_SCROLL_SPEED などの関連設定も調整しておくとよさそうです。
誰かの参考になれば幸いです。
参考リンク:










