Background
Pi's own docs (`usage.md:308`) confirm it "intentionally does not include ... background bash." Every `bash` call in Pi blocks the whole session until it completes — no way to kick off a long-running command and keep working while it runs, unlike Claude Code's `run_in_background` support.
Why this matters
Called out as a high-priority want, not just a nice-to-have — a real speed/throughput win for any workflow that involves long-running commands (test suites, builds, installs) during a session. Being fully blocking on every bash call is a real productivity tax compared to Claude Code.
Scope (as raised)
- Background execution — a way to launch a bash command without blocking the session, using Pi's extensibility (custom tool registration) since there's no native primitive.
- Completion watchers / tagging — some mechanism to be notified (or have a background job "tagged" so the agent/user knows) when a backgrounded command finishes, rather than having to poll manually.
Note
Given Pi's extension API is fairly rich (custom tools, process spawning already proven out by `dispatch.ts`'s subagent work, event hooks), there's a real chance we can build something better-designed than a bare background-bash primitive — worth exploring alongside the plan-mode/task-tracking issue (#TBD) since both lean on the same "build it ourselves with Pi's extensibility" approach.
No implementation yet — this issue is to track the want and scope the build.
Background
Pi's own docs (`usage.md:308`) confirm it "intentionally does not include ... background bash." Every `bash` call in Pi blocks the whole session until it completes — no way to kick off a long-running command and keep working while it runs, unlike Claude Code's `run_in_background` support.
Why this matters
Called out as a high-priority want, not just a nice-to-have — a real speed/throughput win for any workflow that involves long-running commands (test suites, builds, installs) during a session. Being fully blocking on every bash call is a real productivity tax compared to Claude Code.
Scope (as raised)
Note
Given Pi's extension API is fairly rich (custom tools, process spawning already proven out by `dispatch.ts`'s subagent work, event hooks), there's a real chance we can build something better-designed than a bare background-bash primitive — worth exploring alongside the plan-mode/task-tracking issue (#TBD) since both lean on the same "build it ourselves with Pi's extensibility" approach.
No implementation yet — this issue is to track the want and scope the build.