Claude CodeのCtrl+Oトランスクリプトビューアーの使い方
Ctrl+Oで開くトランスクリプトビューアーは、ツール実行の詳細やMCP呼び出し、他セッションのメッセージを展開表示する。classicとフルスクリーンで使える操作が異なる。
Ctrl+Oのトランスクリプトビューアーでできること
Ctrl+Oを押すと、通常のチャット表示から詳細なトランスクリプト表示に切り替わります。各アシスタントメッセージにタイムスタンプと使用モデルが表示され、普段は1行に畳まれているツール呼び出しの中身がすべて展開されます。
キーバインド上の正式名はapp:toggleTranscriptで、既定でCtrl+Oに割り当てられたGlobalアクションです。デバッグの場面で威力を発揮します。どのモデルが実際に応答したのか、MCPツールが何を呼んでいたのかを1件ずつ確認できます。もう一度Ctrl+Oを押すと通常表示に戻ります。
開き方と終了のしかた — レンダラーで挙動が変わる
Claude Codeには2種類のレンダラー(画面描画方式)があり、Ctrl+Oを押したときの見た目と操作性が異なります。classicレンダラーでは会話がターミナルのスクロールバックに流れ続けるのに対し、フルスクリーンレンダリングでは別画面(オルタネートスクリーンバッファ)に描画されます。
いま自分がどちらを使っているかは、/tuiを引数なしで実行すると確認できます。
/tuiトランスクリプトビューアーを終了するキーも両者で違います。classicレンダラーはq・Ctrl+C・Escのいずれかで抜けます。フルスクリーンレンダリングでは、Ctrl+O自体がトグルなので再度Ctrl+Oを押すか、Esc・qでも通常のプロンプトに戻ります。
フルスクリーンレンダリングだけの「lessライクな」操作
差が最も大きいのはここです。フルスクリーンレンダリングのトランスクリプトモードには、ページャーのlessに似た検索・移動キーが一式そろっています。classicレンダラーにはこれらの追加操作がなく、ターミナル自体のスクロール機能に頼ることになります。
| 操作 | classicレンダラー | フルスクリーンレンダリング |
|---|---|---|
| 会話内を検索する | classicレンダラー非対応(ターミナル検索が届かない) | フルスクリーンレンダリング/で検索、n/Nで次・前の一致へ |
| 先頭・末尾へジャンプ | classicレンダラー非対応 | フルスクリーンレンダリングg/G(Home/Endでも同じ) |
| 前後のプロンプトへジャンプ | classicレンダラー非対応 | フルスクリーンレンダリング{ / } |
| 1行・半ページ・全ページのスクロール | classicレンダラーターミナルのスクロール操作に依存 | フルスクリーンレンダリングj/k、Ctrl+u/Ctrl+d、Ctrl+b/Ctrl+f(Space/bでも全ページ送り) |
| 全ツール出力をまとめて展開・折り畳む | classicレンダラーCtrl+E(show all切り替え) | フルスクリーンレンダリング非対応(この切り替え自体が無い) |
| 会話をターミナルのネイティブなスクロールバックへ書き出す | classicレンダラー非対応 | フルスクリーンレンダリング[ |
| 会話を一時ファイルに書き出しエディタで開く | classicレンダラー非対応 | フルスクリーンレンダリングv($VISUALまたは$EDITOR) |
| ショートカット一覧を表示する | classicレンダラー非対応 | フルスクリーンレンダリング? |
Ctrl+Eの扱いは逆転している点に注意してください。classicレンダラーだけの機能で、フルスクリーンレンダリングのトランスクリプトモードにはshow-allの切り替えという概念自体がありません。
フルスクリーンレンダリングでCmd+Fやtmuxのコピーモードを使いたいときは、まずCtrl+Oでトランスクリプトモードに入り[を押します。会話全体(ツール出力を全展開した状態)がターミナルのネイティブなスクロールバックに書き出され、ターミナル標準の検索が使えるようになります。この書き出しはトランスクリプトモードをEscかqで抜けるまでの一時的なものです。次にCtrl+Oを押すと新しい状態から始まります。会話が長いセッションでは、この書き出し中に一瞬だけ操作が止まることがあります。フルスクリーンレンダリングの詳細な仕組みはClaude CodeのTUI(フルスクリーン)とはにまとまっています。
使っている環境で[の必要度が変わる
[が必要になるかどうかは、レンダラーだけでなくターミナルの種類にも左右されます。フルスクリーンレンダリングは会話をオルタネートスクリーンバッファに描画するため、ターミナル本体のネイティブなスクロールバックには何も残りません。ここは通常のターミナルもtmux内も条件は同じで、Cmd+FやCtrl+Shift+Fのようなターミナル標準検索、tmuxのコピーモード検索のどちらも会話を見つけられません。トランスクリプトビューアーの/検索か、[でスクロールバックへ書き出す操作が唯一の抜け道になります。
tmux内でフルスクリーンレンダリングを使う場合、[で書き出した後はtmux標準のコピーモードがそのまま使えるようになります。ただしiTerm2のtmux -CC統合モード(iTerm2が各tmuxペインをネイティブな分割ウィンドウとして描画するモード)ではフルスクリーンレンダリングのオルタネートスクリーンバッファとマウス追跡が正しく機能せず、マウスホイールが反応しない、ダブルクリックで表示が崩れるといった不具合が出ます。tmux -CCのセッションではフルスクリーンレンダリングを有効にしないのが無難で、/tui defaultでclassicレンダラーに切り替えれば通常のスクロールバック頼みの操作に戻れます。-CCを付けない通常のtmuxではこの問題は起きません。
VS Code統合ターミナルやiTerm2のように描画のスループットがボトルネックになりやすい環境では、そもそもフルスクリーンレンダリングを使う動機(ちらつきの解消、長い会話でもメモリ使用量が一定)が強い一方、Cmd+Fが届かない制約も同時に付いてきます。こうした環境でCtrl+Oを多用するなら、[でスクロールバックに書き出す操作か、vで一時ファイルに書き出してエディタで開く操作のどちらかを先に覚えておくと迷いません。
なお、マウスでテキストを選択している最中に/検索や{/}のジャンプ操作を挟んでも、選択自体は解除されません。トランスクリプトモードの検索・移動キーは選択状態を保ったまま動くので、目的の箇所までジャンプしてからコピーする、という順序で操作できます。
展開表示される3種類の内容
トランスクリプトビューアーが畳んだ行を開くのは、主に3か所です。
1つ目はアシスタントメッセージのメタ情報です。通常表示では見えないタイムスタンプと、そのメッセージを生成したモデル名が付きます。セッション中にOption+P(Windows/LinuxはAlt+P)でモデルを切り替えた履歴がある場合、どの返答がどのモデルによるものかをここで見分けられます。
2つ目はMCPツールの呼び出しです。通常表示ではまとめて「Called slack 3 times」のような1行要約に畳まれますが、トランスクリプトビューアーを開くと各呼び出しの引数と結果が個別に展開されます。MCPサーバーの挙動を1回ずつ追いたいときに要ります。
3つ目は他セッションからのメッセージです。クロスセッションメッセージング機能で届いたメッセージは、通常表示では「Message from @sender」という1行プレビューに畳まれます。トランスクリプトビューアーで開けば全文を読めます。仕組み自体はClaude Codeの@メンションでセッション間の連携を制御するで扱っています。
キーバインドをカスタマイズする
トランスクリプトビューアーの操作は~/.claude/keybindings.jsonで再割り当てできます。/keybindingsを実行すると、設定ファイルが無ければ作成した上で開きます。ファイルへの変更はClaude Codeの再起動なしに自動で反映されます。
対象はTranscriptというコンテキストです。用意されているアクションは次の2つだけです。
| アクション | 既定のキー | 内容 |
|---|---|---|
transcript:toggleShowAll | 既定のキーCtrl+E | 内容show all表示の切り替え(classicレンダラーのみ) |
transcript:exit | 既定のキーq, Ctrl+C, Escape | 内容トランスクリプトビューアーの終了 |
たとえばCtrl+Eをターミナルや他のアプリが奪っていて使えない場合、次のように別のキーへ移せます。
{
"$schema": "https://www.schemastore.org/claude-code-keybindings.json",
"bindings": [
{
"context": "Transcript",
"bindings": {
"ctrl+e": null,
"alt+e": "transcript:toggleShowAll"
}
}
]
}同じ設定ファイルで、チャット入力やダイアログなど他のコンテキストのキーもまとめて変更できます。既定のキー割り当て全体はClaude Codeショートカット一覧に一覧があります。
よくあるつまずき
?や{/}、[、vが反応しない
これらはフルスクリーンレンダリング限定の機能です。classicレンダラーで試すと何も起きません。まず/tuiでレンダラーを確認してください。
classicでCtrl+Eが使えない
フルスクリーンレンダリングのトランスクリプトモードには、そもそもshow-allの切り替えという概念がありません。classicレンダラー専用の機能だからです。
Ctrl+TとCtrl+Oを混同していないか
両方とも「トグルで何かを表示する」系のショートカットですが別物です。Ctrl+Tはステータス欄にClaudeのToDoチェックリストを出すだけで、実行中のバックグラウンドシェルやサブエージェントを見る画面ではありません。そちらは/tasksが担当します。
iTerm2のtmux -CCでCtrl+Oの拡張キーが効かない
tmux -CC統合モードではフルスクリーンレンダリング自体がうまく動きません。iTerm2がtmuxの各ペインをネイティブな分割ウィンドウとして描画してしまうため、オルタネートスクリーンバッファとマウス追跡が噛み合わず、Ctrl+Oでトランスクリプトモードに入れてもマウスホイールが無反応になったりダブルクリックで表示が崩れたりします。この場合はtmux -CCを諦めるか、/tui defaultでclassicレンダラーに切り替えてください。-CCを付けない通常のtmuxセッションなら、フルスクリーンレンダリングもトランスクリプトモードの拡張キーも問題なく動きます。
表示を減らしたいなら/focusを使う
Ctrl+Oは情報量を増やす方向のショートカットです。逆に減らしたいときは/focusを使います。最後のプロンプトと、diffstat付きのツール呼び出し1行要約、最終的な応答だけに絞った表示になり、この設定はセッションをまたいで保持されます。使い分けの詳細はClaude Codeの/focusビューで応答だけに集中するにあります。
まとめ
Ctrl+Oはツール呼び出しの詳細・応答したモデル・畳まれたメッセージを一気に開くショートカットです。同じキーでも、classicレンダラーとフルスクリーンレンダリングでは中身が別物と言っていいほど違います。まずは/tuiで自分がどちらを使っているかを確かめ、フルスクリーンレンダリングならlessライクな検索・移動キーまで使い倒すのが近道です。使えるキーが仕様通りに動かないと感じたときは、まずレンダラーの違いを疑ってください。