Components · Control
Interrupt Bar
Stop and steer, visible for the entire run. Stop is never destructive: partial work is kept and the receipt says exactly what survived. Steering redirects the agent mid-run and gets an immediate acknowledgment, because a correction that might have been ignored is worse than no correction at all.
When to use
Any agent run longer than a few seconds. Pin it to the run, not the transcript, so it stays reachable while the user scrolls. The stop affordance earns delegation: users hand more work to agents they can visibly take back.
Behavior
Shows the current activity and elapsed time. Stop transitions to a receipt stating what was preserved. The steer input stays live during the whole run; each steer renders an acknowledgment line so the user knows which version of the plan is executing.
Usage
tsx
import { InterruptBar } from "@/components/interrupt-bar"; <InterruptBar activity="Comparing 14 flights against your $400 cap…" elapsed={12} keptOnStop="14 search results saved to the thread" onStop={stopRun} onSteer={(msg) => agent.redirect(msg)} acknowledgment={lastAck} />
Install
shell
npx shadcn@latest add https://agent-pitstop.vercel.app/r/interrupt-bar.json
Or copy the source from registry/interrupt-bar. MIT licensed.
Searching 3 flight providers…0s