pipane
A clean web interface for the pi coding agent. Open any pi conversation in pipane, open any pipane conversation in pi -- full interop.
pipane runs a local backend that launches pi in RPC mode and streams agent messages to a browser UI over WebSocket.
Walkthrough
Hero shot:

Walkthrough (GIF):

Quickstarts
Requires Node.js 22.19 or newer, matching the bundled Pi runtime and extension APIs.
npm install -g pipane
If pi is missing, install it like this:
npm install -g @earendil-works/pi-coding-agent
Explicit local dev deployment
On the pipane LXC, deploy the current working tree to the separate dev instance with:
npm run deploy:dev
This builds a release, atomically advances the pipane-dev systemd service, and verifies it on port 8223. It does not change the production instance on port 8222; source edits only become visible after the next explicit deployment.
journalctl -u pipane-dev -f
What you get
- Session list and clean UI for
pi - Real-time tool calls and streaming output, nicely crafted
- A nice session picker
- ChatGPT/Codex and Claude subscription usage in the input toolbar
- A large amount high quality "vibe-code".
Provider usage is supplied by the bundled @sreetej510/pi-usage Pi extension and uses Pi's existing authentication. Set PIPANE_USAGE_EXTENSION=0 when starting pipane to disable it.
Browser UI ownership
The renderer tree under src/client/ui/ is maintained directly by pipane. It is derived from the final pi-mono web-ui release (v0.75.3) with pipane's flat message renderer, steering editor, thinking display, attachment handling, and tool renderers integrated into one local path. Pipane does not patch or load an external pi-web-ui package. See UPSTREAM.md and THIRD_PARTY_NOTICES.md.
Testing
Run the complete local verification gate with:
npm run test:all
This typechecks the repository, runs Vitest with coverage thresholds, builds the production client/server, and runs the deterministic Playwright suite. The real-credential walkthrough is separate: npm run test:walkthrough.