piCode is an installable desktop GUI for the Pi coding agent. It keeps the UI and event-sourced architecture of T3 Code, while using Pi as its only agent provider.
Pi supplies the model catalog, provider credentials, sessions, extensions, skills, prompt templates, and compaction. piCode talks to Pi through its RPC protocol instead of adding adapters for other coding harnesses.
- Node.js 22+
- Vite+
- Pi, authenticated with at least one model provider
- Rust, for the desktop resource monitor
npm install -g @earendil-works/pi-coding-agent
curl -fsSL https://vite.plus | bashvp i
vp run dev:desktopDevelopment state is isolated under ~/.d4/dev. Linked git worktrees use their own ignored .d4 directory. Set D4_HOME or pass --base-dir when an explicit isolated location is needed.
vp run build:resource-monitor
vp run dist:desktop:dmg:arm64The macOS installer is written to release/piCode-<version>-arm64.dmg.
The packaged app includes Electron, the web renderer, and the local server. For compatibility, it continues to store production state under ~/.d4/userdata, use the d4 Electron profile, register d4://, and use bundle ID com.d4.desktop; no state migration is required.
On macOS, an in-place auto-update of an older installation may keep the existing d4.app folder name even though the app's contents and visible branding become piCode. This is expected and cosmetic; fresh installs use piCode.app.
vp run --filter @t3tools/desktop test
vp run --filter @t3tools/desktop typecheck
vp run --filter t3 typecheck
vp run --filter @t3tools/web typecheckUse a temporary D4_HOME for smoke tests and packaged launches. Never point piCode development or tests at T3 Code's ~/.t3/userdata.
See docs/providers/pi.md for the RPC adapter, supported commands, model discovery, event mapping, and test harness.
piCode is derived from T3 Code, licensed under MIT. See LICENSE.