[FEATURE] Desktop app: inject queued messages mid-task between tool calls (CLI steering parity)

Open 💬 6 comments Opened Jun 27, 2026 by mar-cun

Summary

In the Claude Code CLI/TUI, a message typed while Claude is working is picked up between tool calls ("steering") — it's injected into the agent loop mid-task without waiting for the turn to finish. In the Claude Desktop app's Code window, a message typed during a running task is held and only delivered after the turn fully completes. The two front-ends share the same engine, so this is a parity gap rather than a missing capability.

Current behavior (Desktop Code window)

  1. Start a task that runs several tool calls.
  2. Type a follow-up / course-correction while it's still working.
  3. The message sits queued and is not delivered until the current turn ends — there's no way to steer mid-task.

Expected behavior (match the CLI)

A message queued during a running turn is injected between tool calls, letting you redirect mid-task ("focus on X", "skip Y", "pivot to Z") — exactly as the CLI/TUI already does.

Why this looks low-cost (not a new capability)

From inspecting the local desktop build (Electron app, Windows package 1.15962.0.0):

  • The main process already spawns the engine in streaming-input mode--input-format stream-json, with StreamingInput / inputStream / canUseTool present in the engine bridge.
  • The engine is the same local claude-code install the CLI uses, so the steering capability exists in the engine itself.
  • Per the app's own main_window/index.html (<!-- this is the html for app title bar and error UI. everything else gets loaded from claude.ai -->), the chat/Code UI is served remotely; the local app is just the title bar + engine bridge.

So the live input channel that makes mid-turn injection possible already exists locally. The remaining gap is on the (server-served) UI side: it withholds the queued message until the turn completes instead of feeding it into the existing stream. This reads as "let the existing streaming channel accept queued text mid-turn," not "build something new."

Environment

  • Claude Desktop app 1.15962.0.0 (Windows)
  • Engine: claude-code 2.1.x (same build the CLI uses)

Related

  • #30492 (Real-time steering) — same underlying idea, but framed generically for "Claude Code." Filing this separately because it's specific to the Desktop Code window and documents that the streaming input channel already exists locally. Happy to consolidate into #30492 if maintainers prefer.

View original on GitHub ↗

This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗