Feature Request: Stream reasoning summaries incrementally to improve perceived responsiveness
Problem
Codex appears frozen/unresponsive during reasoning - users see nothing happening for extended periods (30+ seconds) while the model thinks, leading to poor perceived latency and user frustration.
This has driven complaints on social media that "Claude Code feels faster" regardless of actual response times. The perception issue is significant enough to affect user adoption and retention.
Root Cause
Reasoning content is currently accumulated silently in a buffer and only displayed after reasoning completes. Users stare at a static screen with no feedback, creating the impression that the tool has hung or is much slower than competitors.
Proposed Solution
Flush reasoning summary blocks to the UI immediately as they arrive rather than batching them until the end. This would provide continuous visual feedback during long thinking periods.
Key changes would include:
- Incremental display: Flush reasoning sections to history on section breaks instead of accumulating in a buffer
- Status header consistency: Extract bold header before flushing so status doesn't flash to "Working" between sections
- Default visibility: Show reasoning summaries in main chat view by default (currently hidden unless format is Experimental)
Prior Art & Related Issues
Research shows this has been a recurring pain point:
Related PRs (for context)
- #3432 (CLOSED, never merged) - "Fix missing first reasoning summary header in main TUI" - Attempted to fix reasoning only appearing in transcript mode
- #3071 (MERGED) - Introduced the
Experimentalreasoning summary format - #3138 (MERGED) - Added fallback behavior for reasoning summaries
- #7845 (MERGED) - "fix: omit reasoning summary when ReasoningSummary::None"
Related UI Responsiveness PRs
- #4864 (CLOSED) - "keep status indicator visible during streaming"
- #5504 (CLOSED) - "pending message while streaming final response"
User-Reported Issues
- #7076 - "Taking too long for a single reasoning step (>30 minutes)" - Multiple users reported feeling like nothing was happening
- #7090 - Users wanting to control reasoning visibility
Impact
The transcript_only: true default for non-Experimental formats appears to cause reasoning to be hidden from the main view for many model configurations. Users experience "long periods where it feels like nothing is happening at all" - a commonly cited reason for preferring competitor tools.
Fixing this would:
- Dramatically improve perceived responsiveness without changing actual performance
- Provide users with insight into model reasoning progress
- Reduce support burden from "is it frozen?" questions
- Close the UX gap with competing tools
Affected Files
Based on analysis, changes would likely touch:
codex-rs/tui/src/chatwidget.rscodex-rs/tui/src/history_cell.rscodex-rs/tui2/src/chatwidget.rscodex-rs/tui2/src/history_cell.rs
---
I'd be happy to contribute a PR implementing this if the team agrees this fits the roadmap. A prototype implementation exists in #8166 that demonstrates the approach.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗