[BUG] Intermediate text between tool calls is not streamed to the user

Resolved 💬 1 comment Opened Apr 16, 2026 by zeitgeistlive Closed Apr 16, 2026

Description

When a model response interleaves text and tool calls (e.g. text → tool → tool → text → tool → text), the intermediate text segments between tool invocations are not streamed to the user in real time. Instead, they appear to be buffered and delivered only after all tool calls in the response have completed — or in some cases swallowed entirely.

Expected behavior

Each text segment should be streamed to the user as soon as it is produced by the model, regardless of whether it precedes, follows, or sits between tool calls. This would allow the user to see incremental progress and reasoning as the assistant works through a multi-step response.

Actual behavior

Only the final text block (after the last tool call) appears to stream normally. Text emitted between tool calls is either:

  • Delivered all at once after the surrounding tool calls finish, or
  • Not displayed at all until the full response is complete

Reproduction

Ask the model to perform a task that naturally produces a text → tool → text → tool → text pattern — for example, explaining what it will do, running a command, commenting on the result, running another command, and summarizing. Observe that intermediate commentary does not appear incrementally.

Why this matters

Intermediate text is how the assistant communicates reasoning, status updates, and context to the user during multi-step work. Without streaming, long tool-heavy responses feel like a black box until they complete, reducing trust and making it harder to interrupt or redirect when something goes wrong.

Environment

  • Claude Code CLI and Desktop (macOS)
  • Also observed via MCP-based clients

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗