Claude Media
Claude CodeのTUI(フルスクリーン)とは — 仕組みと制約

Claude CodeのTUI(フルスクリーン)とは — 仕組みと制約

Claude CodeのTUI(フルスクリーンレンダリング)の仕組み・有効化方法・セッション再起動で引き継がれる設定・/tuiが切り替えを拒否する条件をまとめます。

Claude CodeのTUI(フルスクリーンレンダリング)は、vimhtopと同じくターミナルの代替スクリーンバッファに画面を描画し、表示中のメッセージだけを再描画するモードです。tmuxやVS Code統合ターミナルでのチラつきを消し、長い会話でもメモリ使用量を一定に保ちます。一方でマウス操作や検索の挙動が通常モードと変わり、セッションを再起動できないケースもあります。この記事では仕組みから有効化、再起動時に引き継がれる設定、tmux併用時の注意点までを扱います。

Claude CodeのTUIとは何か

TUIという呼び方は俗称で、公式には「フルスクリーンレンダリング(fullscreen rendering)」と呼びます。通常のレンダラーはターミナルの標準スクロールバックにそのまま出力を流しますが、フルスクリーンレンダリングは代替スクリーンバッファを使い、画面に見えている範囲だけをレンダーツリーに保持します。会話が長くなってもメモリ使用量が増え続けないのはこのためです。

チラつきが目立ちやすいのは、レンダリングのスループットがボトルネックになりやすいVS Code統合ターミナル・tmux・iTerm2です。作業中にターミナルのスクロール位置が勝手に先頭へ戻る、ツール出力がストリームするたびに画面がフラッシュする、といった症状に心当たりがあれば対象です。

「フルスクリーン」はウィンドウを最大化することとは無関係です。 vimが画面全体を描画で占有するのと同じ意味であり、ウィンドウサイズにかかわらず動作します。

フルスクリーンレンダリングは研究プレビューという位置づけで、利用者の少ない端末や特殊な構成では描画が乱れる可能性があります。保存済みのtui設定を無視していつでも通常レンダラーへ強制的に戻したい場合は、CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1を設定します。

有効化と切り替えの操作

会話の途中でも/tui fullscreenを実行すれば、その場でフルスクリーンレンダリングに切り替わります。設定はtuiという項目に保存され、次回以降のセッションにも引き継がれます。

/tui fullscreen

元のレンダラーに戻すには/tui default、現在どちらが有効かを確認するには引数なしで/tuiを実行します。環境変数での切り替えも可能です。

CLAUDE_CODE_NO_FLICKER=1 claude

2026年5月6日以降に初めてClaude Codeを使い始めたユーザーは、フルスクリーンレンダリングが既定で有効です。それより前から使っているユーザーは、tui設定を保存していなければ引き続き通常レンダラーのままで、/tui fullscreenを実行するかセッション開始時のダイアログで切り替えを承諾すると移行します。スクリーンリーダーモードを使っている場合は、アタッチしたバックグラウンドセッションを除いて常に通常レンダラーが使われ、tui設定は無視されます。

セッション再起動時に何が引き継がれるか

/tuiによる切り替えは、実は会話を保持したままセッションを再起動する処理です。次の要素は再起動後も引き継がれます。

引き継がれる要素補足
画面上の会話内容補足/rewindで巻き戻した場合は、巻き戻し後の状態から再起動(ディスク上の完全な履歴ではない)
権限モードとeffortレベル補足直前のセッションの設定をそのまま維持
直近に選択したモデル補足/modelで最後に選んだモデルを引き継ぐ
--allowed-tools/--disallowed-toolsのルール補足起動時に指定したツール許可・拒否ルール

/rewindで最初のメッセージより前まで巻き戻していた場合、再起動後は空の会話として立ち上がります。ディスクに保存された長い履歴があっても、画面に表示されていない部分は引き継ぎの対象になりません。

/tuiが切り替えを拒否する条件

再起動そのものが実行できないケースもあります。次のいずれかに該当すると、Claude CodeはCannot switch renderers in this sessionという理由付きのメッセージを表示し、設定を保存せずに切り替えを中止します。

  • --system-promptでシステムプロンプトを置き換えて起動している
  • --toolsでツールの許可リストを指定して起動している
  • --setting-sourcesで設定の読み込み元を制限して起動している
  • フックやSDKの権限更新が、そのセッション限定でdeny/askルールを追加している

いずれも「再起動後のプロセスに引き継げない制約」という共通点があります。起動フラグやセッション限定のルールは、新しいプロセスを起動し直す/tuiの仕組みでは再現できません。CI・自動化・ラップスクリプト経由で--tools--system-promptを指定してClaude Codeを起動している場合、そのセッションでは/tuiによるレンダラー切り替えを想定しないほうが安全です。

マウス操作とネイティブ選択の使い分け

フルスクリーンレンダリングはマウスイベントを捕捉してアプリ内で処理します。クリックで入力位置を指定する、/@の候補をクリックで選ぶ、権限プロンプトの選択肢をクリックする、ドラッグでテキストを選択する、といった操作がすべてアプリ内で完結します。選択したテキストはマウスを離した瞬間にクリップボードへ自動コピーされ、コピー先はmacOSのpbcopy、LinuxのWayland/X11向けクリップボードツール、WindowsとWSLのPowerShellSet-Clipboardと環境ごとに使い分けられます。

マウス捕捉が最も摩擦を生むのはSSH経由やtmux内での作業です。ターミナル本来のネイティブ選択(tmuxのコピーモードやKittyのヒントなど)を使いたい場合、ターミナルごとに決まった修飾キー(Terminal.appならFn、iTerm2ならOption、VS Code系ならShift)を押しながらドラッグすると、Claude Codeを経由せずにターミナル側の選択が使えます。マウス捕捉自体を常時オフにしたいならCLAUDE_CODE_DISABLE_MOUSE=1、クリック系だけ無効化してホイールスクロールは残したいならCLAUDE_CODE_DISABLE_MOUSE_CLICKS=1(v2.1.195以降)を設定します。

tmuxで使うときの3つの注意点

フルスクリーンレンダリングはtmux内でも動きますが、3つの制約があります。

  1. マウスホイールにはtmuxのマウスモードが必要: ~/.tmux.confset -g mouse onが無いと、ホイールイベントはClaude Codeではなくtmuxに渡ります。PgUp/PgDnによるキーボードスクロールはマウスモードの有無に関係なく動きます。
  2. iTerm2のtmux統合モード(tmux -CC)とは非互換: 統合モードはtmuxペインをiTerm2のネイティブ分割として描画するため、代替スクリーンバッファとマウストラッキングが正しく機能しません。通常のtmux(-CC無し)であれば問題なく動きます。
  3. tmux 3.6系までは同期出力に非対応: 対応していないバージョンでは再描画時のチラつきが直接実行時より目立つことがあります。最新のtmuxへの更新か、tmux外での実行が回避策です。

画面に古い文字が残るときの対処

Windows Terminalなど一部のConPTY系ターミナルでは、前フレームの断片が画面に残り続けることがあります。公式のトラブルシューティングに記載された既知の症状で、回避策としてCLAUDE_CODE_ALT_SCREEN_FULL_REPAINT=1を設定すると、差分描画ではなく毎回画面全体を再描画するようになります。なお、Windows上のバックグラウンドセッションやagentビューでは、この全体再描画が既定で自動的に有効になります。

スクロールと検索はどう変わるか

会話が代替スクリーンバッファに描かれるため、ターミナル本来のCmd+fやtmuxのコピーモード検索は会話の中身を見つけられません。Ctrl+oでトランスクリプトモードに入ると、lessに近いナビゲーションが使えます。

画面は既定で最新の出力に自動追従(auto-follow)しますが、上にスクロールすると追従は一時停止し、代わりに「Jump to bottom」ボタンと未読件数の表示が現れます。Ctrl+Endを押すか手動で最下部まで戻ると追従が再開します。この自動追従自体が不要な場合は、/configの「Auto-scroll」からオフにできます。

キー動作
/動作検索を開く。入力してマッチを探し、Enterで確定・Escでキャンセル
n/N動作次/前のマッチへ移動
{/}動作前/次のプロンプトへジャンプ
[動作会話全体をターミナルのネイティブスクロールバックに書き出す
v動作会話を一時ファイルに書き出し$VISUAL/$EDITORで開く

ターミナル本来の検索機能をどうしても使いたいときは、Ctrl+oでトランスクリプトモードに入ってから[を押すと、会話全体がテキストとして通常のスクロールバックに書き出されます。以降はCmd+fやtmuxのコピーモードがそのまま使えますが、この状態はEscまたはqでトランスクリプトモードを抜けるまでの一時的なものです。

フルスクリーン既定化はいつ・誰に影響するか

2026年5月6日という区切りは、既存ユーザーの体験を変えない設計です。それより前から使っているユーザーは、明示的に/tui fullscreenを実行するか起動時のダイアログで承諾しない限り、通常レンダラーのままで居続けられます。研究プレビューという位置づけのまま既定値を新規ユーザーだけに適用する切り分けは、後方互換を壊さずに新しい実装を広げる典型的なやり方です。

ただし--system-prompt--tools--setting-sourcesを使った起動やセッション限定の権限ルールを日常的に使うワークフローでは、この既定化の恩恵をそのまま受けられません。CI・自動化・カスタムラッパー経由でClaude Codeを起動しているチームほど、フルスクリーンレンダリングの対象から外れやすい構図です。

よくある質問

TUIとフルスクリーンレンダリングは同じものですか

同じ機能を指します。「TUI」はターミナルユーザーインターフェースの略で通称として使われますが、公式ドキュメントとコマンド名(/tui)の表記は「フルスクリーンレンダリング」です。

/tui fullscreenを実行したら会話が消えませんか

消えません。表示されている会話・権限モード・effortレベル・直近のモデル選択・起動時のツールルールを引き継いだまま再起動します。ただし/rewindで最初のメッセージより前まで巻き戻していた場合は、再起動後の会話が空になります。

なぜ/tuiがレンダラーを切り替えてくれないことがあるのですか

--system-prompt--tools--setting-sourcesといった起動フラグや、フック・SDK経由でそのセッション限定に追加されたdeny/askルールは、プロセスを再起動する/tuiの仕組みでは再現できません。該当する場合はエラーメッセージに理由が表示され、設定は変更されません。

tmux内でホイールスクロールが効きません

~/.tmux.confset -g mouse onを追加していない可能性があります。マウスモードが無効だとホイールイベントはtmux側に渡り、Claude Codeには届きません。

まとめ

Claude CodeのTUI(フルスクリーンレンダリング)は、代替スクリーンバッファと表示範囲だけのレンダーツリーによって、チラつきを消しつつメモリ使用量を一定に保つ仕組みです。/tui fullscreenでいつでも切り替えられ、会話・権限モード・モデル選択・起動時のツールルールを引き継ぎますが、--system-prompt--toolsのようなセッション固有の制約があると切り替え自体が拒否されます。マウス操作と検索は通常レンダラーと勝手が変わるため、tmuxやSSH越しに使う場合は環境変数での調整も選択肢に入ります。キーボード操作全般はClaude Codeショートカット一覧tui設定を含む全体像はClaude Code設定ガイド、Claude Codeの基本機能はClaude Code(クロードコード)とはで確認できます。

この記事を共有:XはてブLinkedIn