Skip to content

Forward agent_needs_input notifications to Warp - #91

Draft
sohumgaitonde wants to merge 1 commit into
mainfrom
sohum/forward-agent-needs-input
Draft

sohumgaitonde wants to merge 1 commit into
mainfrom
sohum/forward-agent-needs-input

Conversation

@sohumgaitonde

@sohumgaitonde sohumgaitonde commented Oct 1, 2026 •

Copy link
Copy Markdown

Summary

Subscribes the warp plugin's Notification hook to Claude Code's agent_needs_input notification, in addition to idle_prompt. on-notification.sh already forwards the notification type generically, so no new script is needed and the notification message is never inspected.

Why

Claude Code can pause mid-session on a prompt that only a person can answer, for example a confirmation dialog, and emit agent_needs_input. This plugin only subscribed to idle_prompt, which means "finished and waiting for your next prompt". Warp therefore never learned that the session was stuck, and it kept reporting the run as in progress.

That matters most for unattended runs. Nobody is watching the terminal, so a session waiting on input can sit indefinitely. Warp has no signal to mark the run as blocked, notify anyone, or start any timeout, and the run only ends when a coarse infrastructure timeout eventually fires.

Forwarding agent_needs_input gives Warp that signal and keeps it separate from idle_prompt. idle_prompt means the session is done and idle, so Warp deliberately ignores it for status. agent_needs_input means Claude cannot continue without input.

This is intentionally generic. It reacts to Claude's own notification type, not to the content of any particular dialog, so it covers prompts we don't know about yet.

Changes

  • hooks/hooks.json: Notification matcher changes from idle_prompt to idle_prompt|agent_needs_input. The hook forwards the notification type unchanged and sends no input to Claude.
  • Bump the plugin to 2.3.0 in plugin.json and marketplace.json, so the Warp client can require a version that emits this event.
  • Update the README and script header comment.
  • Tests: the matcher includes agent_needs_input, plugin and marketplace versions stay in sync, and the agent_needs_input payload shape is correct.

Follow-up

This PR only emits the event. Warp currently ignores unknown event names, so there is no behavior change until a client PR parses it as a generic needs-input event, maps it to the existing blocked status, and requires plugin >= 2.3.0. That should merge after this version is published.

Testing

  • plugins/warp/tests/test-hooks.sh: 62 passed.
  • plugins/oz-harness-support/tests/test-hooks.sh: 34 passed.

Co-Authored-By: Warp agent@warp.dev

Subscribe the existing Notification hook to agent_needs_input in
addition to idle_prompt so Warp is told when Claude Code is blocked
waiting for user input. The hook script already forwards the
notification type generically and does not inspect the message.

Bump the warp plugin to 2.3.0 so the Warp client can require a version
that emits this event, and add tests covering the matcher, version
sync between plugin.json and marketplace.json, and the payload shape.

Co-Authored-By: Warp <agent@warp.dev>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant