$ cat ~/map/pi-tool-timeout.md
pi-tool-timeout
Timeout overlay for foreground tools: bash and powershell default to 300s, grep and find get a wrapped deadline.
extensions✓ Sep 18
Facts
- repository
- github.com/GhabiX/pi-tool-timeout ↗
- GitHub Stars
- ★ 0
- Forks
- 0
- license
- Apache-2.0
- npm / mo
- —
- last push
- Sep 17, 2026
install
Run pi install git:github.com/GhabiX/pi-tool-timeout (local-path and project-local installs are documented too); targets pi 0.85.x and needs Node 22.19.0 or newer, then restart pi or run /reload## TL;DR
A pi extension that gives foreground tool calls a default timeout: bash and powershell run with 300 seconds when no explicit budget is set, grep and find are wrapped with a wall-clock deadline, and explicit timeouts are always honored.
## Key points
- $Two adapters, one policy: a tool_call hook fills pi's native timeout field with 300 for bash and powershell calls that omit it, while grep and find — whose native schemas have no timeout field — get one added and their execute wrapped with a wall-clock deadline on session_start.
- $The overlay does not own tools: the live implementation stays the owner for native-timeout tools, so shell settings, renderers, spawn hooks, and other bash extensions keep working, and the model learns the corrected default through a per-tool guideline returned as systemPrompt.
- $Installing does not enable grep and find: registration happens after the default active set exists and the previous active set is restored, so the wrapped pair only applies once you enable those tools yourself.
- $Explicit positive timeouts are preserved everywhere, and parent cancellation is never turned into a timeout.
- $Scope by design: no retry policy, no command classification, no background execution, no UI, and no configuration system — servers, watchers, and genuinely long-lived work belong in a separate background-terminal tool.
- $Composition limit: same-name extension tools are first-wins in pi, so the overlay wraps the builtins only when no earlier extension registered the same name and cannot stack on an existing override.
## FAQ
Q What timeout do my bash commands get?
300 seconds when the call sets no explicit timeout; an explicit positive value is honored as-is. The only technical upper bound is Node's timer limit of roughly 24.8 days, matching pi's native bash timer.
Q Does installing it change which tools are active?
No. The wrapped grep and find registration restores the previous active set, so installing the package does not enable them; the wrap applies when you enable those tools yourself.
Q Can it sit on top of another extension that already overrides bash?
No — same-name extension tools are first-wins in pi. The overlay wraps the builtins only when no earlier extension registered the same name.
## References
## Related entries
$ pi-conversation-timer
Statusline timer that counts only active task seconds, frozen while pi waits, with a /chat-time stats popup.
$ aft
Sensorimotor-cortex layer that ships thin adapters for Pi and OpenCode, replacing raw read/write/edit/bash with semantic operations.
$ pi-coding-agent-action
GitHub Action that runs the pi coding agent in CI for comment-driven reviews, audits, and PR triage.
## Guides
Last updated: Sep 18, 2026