A native-feeling desktop shell for the Pi Coding Agent, built with Tauri + Lit.
Forks and extends gustavonline/pi-desktop
with a real PTY terminal, auto session naming, and tuned Windows + macOS builds.
| Feature | Description |
|---|---|
| PTY terminal | Real pseudo-terminal backend (Rust portable-pty) instead of xterm.js addons. Interactive programs, proper resize, no chat-timeline leakage. |
| Auto session naming | Sessions get LLM-generated titles via pi --print. Works with every model in the picker. No config parsing or manual API calls. |
| Streaming performance | Text rendering coalesced to one per animation frame (~60fps) — no stutter in long sessions. |
| Combined CI | Auto-release on merge to main (build + tag + publish) + manual workflow_dispatch for Windows .exe + macOS .dmg. |
| Windows polish | Native-style window controls on sidebar, JetBrains Mono as default font, custom blue app icon. |
| Clean docs | README, CHANGELOG, release notes, and TODO all rewritten for this fork. |
For the full upstream feature set (multi-workspace, streaming chat, slash palette, model picker, themes, packages), see the original project.
- Multi-workspace shell with pin/reorder, project-aware sessions
- Streaming chat with tools, thinking timeline, and interactive workflows
- Real PTY docked terminal — interactive shell inside the chat pane
- Auto-naming — sessions title themselves after the first message
- Per-turn stats — tps (tokens/sec) + cache hit-rate after each agent turn
- Modified files cards — file cards with diff stats; red/green unified diff in file panel
- Composer slash palette with deterministic built-in + extension commands
- Model/provider picker with auth management and diagnostics
- Right-side file split with resize and drag/drop
- Package manager (
pi install/remove/update/list) with settings UI - Themes & settings — bundled themes, CLI path override, update checks
Full capability map: FEATURE_MAPPING.md.
Releases at github.com/LCorleone/pi-desktop/releases.
A single workflow_dispatch builds both platforms.
Merging a releases/v*.md to main triggers release-on-merge.yml for fully automated builds + version tagging:
| Platform | Artifact |
|---|---|
| Windows | NSIS .exe installer |
| macOS | Unsigned Intel .dmg (x86_64, cross-compiled on Apple Silicon) |
Releases are drafts tagged manual-build-<N>. Check the full Releases list for the latest.
Windows: SmartScreen → More info → Run anyway.
macOS: xattr -cr "/Applications/Pi Desktop.app" after mounting.
Install the Pi CLI:
npm install -g @earendil-works/pi-coding-agentThe app shows an onboarding card if pi is missing. Requires Node.js ≥ 22.
npm install
npm run tauri dev # dev
npm run tauri build # production (artifacts: src-tauri/target/release/bundle/)Prerequisites: Node.js ≥ 22, Rust toolchain, Tauri 2 platform deps.
- Lit + TypeScript frontend (not React)
- Tauri 2 / Rust backend — PTY, RPC process management, filesystem
pi --mode rpc— JSON-RPC line protocol over stdin/stdout for AI chatpi --print— one-shot mode for title generationportable-pty— real terminal backend for the docked shell
Deeper: docs/ARCHITECTURE.md, docs/CAPABILITY_MODEL.md.
Fork of gustavonline/pi-desktop. The desktop shell,
multi-session runtime, and extension model are the original project's work.
MIT — see LICENSE.
