Because the pi coding agent was made with the intention to be adaptable to the devs workflows, I have decided to make something that would fit my needs. Specifically:
- Have something close to the out-of-the-box feel of Cursor
- Provides a plan mode & tools approvals, because it helps to me to be in control
- Better experience with reviewing changes
- Be in touch with code & terminals (per session)
- Works with your existing pi sessions - pi-deck reads pi's own data directory, so sessions created in the
piCLI appear automatically, and nothing you do here locks you out of pi - Plan mode - think a problem through with the agent and agree on a plan before an actual implementation
- Tool-call approvals - decide which tools the agent may run, globally or per session, so nothing touches your machine without your say-so
- Git review workflow - a status sidebar with branch switching and commit / push / pull / stash, per-turn review of the agent's edits, and a dedicated diff view
- Code editor - Simple syntax highlighting, a live git diff gutter (per-block revert and jump-to-diff), search, go-to-line, and encoding / line-ending controls in the status bar
- Optional LSP support - With adding LSP you can add additional capabilities, such as inline diagnostics, signature help, go-to-definition, etc
- Terminal support - a PTY-backed bottom dock with OS-aware shell detection
- Multi-session UI - a project switcher and parallel sessions, with conversations that accept attachments and drag-and-drop
- Theming - bundled dark / light palettes plus VS Code theme import
- WSL-aware - open a project from
\\wsl.localhost\<distro>\...and the file tree, terminal, and language servers all run against the distro - Cross-platform - Windows, Linux, and macOS (Apple Silicon), with the same feature set everywhere
Out of the box the editor offers basic, buffer-only completion. Installing a language server unlocks the rest: project-wide completion, hover types and docs, live diagnostics (underlines, gutter markers, and error / warning counts in the footer), signature help, rename, and go-to-definition across files.
Nothing is bundled with the app. pi-deck detects servers on your PATH and starts them automatically when you open a matching file. A missing server just shows an installation hint in the footer and in Settings → Editor.
| Language | Server | How to install |
|---|---|---|
| TypeScript / JavaScript | typescript-language-server |
npm install -g typescript-language-server typescript |
| CSS / SCSS / Less, HTML, JSON | vscode-langservers-extracted |
npm install -g vscode-langservers-extracted |
| Python | pyright |
npm install -g pyright |
| Rust | rust-analyzer |
rustup component add rust-analyzer |
| Go | gopls |
go install golang.org/x/tools/gopls@latest |
Good to know:
- WSL projects - for projects opened from
\\wsl.localhost\<distro>\..., servers are detected and run inside that distro. Install them there (e.g.npm install -g typescript-language-server typescriptinside Ubuntu), not on Windows. - Settings → Editor lists every supported server for the current project (detected / running / not found, with the install hint), lets you toggle each one, and has a Re-detect servers button for after you install something.
- Servers start lazily per project, shut down after sitting idle, and are always cleaned up when pi-deck quits.
Grab the latest installer for your OS from releases:
- macOS -
.dmgor.zip(Apple Silicon) - Windows -
.exeinstaller or portable.zip - Linux -
.AppImageor.deb
You'll also need:
- pi installed and signed in to at least one provider (
pi auth login ...). - Git on your
PATHfor the git sidebar.
pi-deck reads from pi's own data directory, so any sessions you've already created in pi show up as soon as you point pi-deck at the project.
To build pi-deck from source you'll need:
- Bun (the version pinned in
package.json#packageManager) - Node.js 24 or newer (required for downstream tooling such as Electron and
node-pty)
Then run the following commands to make sure everything is in order:
bun install
bun run check # lint + format + type-check - must be green before commits
bun run test # the full test suite
bun run desktop:dev # run the Electron app in dev modebun run check is wired into the pre-commit hook via Husky. Don't disable it.
Before opening a PR, please read AGENTS.md - it covers the architecture, conventions, and where data lives.
pi-deck is published under the MIT license. See LICENSE for details.
