MemoryLake
Back to all articles
TutorialNovember 11, 2026·11 min read

What Is Transcript View in Claude Code? What Ctrl+O Shows, How Default, Verbose, and Focus Views Differ, and Where Earlier Messages Go After Compaction (2026)

Claude Code's main screen shows you a tidy version of what happened. A shell command becomes one line with a count of its output. Three MCP calls become a single line saying the server was called three times. Thinking shows up as a short stub. That keeps the screen readable, until something goes wrong and you need to see exactly what Claude read, ran, and decided.

That's what transcript view is for. Anthropic's interactive mode reference describes the shortcut this way: Ctrl+O will "Toggle transcript viewer". It "Shows detailed tool usage and execution, with a timestamp and the model used on each assistant message."

This guide covers what transcript view shows, the shortcuts inside it, how the default, verbose, and focus views differ, how thinking appears, how transcript view works in Claude Desktop, and an important limit: after a session is compacted and resumed, earlier messages aren't on screen at all. They're in a file on disk.

What Ctrl+O shows

On the main screen, Claude Code collapses detail. The settings reference describes the default: "By default, the transcript collapses each tool call to a short summary, such as the command Claude ran and a line count of its output, and you press Ctrl+O to switch the whole transcript to the expanded view when you want the details."

Transcript view expands that. According to the interactive mode reference, it shows:

  • Tool usage and execution in detail, instead of one-line summaries.
  • A timestamp and the model used on each assistant message.
  • Lines that collapse by default, such as MCP calls shown as a single line.
  • Messages from your other sessions, which the main view shows as a one-line preview.

The model label matters more than it looks. If a session switched models partway through, transcript view tells you which model produced which message.

The timestamps follow your time format setting. The settings reference says the format applies to "the timestamps in the transcript viewer", and that in the viewer "the pattern is the whole timestamp, so add date directives when you want the date there."

Shortcuts inside transcript view

Anthropic's reference lists the keys available while the viewer is open:

  • ? toggles the keyboard shortcut help panel. This needs fullscreen rendering.
  • { and } jump to the previous or next user prompt, "like vim paragraph motion." This also needs fullscreen rendering.
  • Ctrl+E toggles show all content. It's "Available in the classic renderer only, not in fullscreen rendering".
  • [ writes the full conversation to your terminal's native scrollback.
  • v writes the conversation to a temporary file and opens it in your editor.
  • q, Ctrl+C, or Esc exit transcript view.

To check which renderer you're using, the reference says to run /tui with no argument.

In fullscreen rendering, transcript mode also gains search. The fullscreen documentation says it "gains less-style navigation and search": / opens search, n and N jump between matches, and g and G jump to the top or bottom.

Why your terminal search can't find the conversation

If you use fullscreen rendering and press Cmd+F in your terminal, you may find nothing. The fullscreen documentation explains why: "Your terminal's Cmd+f and tmux search don't see the conversation because it lives in the alternate screen buffer, not the native scrollback."

Transcript view is the way around that. Press Ctrl+O, then:

  • [ "writes the full conversation into your terminal's native scrollback buffer, with all tool output expanded." After that, your terminal's own search, copy mode, and other tools work on it. Anthropic notes that long sessions may pause for a moment while this happens.
  • v "writes the conversation to a temporary file and opens it in $VISUAL or $EDITOR."

The scrollback copy is temporary. The documentation says it lasts until you exit transcript mode, and "The next Ctrl+o starts fresh."

Default, verbose, and focus views

Transcript view is one of three ways Claude Code can show a session. The viewMode setting picks which one a session starts in. The settings reference describes the options:

  • default: "the normal transcript with truncated tool output"
  • verbose: "the transcript with full tool output"
  • focus: "only your last prompt, a one-line summary of tool calls with edit diffstats, and the final response." Focus view needs the fullscreen renderer.

Each has a separate way to turn it on:

  • Verbose. The verbose setting shows "every tool call's full input and output inline as it happens, which is useful when you're debugging a hook, an MCP server, or a long shell command." It appears in /config as Verbose output. The --verbose flag does the same for one session.
  • Focus. Run /focus. The fullscreen documentation says "The setting persists across sessions. Run /focus again to turn it off."

When more than one is set, the order is documented. viewMode "overrides both the sticky /focus selection and the verbose setting." And --verbose "takes precedence over this key for one session".

The practical choice is about what you're doing. Default keeps the screen readable. Verbose is for debugging as it happens. Focus is for long tasks where you only care about the result. Transcript view is the one you open on demand when you need to look back.

How thinking appears

Thinking has its own setting. By default, Claude Code shows a collapsed stub. The settings reference explains: "When unset or false, the Anthropic API redacts thinking blocks and Claude Code shows a collapsed stub."

If you want more, showThinkingSummaries changes that: "Set it if you want the full summaries when you expand thinking with Ctrl+O." With it on, "you see full thinking summaries when you expand thinking with Ctrl+O".

So pressing Ctrl+O without that setting expands tool calls but shows thinking only as a stub. Claude Desktop handles this with a separate view mode, covered next.

Transcript view in Claude Desktop

Claude Desktop's Code tab has its own version. Anthropic's Desktop documentation says: "View modes control how much detail appears in the chat transcript." You can switch from the session menu beside the session title, or "press Ctrl+O on macOS or Windows to cycle through them."

The Desktop modes are:

  • Normal: "Tool calls collapsed into summaries, with full text responses"
  • Thinking: "Tool calls collapsed into summaries, plus Claude's thinking"
  • Verbose: "Every tool call, file read, and intermediate step Claude takes, plus Claude's thinking"

Anthropic's suggestion: "Use Thinking to follow Claude's reasoning with tool calls still collapsed. Use Verbose when debugging why Claude took a particular action." It also notes that the Thinking mode appears in the menu only after Claude has produced thinking in the session you're viewing.

What transcript view doesn't show after compaction

Here's the limit that catches people. Transcript view shows the conversation Claude Code has loaded. After a long session compacts, the earlier part of that conversation is a summary, not the original messages.

The context window documentation says: "When a long session compacts, Claude Code summarizes the conversation history to fit the context window." Some things come back from disk afterward, such as the project-root CLAUDE.md, auto memory, and the plan Claude wrote in plan mode. The conversation itself is replaced by its summary.

The fullscreen documentation describes what that looks like when you return to a session: "If you close a compacted session and resume it, scrolling up stops at the Conversation compacted row, and your earlier messages stay on disk in the transcript file."

That's the key distinction. The earlier messages aren't gone. They're in the file, and they're no longer on screen or in Claude's context. Anthropic's advice: "To get a detail from those messages, ask Claude to look it up in that file."

The sessions documentation explains what resuming restores. Conversation history covers "the messages, tool calls, and results", and for a compacted session it adds: "The messages that the last compaction summarized aren't loaded again."

The same thing applies when you bring a cloud session down to your terminal. Our guide to teleporting a compacted Claude Code session covers the warning Claude Code shows in that case.

Where the full transcript is saved

The file behind all of this is plain JSONL. The sessions documentation says: "By default, Claude Code stores transcripts as JSONL at ~/.claude/projects/<project>/<session-id>.jsonl, where <project> is your working directory path with non-alphanumeric characters replaced by -."

It isn't meant to be parsed directly. Anthropic says "The entry format is internal to Claude Code and changes between versions, so scripts that parse these files directly can break on any release." For a readable copy, it points to /export.

The files don't last forever. The sessions documentation lists cleanupPeriodDays as the setting to "Change the 30-day retention". Our guide to finding Claude Code session history covers where sessions live and how to resume them.

What people try first

Searching with the terminal's own search. In fullscreen rendering, the conversation is in the alternate screen buffer. Press Ctrl+O, then [.

Expecting Ctrl+O to show full thinking. Without showThinkingSummaries, thinking stays a collapsed stub.

Setting verbose and wondering why focus view is ignored. viewMode overrides both, and --verbose overrides viewMode for one session.

Scrolling up past a compaction. The view stops at the compaction row. The earlier messages are in the transcript file.

Parsing the JSONL directly. The format changes between versions. Use /export.

The Fix: Use transcript view to see what really happened

Step 1: Open it when something looks wrong

Press Ctrl+O to see full tool usage, timestamps, and which model answered each message. Use / to search in fullscreen rendering.

Step 2: Pick a default view that fits your work

Set viewMode to default, verbose, or focus. Use --verbose when you need full output for one session.

Step 3: Turn on thinking summaries if you need them

Set showThinkingSummaries to true if you want to read Claude's thinking when you expand it.

Step 4: Write down decisions before they get compacted

If a long session will compact, ask Claude to record the decisions that matter where a later session will read them, such as CLAUDE.md or a project file. The transcript keeps the history, but a summary is what Claude carries forward.

Setting this up in MemoryLake

Transcript view is a record of one session. It shows what Claude read and ran, but after compaction the earlier part lives only in a file on disk, and resuming doesn't load it back. The decisions you'd want a later session to know don't belong only in a transcript.

MemoryLake is a memory layer for keeping project decisions, conventions, and the reasons behind them in one place you maintain, available to assistants you connect, such as ChatGPT, Claude Code, and Codex.

You write the entries yourself, in your own words. Nothing is read out of, written to, or deleted from your Claude Code transcripts, your session files, your CLAUDE.md, your auto memory, or any vendor's store. Transcript view, compaction, and session storage work the way Anthropic describes them.

Step 1: Create an API key

Sign in and generate a key from the dashboard. The key belongs to your MemoryLake workspace and is separate from your Claude account.

The MemoryLake console showing the API keys screen, where a new key is created and copied for use in an agent
The MemoryLake console showing the API keys screen, where a new key is created and copied for use in an agent

Step 2: Upload your first memories

Start with what you'd otherwise dig out of a transcript: why a library was chosen, which approach was ruled out, and what the next session should know. One decision per entry.

The MemoryLake workspace with the first documents uploaded, listing each file as it becomes searchable memory
The MemoryLake workspace with the first documents uploaded, listing each file as it becomes searchable memory

Step 3: Connect your AI & agents

Connect Claude Code and any other assistants you use. A new session can draw on those entries without searching an old transcript.

The MemoryLake integrations screen listing the AI clients and agent frameworks that can be connected to the memory layer
The MemoryLake integrations screen listing the AI clients and agent frameworks that can be connected to the memory layer

What this changes in practice

The first difference is less digging. Decisions are written down instead of buried in a long session.

The second is a better start after compaction. What matters doesn't depend on whether the summary kept it.

The third is shared context across tools. The same entries are available to the other assistants you use.

Best practices for Claude Code transcript view

Use Ctrl+O when you need detail. It shows tool usage, timestamps, and the model for each message.

Use [ for terminal search. It writes the conversation to native scrollback in fullscreen rendering.

Use v for a long read. It opens the conversation in your editor.

Pick one way to set the view. viewMode overrides /focus and verbose.

Turn on thinking summaries if you need them. Otherwise thinking stays a stub.

Look in the transcript file after compaction. Earlier messages stay on disk.

Use /export for a readable copy. The JSONL format changes between versions.

Conclusion

Transcript view in Claude Code is what Ctrl+O opens: the detailed version of the session, with full tool usage, a timestamp and model on each assistant message, and lines that the main view collapses. In fullscreen rendering, it adds search, and [ or v hand the conversation to your terminal or editor. The viewMode setting chooses between default, verbose, and focus views, and showThinkingSummaries decides whether thinking expands or stays a stub.

After a session compacts and you resume it, transcript view stops at the compaction row. The earlier messages are still in the transcript file under ~/.claude/projects, for 30 days by default, and Claude can look them up there if you ask. Write down the decisions that matter, so the next session doesn't depend on that file.

Frequently asked questions

What does Ctrl+O do in Claude Code?

It toggles the transcript viewer, which shows detailed tool usage and execution, with a timestamp and the model used on each assistant message.

What is the difference between verbose and transcript view?

Verbose shows full tool output inline as Claude works. Transcript view is what you open with Ctrl+O to see the expanded session on demand.

What is focus view in Claude Code?

It shows only your last prompt, a one-line summary of tool calls with edit diffstats, and the final response. Run /focus to turn it on, and it needs fullscreen rendering.

Why can't I see Claude's thinking in transcript view?

By default, the API redacts thinking blocks and Claude Code shows a collapsed stub. Set showThinkingSummaries to true to see full summaries when you expand thinking with Ctrl+O.

Why does transcript view stop at Conversation compacted?

After a compacted session is resumed, the earlier messages aren't loaded again. Anthropic says they stay on disk in the transcript file.

Where does Claude Code save transcripts?

By default, as JSONL files under ~/.claude/projects/<project>/, one per session. They're kept for 30 days unless you change cleanupPeriodDays.

How do I search a Claude Code conversation?

In fullscreen rendering, press Ctrl+O and then / to search, or press [ to write the conversation to your terminal's scrollback and use your terminal's search.