A desktop workbench for the Pi coding agent. Workspace-first, not chat-first.
Install Β· Quick Start Β· Architecture Β· Distribution
Daily coding-agent work means juggling repos, branches, and sessions, and the current tools are chat-first. pidex is the kitchen bench: every active repo, its branch, its sessions, and what's stale, visible in one glance.
App booting, workspaces populate.
The workbench, fully loaded.
You need the Pi CLI. The dashboard reads existing sessions from ~/.pi/agent/sessions.
$ brew tap echohello-dev/tap
$ brew install --cask pidexOr download pidex-mac-arm64.dmg (Apple silicon) or pidex-mac-x64.dmg (Intel) from Releases. First launch is right-click β Open; the DMG is unsigned until we add a Developer ID.
The echohello-dev tap is the Winget source until echoHello.Pidex is in the community repo. WinGet cannot add a GitHub repo directly, so the tap ships a one-liner that installs the latest manifest:
> irm https://raw.githubusercontent.com/echohello-dev/homebrew-tap/main/winget/install-pidex.ps1 | iexScoop from the same tap:
> scoop bucket add echohello https://github.com/echohello-dev/homebrew-tap
> scoop install pidexOr download pidex-win-x64.exe from Releases.
$ curl -sL -o pidex.AppImage \
https://github.com/echohello-dev/pidex/releases/latest/download/pidex-linux-x64.AppImage
$ chmod +x pidex.AppImage && ./pidex.AppImageA .deb and a GHCR image (ghcr.io/echohello-dev/pidex) ship alongside. Docker needs an X11 socket; prefer the AppImage on a real desktop. Full matrix in docs/distribution.md.
From source you need mise as well.
$ git clone git@github.com:echohello-dev/pidex.git && cd pidex
$ mise install
$ bun install
$ mise run dev # starts Vite + ElectronFor a production build: mise run build then mise run start. Native installers: mise run package.
ββββββββββββββββββββββββββββββββββββββββββ
β Renderer (React 19) β β dashboard, session tabs, timeline
βββββββββββββββββββββ¬βββββββββββββββββββββ
β typed IPC (window.pidex)
βββββββββββββββββββββΌβββββββββββββββββββββ
β Main process (Electron) β β workspace registry, event normalization
βββββββββββββββββββββ¬βββββββββββββββββββββ
β NDJSON over stdio
βββββββββββββββββββββΌβββββββββββββββββββββ
β Pi runtime (`pi --mode rpc`) β β one supervised subprocess per session
ββββββββββββββββββββββββββββββββββββββββββ
Pi runs out-of-process over RPC so the UI survives a runtime crash. Pretext handles text measurement so virtualized lists stay smooth in long sessions. Full detail in docs/pidex-architecture.md.
| Layer | Choice |
|---|---|
| Shell | Electron 41, context-isolated, typed window.pidex preload bridge |
| UI | React 19.2, Vite 8 with HMR |
| Text | @chenglou/pretext, DOM-free |
| Language | TypeScript 6 |
| Package manager | Bun |
| Toolchain | mise, all commands via mise run |
Apache-2.0: see the file for full text. Personal project, shared in the open.

