Windows: Full conversation re-renders on each tool call, causing duplicate display and potential token waste
Description
On Windows 11, Claude Code's TUI re-renders the entire visible conversation history every time a tool call completes. This causes the same response blocks to appear multiple times on screen, making the output very hard to read.
Steps to reproduce
- Run Claude Code on Windows 11 (tested on v2.1.89 and v2.1.90)
- Ask a question that triggers multiple sequential tool calls (e.g., Glob + Read + Bash)
- Observe the terminal output
Expected behavior
Each tool call should update in-place. The previous conversation turn should appear only once.
Actual behavior
The previous turn's full response is re-displayed from scratch every time a new tool call starts or completes. For a turn that triggers 5+ tool calls, the same response block appears 5+ times stacked vertically.
Example
A single turn with ~8 tool calls (Glob x2, Read x3, Bash x1, Read x4) produced output where the same assistant response block was repeated 5 times before the final answer appeared:
> user prompt
- [assistant response - full block]
Simmering...
> user prompt <- repeated
- [same assistant response - full block again]
Simmering...
> user prompt <- repeated
- [same assistant response - full block again]
... (repeats 5 times total)
Potential impact
- Readability: Very hard to follow what is happening when the same content repeats 4-5 times
- Token consumption: If the re-rendered conversation is being sent back to the model (not just a display issue), this could explain the excessive token usage many users have reported. Each tool call would re-send the full visible conversation, multiplying input tokens significantly.
Environment
- OS: Windows 11 Pro 10.0.26200
- Terminal: Windows Terminal
- Shell: bash (Git Bash)
- Claude Code: v2.1.90
- Model: Claude Opus 4.6 (1M context)
- Node: v24.14.0
- npm: 11.9.0
Notes
- PostToolUse hooks are configured but the re-rendering happens regardless of hook output
- The issue may be related to TUI in-place update not working correctly on Windows terminals
- Japanese text (multi-byte characters) in the output may contribute to rendering calculation issues
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗