Feature: Real-time steering — send message mid-generation without queueing

Open 💬 7 comments Opened Jun 2, 2026 by andrewkangkr

Summary

Currently, typing a message while Claude is generating queues it until the current response completes. There is no way to steer an in-progress response without pressing Escape (which discards all in-progress work).

The docs mention \"Interrupt and steer\" but this is not implemented — messages are queued, not injected. Related: #36326 (closed as not planned), #30492, #41665.

Desired behavior

Allow users to send a priority message that interrupts Claude at the next tool-call boundary, redirecting the current task without losing all context or requiring a full restart.

Rough UX options:

  • Ctrl+Enter (or similar chord) sends a \"steering\" message with priority over the queue
  • A dedicated /steer <message> command injects a message at the next safe breakpoint
  • Messages sent while Claude is running are tagged [steering] and processed at the next tool boundary

Why this matters

  • Wasted work: Escape discards everything in progress; users must restart from scratch
  • Docs-reality gap: The existing documentation claims this is possible, creating user confusion (see #36326)
  • Hook workaround is unreliable: PreToolUse hook + file polling has been proposed but hook blocking itself has known bugs (#21988, #4362) and no confirmed working examples exist

Workaround (current)

None that works reliably. Escape → retype context is the only option.

References

  • #36326 — Docs say Enter interrupts mid-task, but it only queues (closed not planned)
  • #30492 — Real-time steering: priority message channel for redirecting Claude mid-execution
  • #41665 — Support an interrupt message on stdin
  • #21988 — PreToolUse hooks exit code ignored

View original on GitHub ↗

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