PI-Desktop
Your local-first desktop workspace for AI coding agents.
Bring your own model. Open any local project. Let agents work — while you stay in control.
No PI-Desktop account. No mandatory relay. No editor lock-in.
Download PI-Desktop · Documentation · Screenshots · 简体中文
A standalone desktop workspace for coding agents, projects, models, tools, and long-running sessions.
[!IMPORTANT] PI-Desktop is currently in Early Preview.
The project is actively developed and already usable for real coding workflows, but APIs, extension interfaces, and some desktop behaviors may continue to evolve.
Why PI-Desktop?
Most coding agents live inside a terminal, an editor extension, or a hosted service.
PI-Desktop gives them a workspace of their own.
🖥️ Desktop-firstWork across repositories and sessions without tying your agent workflow to one editor or terminal. Projects, conversations, reviews, files, previews, notifications, and extensions live in one workspace. |
✨ Bring your own modelUse OpenAI, Anthropic, local models, hosted gateways, or any OpenAI-compatible API. Configure multiple providers and models, then switch between them per session. |
🔍 Inspectable by defaultAgents can read files, edit code, and run commands — but privileged actions pass through PI-Desktop's permission layer. Review diffs, inspect command output, and decide how much autonomy each session gets. |
🧩 Built to extendAdd Skills, MCP servers, Subagents, and installable Plugins. Plugins can contribute tools, commands, panels, themes, services, skills, and new workspace experiences. |
From prompt to patch
Getting started only takes a few steps:
-
Connect a model Open Settings → Model configuration, choose a provider or compatible API, and add your credentials.
-
Open a project Add any local repository or project directory from the sidebar.
-
Pick Agent, Plan, or Goal Agent starts working. Plan waits until you approve a frozen implementation plan. Goal waits until you approve the outcome, then the agent chooses the path.
-
Review the result Inspect edits in the Review panel, check command output, preview the application, and continue the conversation without leaving PI-Desktop.
More than a chat window
Agent, Plan, and Goal
Same agent. Three gates. Privileged tools still go through the permission layer in every mode.
| Agent | Plan | Goal | |
|---|---|---|---|
| You approve | Nothing extra | The implementation plan | The outcome and acceptance criteria |
| The agent does | Reads, edits, runs commands, tests, iterates | Studies the repo, writes a frozen plan, then waits | Picks the path and works until the goal is met |
| Use when | You want it to just do the work | The change is large or risky and you want the approach first | You care about the result, not the route |
Agent is the default loop: inspect the tree, patch files, run commands, and keep going.
Plan is the approval boundary. The agent researches first and produces an immutable implementation plan. Execution does not start until you sign off.
Goal is outcome-first. You lock the objective and acceptance criteria; the agent decides how to get there.
Delegate work to Subagents
Large tasks rarely belong in one context window.
PI-Desktop can delegate independent work to background Subagents for things like:
- codebase exploration
- multi-file implementation
- research and investigation
- test analysis
- adversarial review
Each Subagent runs in its own context and reports its result back to the parent agent.
A workspace built for long sessions
PI-Desktop is designed for more than one prompt at a time.
You can manage multiple projects and sessions, pin or archive conversations, branch sessions, queue prompts while an agent is running, reference files with @, use slash commands, and search across the application.
Streaming responses are checkpointed so interrupted work can survive application restarts or runtime failures whenever possible.
Your models, your choice
PI-Desktop does not lock the agent runtime to a hardcoded model list.
Use:
- OpenAI and Anthropic
- OpenAI-compatible APIs
- hosted model gateways
- local gateways such as Ollama and LM Studio
- multiple models under the same provider
- provider OAuth accounts where supported
Model configuration can include context windows, output limits, reasoning controls, temperature, and other model-specific behavior.
Switch models directly from the Composer without recreating your session.
Review the work, not just the answer
The agent workspace includes dedicated surfaces for the things that matter while coding:
Long-running conversations with transcript navigation |
Switch providers, models, and reasoning levels per session |
Extend the workspace through the plugin marketplace |
Add a provider and connect a model |
Extensions without rebuilding the app
PI-Desktop has several extension layers depending on how deeply you want to customize the agent.
Skills
Give agents reusable instructions and workflows.
Skills can be installed globally or activated for individual projects.
MCP
Connect external tools and services through Model Context Protocol servers without baking them into the desktop application.
Subagents
Create specialized agents with their own instructions, tools, and model choices, then delegate work to them from another agent.
Plugins
Plugins can extend PI-Desktop itself with:
- agent tools
- commands
- workspace panels
- work-panel views
- Skills
- MCP servers
- Subagents
- themes
- resident services
- inter-plugin messaging
Plugins can be installed locally or through the marketplace using the .piplug package workflow.
[!NOTE] Plugin processes are permission-gated and isolated from the renderer, but plugins are still user-trusted code rather than a complete operating-system sandbox. Only install plugins you trust.
Local-first, precisely
PI-Desktop is local-first, not “nothing ever touches the network.”
| Data | Behavior |
|---|---|
| Conversations | Stored locally as JSONL with a SQLite index |
| Settings | Stored on your machine |
| API credentials | Stored in the operating system keychain |
| Logs | Local |
| PI-Desktop telemetry | None |
| Model requests | Sent directly to the provider or endpoint you configure |
There is no required PI-Desktop account and no mandatory PI-hosted relay between your machine and your model provider.
If you use a remote model provider, the context required for that model request is naturally sent to that provider according to its own privacy policy.
Download
Download the latest build from GitHub Releases.
| Platform | Architecture | Package |
|---|---|---|
| macOS | Apple Silicon | .dmg / .zip |
| macOS | Intel | .dmg / .zip |
| Windows | x64 | NSIS installer |
| Linux | x64 | .AppImage / .deb |
Packaged builds can check GitHub Releases for updates and surface new versions inside the application.
macOS
macOS builds are not yet code-signed or notarized.
If macOS blocks the application, right-click PI-Desktop.app and choose Open.
If necessary, you can also clear the quarantine attribute:
xattr -cr /Applications/PI-Desktop.appSigning and notarization are on the roadmap.
Import your existing sessions
Already using another coding agent?
PI-Desktop can import local sessions from supported tools including:
- Claude Code
- Codex
- OpenCode
- Pi
Open Settings → Import to bring existing work into the desktop workspace.
Architecture
PI-Desktop deliberately separates the user interface from privileged host capabilities and the agent loop.
flowchart TB
UI["React Renderer<br/>Chat · Projects · Reviews · Settings"]
Electron["Electron Main<br/>Desktop orchestration"]
Rust["Rust Host Core<br/>Permissions · Filesystem · SQLite · Secrets"]
Agent["pi Agent Sidecar<br/>Agent loop · Models · Streaming"]
Provider["Model Provider<br/>Cloud or Local"]
UI --> Electron
Electron --> Rust
Electron --> Agent
Agent <--> Rust
Agent --> ProviderThe renderer has no Node integration.
The Rust Host Core owns privileged workspace operations, permissions, persistence, and secrets. The pi Agent Sidecar owns model interaction and the agent loop. Electron coordinates the desktop lifecycle while keeping those responsibilities separated.
Read the architecture specification →
Project status
PI-Desktop is an early preview under active development.
The current 0.13.x line includes the desktop shell, streaming agent runtime, Agent / Plan / Goal workflows, permission-aware workspace tools, projects and sessions, session imports, MCP / Skills / Subagents, background delegation, multi-provider model configuration, plugins and marketplace support, context checkpoints, notifications, release notes, and cross-platform packaging.
Current priorities include:
- macOS code signing and notarization
- installer upgrade and rollback qualification
- continued runtime and session-recovery hardening
- stronger plugin sandboxing and publisher verification
- broader UI-driven end-to-end coverage
Follow development through the project board and milestones.
Development
Requirements
- Node.js
>=22.19 - pnpm
>=10 - stable Rust toolchain
The repository currently pins pnpm 11, while CI and release builds use Node 24.
Run locally
git clone https://github.com/vastsa/PI-Desktop.git
cd PI-Desktop
pnpm install
cargo build -p host-core
pnpm build:js
pnpm devValidate changes
pnpm typecheck
pnpm lint
pnpm testAdditional protocol, Plan, supervision, Subagent, and Electron E2E suites are documented in the repository specification.
Documentation
pnpm docs:dev
pnpm docs:checkUseful references:
- Documentation
- Specification index
- Architecture
- Product scope
- Plugin development
- E2E test plan
- Release runbook
- Repository agent guide
Contributing
Issues, bug reports, feature proposals, documentation improvements, and pull requests are welcome.
For larger changes, opening an issue first makes it easier to align the implementation with the existing architecture and product contracts.
When working in the repository, start with AGENTS.md and the specification index.
Report an issue · View open issues
Built on open source
PI-Desktop builds on the excellent work of the open-source ecosystem.
The agent runtime uses pi-ai and pi-agent-core from pi-mono.
The desktop application is built with technologies including Electron, React, TypeScript, Rust, SQLite, Vite, Tailwind CSS, Shiki, Mermaid, KaTeX, TypeBox, and i18next.
Thank you to every project and contributor that makes PI-Desktop possible.
Model acknowledgements
This project was created by the models below — not by a lone genius, but by a token-powered construction crew.
| Provider | Model | Tokens |
|---|---|---|
| OpenAI | gpt-5.6-luna | 5,304,019,817 |
| OpenAI | gpt-5.6-sol | 4,825,458,273 |
| OpenAI | gpt-5.4 | 4,213,269,324 |
| Anthropic | claude-opus-5 | 3,909,952,653 |
| OpenAI | gpt-5.5 | 3,800,382,171 |
| xAI | grok-4.5 | 1,947,736,115 |
| xAI | grok-4.6 | 797,233,571 |
| DeepSeek | deepseek-v4-flash | 329,790,234 |
| OpenAI | gpt-5.2-codex | 320,983,170 |
| Xiaomi | mimo-v2.5-pro | 304,822,052 |
| Anthropic | claude-fable-5-1 | 302,580,552 |
| OpenAI | gpt-5.6-terra | 274,107,085 |
| OpenAI | gpt-5.3-codex | 255,366,945 |
| OpenAI | gpt-5.1-codex-max | 220,947,212 |
| OpenAI | gpt-5.1 | 142,533,699 |
| — | Unknown model | 69,801,632 |
| Anthropic | claude-opus-4.6 | 55,223,768 |
| Zhipu | stealth/ox-alpha | 22,954,876 |
| Anthropic | claude-fable-5 | 16,116,907 |
| OpenAI | gpt-5.1-codex-mini | 12,895,478 |
| Xiaohongshu | dots-3-note-prev | 10,166,895 |
| OpenAI | gpt-5.1-codex | 3,916,509 |
| Xiaomi | mimo-v2.5 | 3,785,071 |
Total for listed models: 27,144,044,009 tokens.
Community Links
- Linux.Do — A community for sharing and discussing technology.
License
PI-Desktop is licensed under the GNU Lesser General Public License v3.0.
See LICENSE for details.