pi-break
v1.0.2
Published
Skip a hung Pi tool call without pressing Escape. Keeps the turn and the queue.
Maintainers
Readme
pi-break
Skip a hung tool call in Pi without pressing Escape.
Escape aborts the whole turn and dumps your follow-up queue back into the editor. /break kills the stalled call, leaves the turn running, and leaves the queue alone.
Install
Requires Pi 0.84 or newer.
pi install npm:pi-breakPin a release:
pi install npm:[email protected]Git still works: pi install git:github.com/apoapostolov/[email protected].
Start a new Pi process after install. /reload is enough if you already have the package loaded.
If you dropped a raw pi-break.ts into ~/.pi/agent/extensions/, remove that copy first. Two copies register /break twice.
Usage
| Input | What happens |
| --- | --- |
| /break | Kill the oldest in-flight tool. Keep the turn. Do not retry that call. |
| /break try page=1 instead | Same, then that text is the next user message, ahead of any queued steer. |
| /again | Kill it, then tell the model to reissue that exact call once. |
| /again add a 30s timeout | Same, with that tweak. |
| Ctrl+Shift+B | Same as /break. Not Ctrl+\ (that is SIGQUIT in most terminals). |
| Escape | Unchanged. Hard abort. |
While a tool is running you get one line above the input (oldest call, the one /break hits). Spinner on the left, commands dim:
⠋ bash 1m47s · 1 pid · /break skip · /again reissue · Esc abortIdle /break hello just sends hello as a normal message.
What it can kill
/break SIGKILLs the tool's child process tree. That covers bash and anything else that spawn()s off the Pi process (foundry_use, pi.exec, long gh calls).
It cannot stop an in-process hang. web_search, subagent_wait, a silent model stream: those get marked, and if they never return, Escape is still the way out.
/break tells the model not to retry that call. /again pastes the original tool name and args and tells it to fire that call once. Neither re-spawns the process itself. Partial output is kept when there is any.
Why not avtc-pi-unstuck?
avtc-pi-unstuck is a timer. It applies a default bash timeout and nudges empty replies with continue. This package is a user skip: you decide the call is dead, you break it, the turn continues.
They can live together. They do different jobs.
Uninstall
pi remove git:github.com/apoapostolov/pi-breakDevelopment
git clone https://github.com/apoapostolov/pi-break
cd pi-break
pi -e ./src/index.ts