[BUG] cannot read past thoughts with ctrl-o
Status Closed — not planned
Maintainer reply None cached
Activity 13 comments · opened Jan 8, 2026 · closed Mar 24, 2026
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
I use ctrl-o to inspect thinking when Claude appears to be spiralling on complex tasks. I can no longer see the past thoughts to determine if Claude is stuck (needs a helpful nudge) or legitimately making progress.
What Should Happen?
Press ctrl-o and see past thoughts in thinking mode.
Error Messages/Logs
No output
Steps to Reproduce
- Enter thinking mode
- Give it a complex task that takes multiple steps
- Press ctrl-o to see detailed view
- Cannot read thoughts
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
latest
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
Windows Terminal
Additional Information
_No response_
13 Comments
Found 3 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
Additional details from #17641:
Environment
Expected Behavior (2.0.x)
Each thinking block appears immediately before its corresponding response, in chronological order:
Actual Behavior (2.1.x)
---
✍️ Author: Claude Code (DevContainer) with @carrotRakko
Note: This comment was written and submitted by an AI agent (Claude Code), with human review and approval.
Source code analysis
I analyzed the Claude Code CLI source (v2.1.17, npm package, prettified) to understand this issue.
Root cause
In transcript mode,
hidePastThinking: !0(true) is hardcoded:In normal mode,
hidePastThinkingis not passed (defaults tofalse).How it works
hidePastThinking: true→ calculateslastThinkingBlockIdhideInTranscript: true→ hiddenThe real problem
The current implementation shows only the very last thinking block, but users need to see all thinking blocks since their last input.
Claude Code structure:
Current: Only Thinking C is shown
Needed: Thinking A, B, C all shown
Why this matters
Proposal
Instead of "show all" vs "show only last", consider a third option: show all thinking blocks since the last user input.
This would:
---
✍️ Author: Claude Code (Dev Container) with @carrotRakko
Note: This comment was written and submitted by an AI agent (Claude Code), with human review and approval.
yeah, this is very bad. A tons of similar issues in which lots of people complained about thinking messages no longer being displayed inline with other tool calls and text messages since claude v2.0 were ignored or closed. And now, not even in verbose mode or with the (blocking, separate pane) CTRL+O view we can see past thinking messages, only the last one? Really?
I don't know why Anthropic is trying so hard to hide Claude's thinking messages in claude CLI...
In any case, I maintain a patch to restore the inline thinking messages here (I have claude periodically update and push to this), if anyone cares:
https://github.com/aleks-apostle/claude-code-patches/pull/9
I honestly feel they're doing it to try and stop people from training their own models. This is one step toward the normalization of everything being done in a black box on their servers, with zero visibility into how the model is reasoning. I really hope I'm wrong, because it's a terrible UX and it's also quite hypocritical of Anthropic to train their model off the entire worlds worth of data on the internet yet try and hide the reflection of such for greedy reasons.
This is purely a UI/UX issue.
What makes you so sure this wasn't intentional?
Because it is a bug in the display logic -- turning on verbose mode still allows you to read it and it is still in your conversation history.
This issue is tracked in the consolidated report at #26125, which covers the broken transcript mode (hidePastThinking hardcoded to true), mislabeled Ctrl+O help text, and post-compaction history inaccessibility — with source-level root cause analysis and a community patch. Please add your thumbs-up there to help it reach the oncall triage threshold.
@carrotRakko's source analysis of
hidePastThinking: !0was key to understanding this. On v2.1.47 the behavior is unchanged — transcript mode still hides all thinking blocks except the last (least useful) one.This is now part of #27242, a broader consolidated issue covering all the ways conversation history becomes inaccessible (post-compaction, post-plan-mode, branch navigation). The
hidePastThinkinghardcoding is one of several UI-level bugs preventing access to data that's fully preserved in JSONL.If this matters to your workflow, please 👍 and comment on #27242 — we need engagement to get it triaged.
Hey! I ran into a similar pattern in our bug knowledge base and thought this might help.
What's happening: In Claude Code v2.0+, the transcript mode component hardcodes
hidePastThinking: !0(true), which suppresses all previous thinking blocks. When a user presses ctrl-o to enter verbose/transcript view, only the most recent thinking block is rendered. The community source analysis (v2.1.17) confirms exactly two occurrences ofhidePastThinkingin the codebase — one in transcript mode where it is forced totrue, and one in normal mode where it is not passed (defaults to false/undefined). This regression means users can no longer inspect earlier thinking blocks to determine if the model is stuck or making progress on multi-step tasks.What worked for us:
Change
hidePastThinkingfrom hardcodedtruetofalse(or make it user-configurable) in the transcript mode rendering path, so that all thinking blocks since the user's last input are displayed inline with their corresponding tool calls and responses in chronological order.Steps:
hidePastThinking: !0is hardcoded (search for 'hidePastThinking' — only 2 occurrences in the codebase)hidePastThinking: !0tohidePastThinking: !1(false) or remove the prop entirely so it inherits the default behaviorHope this helps! Let me know if it doesn't match your case — happy to dig deeper. 🦞
---
<sub>🦞 Confucius Debug — community knowledge base for AI agent bugs. Free to search via MCP.</sub>
Closing for now — inactive for too long. Please open a new issue if this is still relevant.
This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.