vastsa/PI-DesktopPublic

Local-first AI coding agent desktop: Electron + Rust host core + pi Agent Harness + user-installable plugins

AI summary: A local-first, standalone desktop workspace designed to host and manage AI coding agents.

Stars
2.3K
+606 today
Forks
192
Watchers
4
Open issues
45
Open PRs
2
Contributors
~18
Commits
2K
Branches
8

TypeScriptLGPL-3.0Created Mar 22, 2023Last push todayLatest release v0.14.5+606 stars this week+606 this month

Star history

since Sep 9, 2026
01K2KSep 2026Sep 2026Sep 2026Sep 2026
2.3K stars as of Sep 10, 2026, tracked back to Sep 9, 2026.

Signals and awards

derived from tracked data
  • Rising fast

    +606 stars this week

  • Actively maintained

    Pushed within 48 hours

  • Continuous integration

    Automated checks passing

What PI-Desktop does

PI-Desktop acts as a standalone operating environment specifically designed for running AI coding agents outside of traditional IDEs or terminal windows. It provides a local-first workspace where users can manage projects, conversational sessions, and background agent tasks. The platform allows developers to bring their own AI models, including local LLMs or external APIs like OpenAI and Anthropic. It features a robust permission layer that intercepts privileged agent actions to keep the user in control. Under the hood, it separates responsibilities using an Electron shell, a Rust host core for secure operations, and a dedicated sidecar for the agent loop.

This application is designed for developers and AI researchers who want a dedicated, secure environment for interacting with autonomous coding agents. It is particularly useful for those who want strict control over what commands an AI can execute locally.

  • Standalone workspace: Operates completely outside of standard code editors, avoiding vendor lock-in.
  • Model flexibility: Supports connections to OpenAI, Anthropic, local models, and custom gateways.
  • Permission management: Intercepts and requires user approval for privileged commands attempted by the agent.
  • Background delegation: Allows agents to run long-running tasks or scripts independently in the background.
  • Extensible architecture: Supports MCP, plugins, and custom skills to extend agent capabilities dynamically.

Where teams use it

Managing complex coding sessions

Organize multiple AI-driven coding tasks across different repositories within a single unified workspace.

Enforcing security boundaries

Allow an AI agent to write code but require manual review before it executes shell commands.

Utilizing local models

Connect the workspace to locally hosted LLMs to maintain strict privacy over proprietary codebases.

Monitoring background tasks

Delegate long-running data processing scripts to an agent and monitor its progress via the desktop shell.

Getting started: https://github.com/vastsa/PI-Desktop/releases/latest

README

main branch
PI-Desktop

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.


Release Downloads Stars CI License Platforms

Download PI-Desktop · Documentation · Screenshots · 简体中文


PI-Desktop AI coding workspace

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-first

Work 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 model

Use OpenAI, Anthropic, local models, hosted gateways, or any OpenAI-compatible API.

Configure multiple providers and models, then switch between them per session.

🔍 Inspectable by default

Agents 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 extend

Add 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:

  1. Connect a model Open Settings → Model configuration, choose a provider or compatible API, and add your credentials.

  2. Open a project Add any local repository or project directory from the sidebar.

  3. 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.

  4. 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:

PI-Desktop conversation

Long-running conversations with transcript navigation

PI-Desktop model selection

Switch providers, models, and reasoning levels per session

PI-Desktop plugin marketplace

Extend the workspace through the plugin marketplace

PI-Desktop model configuration

Add a provider and connect a model

Explore all screenshots →


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.

Build your first plugin →


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 / .rpm / .asar

Packaged builds can check GitHub Releases for updates and surface new versions inside the application. The Linux .asar asset is available for repackaging with a system Electron; launch it with electron PI-Desktop-<version>-linux-x64.asar after adding the native host and packaged resources required by the target distribution.

Linux

Linux x64 packages need glibc 2.35 or newer. That is the library shipped with:

  • Ubuntu 22.04 or later
  • Debian 12 or later
  • Fedora 36 or later

Ubuntu 20.04, Debian 11, Fedora 35, and older releases cannot load the bundled host. Check with ldd --version.

macOS

The tagged-release workflow signs, notarizes, and staples macOS artifacts with Developer ID credentials before publication.


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 --> Provider
Loading

The 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.14.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 tagged-release qualification
  • 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 dev

Validate changes

pnpm typecheck
pnpm lint
pnpm test

Additional protocol, Plan, supervision, Subagent, and Electron E2E suites are documented in the repository specification.

Documentation

pnpm docs:dev
pnpm docs:check

Useful references:


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.


Build with the model you want. Keep the workflow yours.

Download PI-Desktop

macOS · Windows · Linux

View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Releases and announcements

54 total
  1. v0.14.6-rc.3v0.14.6-rc.3Sep 9, 2026pre-release4 downloads

    ## What's Changed * feat(settings): pick a configured model when creating a subagent by @isleei in https://github.com/vastsa/PI-Desktop/pull/141 * feat(subagents): preset templates and provider-bounded model picker by @yexisu in https://github.com/vastsa/PI-Desktop/pull/145 * 为项目添加 rpm 包的自动构建以及对 kde 下图标问题的小修复 by @mkaros2025 in https://github.com/vastsa/PI-Desktop/pull/136 * feat(settings): alias a configured model and make model ids copyable by @molicherry in https://github.com/vastsa/PI-Desktop/pull/158 * Honor 模型级 wire API,修复 opencode_go 下 muse-spark 稳定 500 by @MrUncleXiang in https://github.com/vastsa/PI-Desktop/pull/111 * fix(linux): restore GNOME tray integration by @yokinanya in https://github.com/vastsa/PI-Desktop/pull/166 ## New Contributors * @mkaros2025 made their first contribution in https://github.com/vastsa/PI-Desktop/pull/136 * @molicherry made their first contribution in https://github.com/vastsa/PI-Desktop/pull/158 * @MrUncleXiang made their first contribution in https://github.com/vastsa/PI-Desktop/pull/111 * @yokinanya made their first contribution in https://github.com/vastsa/PI-Desktop/pull/166 **Full Changelog**: https://github.com/vastsa/PI-Desktop/compare/

  2. v0.14.5v0.14.5Sep 9, 20262.3K downloads

    **Full Changelog**: https://github.com/vastsa/PI-Desktop/compare/v0.14.4...v0.14.5

  3. v0.14.4v0.14.4Sep 9, 2026908 downloads

    **Full Changelog**: https://github.com/vastsa/PI-Desktop/compare/v0.14.3...v0.14.4

  4. v0.14.2v0.14.2Sep 8, 2026695 downloads

    ## What's Changed * feat(desktop): move the context usage inspector into the composer toolbar by @MakkaPakka12138 in https://github.com/vastsa/PI-Desktop/pull/76 * fix(chat): keep message toolbar tooltips clear of the icon hover tint… by @yexisu in https://github.com/vastsa/PI-Desktop/pull/88 * fix(desktop): keep macOS sidebar glass on the dark source-list material by @isleei in https://github.com/vastsa/PI-Desktop/pull/82 * feat(settings): copy custom headers as JSON by @xiaobaZeo in https://github.com/vastsa/PI-Desktop/pull/95 * feat(desktop): link context menu and configurable default browser open target (#92) by @mazongYY in https://github.com/vastsa/PI-Desktop/pull/94 * feat(desktop): dispatch native notifications for interactive asks, permissions, and plan proposals (#83) by @mazongYY in https://github.com/vastsa/PI-Desktop/pull/84 * feat(desktop): automatic intelligent session title summarization via LLM (#85, #63) by @mazongYY in https://github.com/vastsa/PI-Desktop/pull/86 * feat(settings): bulk-select and refetch models in the provider picker by @isleei in https://github.com/vastsa/PI-Desktop/pull/103 * feat(sidebar): 支持重命名项目 by @yg2224 in https://github.com/vast

  5. v0.14.1v0.14.1Sep 7, 20263.8K downloads

    **Full Changelog**: https://github.com/vastsa/PI-Desktop/compare/v0.14.0...v0.14.1

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 14 commitsSun 1:00 — 16 commitsSun 2:00 — 10 commitsSun 3:00 — 12 commitsSun 4:00 — 14 commitsSun 5:00 — 2 commitsSun 6:00 — 0 commitsSun 7:00 — 0 commitsSun 8:00 — 0 commitsSun 9:00 — 0 commitsSun 10:00 — 6 commitsSun 11:00 — 4 commitsSun 12:00 — 3 commitsSun 13:00 — 10 commitsSun 14:00 — 13 commitsSun 15:00 — 8 commitsSun 16:00 — 24 commitsSun 17:00 — 13 commitsSun 18:00 — 15 commitsSun 19:00 — 10 commitsSun 20:00 — 2 commitsSun 21:00 — 22 commitsSun 22:00 — 15 commitsSun 23:00 — 10 commitsMon 0:00 — 10 commitsMon 1:00 — 10 commitsMon 2:00 — 3 commitsMon 3:00 — 9 commitsMon 4:00 — 0 commitsMon 5:00 — 0 commitsMon 6:00 — 0 commitsMon 7:00 — 0 commitsMon 8:00 — 1 commitsMon 9:00 — 2 commitsMon 10:00 — 15 commitsMon 11:00 — 19 commitsMon 12:00 — 5 commitsMon 13:00 — 0 commitsMon 14:00 — 8 commitsMon 15:00 — 26 commitsMon 16:00 — 14 commitsMon 17:00 — 14 commitsMon 18:00 — 7 commitsMon 19:00 — 17 commitsMon 20:00 — 14 commitsMon 21:00 — 5 commitsMon 22:00 — 14 commitsMon 23:00 — 11 commitsTue 0:00 — 15 commitsTue 1:00 — 17 commitsTue 2:00 — 11 commitsTue 3:00 — 5 commitsTue 4:00 — 1 commitsTue 5:00 — 0 commitsTue 6:00 — 0 commitsTue 7:00 — 0 commitsTue 8:00 — 1 commitsTue 9:00 — 9 commitsTue 10:00 — 4 commitsTue 11:00 — 24 commitsTue 12:00 — 4 commitsTue 13:00 — 1 commitsTue 14:00 — 18 commitsTue 15:00 — 22 commitsTue 16:00 — 29 commitsTue 17:00 — 41 commitsTue 18:00 — 17 commitsTue 19:00 — 12 commitsTue 20:00 — 8 commitsTue 21:00 — 16 commitsTue 22:00 — 21 commitsTue 23:00 — 17 commitsWed 0:00 — 15 commitsWed 1:00 — 9 commitsWed 2:00 — 7 commitsWed 3:00 — 3 commitsWed 4:00 — 0 commitsWed 5:00 — 0 commitsWed 6:00 — 0 commitsWed 7:00 — 0 commitsWed 8:00 — 3 commitsWed 9:00 — 11 commitsWed 10:00 — 31 commitsWed 11:00 — 26 commitsWed 12:00 — 6 commitsWed 13:00 — 2 commitsWed 14:00 — 7 commitsWed 15:00 — 12 commitsWed 16:00 — 14 commitsWed 17:00 — 15 commitsWed 18:00 — 5 commitsWed 19:00 — 8 commitsWed 20:00 — 11 commitsWed 21:00 — 8 commitsWed 22:00 — 13 commitsWed 23:00 — 13 commitsThu 0:00 — 5 commitsThu 1:00 — 3 commitsThu 2:00 — 4 commitsThu 3:00 — 1 commitsThu 4:00 — 0 commitsThu 5:00 — 0 commitsThu 6:00 — 0 commitsThu 7:00 — 0 commitsThu 8:00 — 0 commitsThu 9:00 — 3 commitsThu 10:00 — 4 commitsThu 11:00 — 17 commitsThu 12:00 — 3 commitsThu 13:00 — 3 commitsThu 14:00 — 16 commitsThu 15:00 — 16 commitsThu 16:00 — 12 commitsThu 17:00 — 17 commitsThu 18:00 — 5 commitsThu 19:00 — 21 commitsThu 20:00 — 17 commitsThu 21:00 — 9 commitsThu 22:00 — 20 commitsThu 23:00 — 19 commitsFri 0:00 — 19 commitsFri 1:00 — 5 commitsFri 2:00 — 3 commitsFri 3:00 — 5 commitsFri 4:00 — 1 commitsFri 5:00 — 0 commitsFri 6:00 — 0 commitsFri 7:00 — 0 commitsFri 8:00 — 0 commitsFri 9:00 — 1 commitsFri 10:00 — 14 commitsFri 11:00 — 14 commitsFri 12:00 — 1 commitsFri 13:00 — 2 commitsFri 14:00 — 10 commitsFri 15:00 — 20 commitsFri 16:00 — 20 commitsFri 17:00 — 26 commitsFri 18:00 — 18 commitsFri 19:00 — 12 commitsFri 20:00 — 4 commitsFri 21:00 — 6 commitsFri 22:00 — 10 commitsFri 23:00 — 5 commitsSat 0:00 — 21 commitsSat 1:00 — 16 commitsSat 2:00 — 20 commitsSat 3:00 — 8 commitsSat 4:00 — 25 commitsSat 5:00 — 1 commitsSat 6:00 — 1 commitsSat 7:00 — 5 commitsSat 8:00 — 14 commitsSat 9:00 — 8 commitsSat 10:00 — 15 commitsSat 11:00 — 12 commitsSat 12:00 — 16 commitsSat 13:00 — 6 commitsSat 14:00 — 14 commitsSat 15:00 — 10 commitsSat 16:00 — 15 commitsSat 17:00 — 6 commitsSat 18:00 — 7 commitsSat 19:00 — 8 commitsSat 20:00 — 15 commitsSat 21:00 — 11 commitsSat 22:00 — 10 commitsSat 23:00 — 13 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.

Who is committing

last 52 weeks
Maintainer commits1,792 (94%)
Community commits105 (6%)

1,897 commits in total over the last year.

DateListRankStars gained
Sep 10, 2026daily#13+417
Sep 9, 2026daily#10+393
  • freeCodeCamp/freeCodeCamp

    freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming, and computer science for free.

    455.3K stars · TypeScript

  • openclaw/openclaw

    The AI that really does things. Any OS. Any Platform. The lobster way. 🦞

    389.4K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • affaan-m/ECC

    The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

    255.9K stars · JavaScript