PI-Desktop: A local-first Electron workspace for AI coding agents
A local-first AI coding workspace for developers that puts models, projects, and long sessions in Electron instead of a terminal or editor plugin.
GitHub vastsa/PI-Desktop Updated 2026-09-10 Branch main Stars 1.7K Forks 155
Electron Rust TypeScript AI coding agents pi Agent Harness SQLite macOS/Windows/Linux

🧭 Decision Guide

Try it if you

  • You need to switch between OpenAI, Anthropic, Ollama, or LM Studio models
    The README section “Your models, your choice” lists these providers and local gateways
  • You want different approval boundaries through Agent, Plan, and Goal
    The README section “Agent, Plan, and Goal” defines the three modes and their approval gates
  • You need to migrate local sessions from Claude Code, Codex, OpenCode, or Pi
    The README section “Import your existing sessions” lists these four supported tools
  • You need desktop packages for macOS, Windows, or Linux
    The README section “Download” lists packages for macOS, Windows x64, and Linux x64

Skip it if you

  • You require stable APIs, extension interfaces, and desktop behavior
    The README “IMPORTANT” notice says the project is Early Preview and these areas may continue to evolve
  • Your code context cannot be sent to OpenAI, Anthropic, or another remote provider
    The README section “Local-first, precisely” says model requests go directly to the configured provider or endpoint
  • You need a plugin ecosystem whose security hardening is already complete
    The README “Project status” still lists stronger plugin sandboxing and publisher verification as priorities
  • Your release process depends on completed macOS and installer upgrade/rollback qualification
    The README “Project status” still lists macOS tagged-release and installer upgrade/rollback qualification

Requirements

  • Node.js >=22.19
  • pnpm >=10; the repository currently pins pnpm 11
  • A stable Rust toolchain
  • CI and release builds use Node 24
  • Access to OpenAI, Anthropic, an OpenAI-compatible API, Ollama, or LM Studio

First step (verbatim from README)

pnpm dev

Watch out

  • The Linux .asar is not a complete standalone package; it needs the native host and packaged resources
    The README “Download” section requires system Electron plus resources required by the target distribution
  • Development requires Node 22.19+, while CI and release builds use Node 24
    The README “Development / Requirements” section gives both Node version details
  • Privacy handling for remote providers is not centralized by PI-Desktop
    The README “Local-first, precisely” section says requests follow the provider’s own privacy policy
  • Windows NSIS and Linux AppImage can install updates in-app; other packages open the releases page
    The README “Download” section specifies the update behavior for each package type

Alternatives

  • Claude Code:Use it when you only need the existing terminal-oriented Claude Code workflow, not an Electron workspace
    README sections “Import your existing sessions” and “Why PI-Desktop?”
  • OpenCode:Use it when you want to keep the original OpenCode workflow instead of moving to PI-Desktop’s Agent, Plan, and Goal interface
    README sections “Import your existing sessions” and “Agent, Plan, and Goal”

Not stated in the README

  • The README does not specify the minimum supported OS versions for Windows, macOS, or Linux.
  • The README does not provide a model compatibility matrix for OpenAI, Anthropic, Ollama, or LM Studio.
  • The README does not describe the import-format limitations for Claude Code, Codex, OpenCode, and Pi.
  • The README does not document the complete threat model or permission boundaries of the Rust Host Core and plugin sandbox.
  • The README does not provide resource-usage, concurrent-session limits, or long-session performance data for the Electron app.
  • The README does not describe the exact changes or known defects in v0.14.6-rc.4 versus other 0.14.x versions.
  • The README does not explain the specific source or cause of the 417 stars gained on GitHub Trending that day.
  • The README does not explain recovery details after a failed upgrade on macOS, Windows NSIS, or Linux AppImage.

💡 Deep Analysis

6
Yes I want to build PI-Desktop from source. My environment is Node.js 24, the repository pins pnpm 11, and I use the stable Rust toolchain. Does the README provide an executable build path?
For: A TypeScript developer who wants to build PI-Desktop from source using Node.js 24, pnpm 11, and the stable Rust toolchain

Yes: the README provides a complete command sequence from cloning the repository to starting the development environment, and its runtime requirements match Node.js 24, pnpm 11, and the stable Rust toolchain.

  • The Requirements section requires Node.js >=22.19, pnpm >=10, and a stable Rust toolchain. It also states that the repository currently pins pnpm 11 while CI and release builds use Node 24.
  • The Run locally section provides the sequence git clone, pnpm install, cargo build -p host-core, pnpm build:js, and pnpm dev for local setup and startup.
  • The architecture contains a React Renderer, Electron Main, Rust Host Core, and pi Agent Sidecar. Local construction therefore includes compiling the Rust host core, not only bundling TypeScript.
  • Although TypeScript is the main language, the project data also reports substantial Rust source volume, confirming that Rust is a real build dependency rather than an optional component.

The README does not provide platform-specific native dependencies, troubleshooting for build failures, or a complete CI-reproduction procedure.

  • Requirements: “Node.js >=22.19”, “pnpm >=10”, “stable Rust toolchain”
  • Requirements: “The repository currently pins pnpm 11, while CI and release builds use Node 24”
  • Run locally: “pnpm install”; “cargo build -p host-core”; “pnpm build:js”; “pnpm dev”
  • Architecture: React Renderer, Electron Main, Rust Host Core, pi Agent Sidecar
pnpm install
Not stated in the README:The README does not list system libraries, compiler components, or signing tools required on macOS, Windows, and Linux;The README does not describe compatibility differences between Node.js 22.19 and Node.js 24 for local development
Yes I maintain a large repository with high-risk refactors. My constraint is that the agent must produce an immutable implementation plan and receive approval before editing files or running commands. Is PI-Desktop suitable?
For: A technical lead maintaining a large or high-risk local repository who requires approval of the implementation plan before execution

Yes: Plan mode directly separates repository research from execution, while privileged tools remain behind the permission layer.

  • The README’s Agent, Plan, and Goal table states that Plan studies the repository, writes a frozen implementation plan, and waits until the user signs off before execution starts.
  • It specifically positions Plan for changes that are large or risky when the user wants to approve the approach first, matching the stated refactoring constraint.
  • After execution, the workspace provides a Review panel for inspecting edits, command output, and application previews, rather than limiting review to the model’s textual response.
  • The README also says privileged tools go through the permission layer in every mode, so Plan is not an unrestricted execution path.

The limitation is governance scope: the available material does not promise organization-wide audit trails, CI gates, or centralized approval records. Those controls must remain in the existing engineering process.

  • Agent, Plan, and Goal: “Plan waits until you approve a frozen implementation plan”
  • Agent, Plan, and Goal: “The change is large or risky and you want the approach first”
  • From prompt to patch: “Inspect edits in the Review panel, check command output”
  • Agent, Plan, and Goal: “Privileged tools still go through the permission layer in every mode”
Not stated in the README:The README does not say whether Plan approvals can be exported, shared, or integrated with CI and code-review systems;The README does not specify limits for repository size, file count, context size, or indexing performance
Yes I already have local sessions in Claude Code, Codex, OpenCode, and Pi. I cannot lose that context and want to continue in one desktop workspace. Can PI-Desktop migrate those sessions?
For: A developer already using Claude Code, Codex, OpenCode, or Pi who wants to consolidate local sessions into a desktop workspace

Yes: the README explicitly provides import support for local sessions from Claude Code, Codex, OpenCode, and Pi, although full-fidelity compatibility still needs verification.

  • The “Import your existing sessions” section lists all four supported tools, so PI-Desktop is not limited to newly created conversations.
  • The documented entry point is Settings → Import, allowing existing work to be brought into the desktop workspace.
  • New conversations are stored locally as JSONL and indexed with SQLite, matching the product’s focus on long-lived, navigable session management.
  • The README also allows providers, models, and reasoning levels to be switched directly from the Composer, so imported work can continue with a different model configuration.

Import does not necessarily mean that every external state is reproduced. The README does not define migration coverage for attachments, tool-call results, extension settings, branch state, or provider-specific metadata, so it should not be treated as a complete environment clone.

  • Import your existing sessions: “Claude Code, Codex, OpenCode, Pi”
  • Import your existing sessions: “Open Settings → Import”
  • Local-first, precisely: “Conversations Stored locally as JSONL with a SQLite index”
  • Your models, your choice: “Switch models directly from the Composer without recreating your session”
Not stated in the README:The README does not specify session-format versions, failure handling, or field mappings for the four import sources;The README does not say whether tool-call records, attachments, MCP configuration, or project-level Skills are imported
It depends I mainly use Ollama or LM Studio, and my constraint is that project code must not be sent to the cloud. Can PI-Desktop serve as a local-first coding-agent workspace?
For: An individual developer using Ollama or LM Studio local models who cannot send project code to cloud services

It depends: PI-Desktop can connect to a local endpoint, but “local-first” does not automatically mean fully offline.

  • The README explicitly supports local gateways such as Ollama and LM Studio, as well as OpenAI-compatible APIs. Model requests are sent directly to the provider or endpoint configured by the user.
  • Conversations are stored locally as JSONL with a SQLite index; settings, logs, and credentials remain local or in the operating-system keychain. There is no required account, mandatory PI relay, or PI-Desktop telemetry.
  • If a remote provider is selected, the required project context and tool results are still sent to that provider. The application also does not remove local-model limits around context length, reasoning quality, GPU capacity, or tool-call compatibility.

It is suitable when you can enforce a local endpoint, but it is not itself a proof of complete offline operation.

  • Your models, your choice: “local gateways such as Ollama and LM Studio”
  • Local-first, precisely: “Model requests are sent directly to the provider or endpoint you configure”
  • Local-first, precisely: “Conversations Stored locally as JSONL with a SQLite index”
  • Project insight: local models remain constrained by context length, reasoning ability, VRAM, and tool-call compatibility
Not stated in the README:The README does not specify a compatibility matrix, minimum hardware requirements, or tool-call support range for Ollama and LM Studio models;The README does not state whether startup, update checks, or extension installation can generate non-model network requests
Yes I maintain multiple local repositories on macOS Apple Silicon, and my workflow cannot be tied to one editor or terminal. Is PI-Desktop suitable as a unified desktop workspace?
For: A developer on a macOS Apple Silicon laptop maintaining multiple local repositories who does not want to depend on one editor

Yes: PI-Desktop places projects, sessions, file changes, reviews, command output, and previews in one desktop workspace, and it ships a macOS Apple Silicon build.

  • The Desktop-first section says users can work across repositories and sessions without tying the agent workflow to one editor or terminal.
  • The From prompt to patch flow supports opening any local repository or project directory, then reviewing edits, command output, and application previews in the same interface.
  • The Download table lists .dmg and .zip packages for macOS Apple Silicon, directly matching the hardware constraint.
  • The project data identifies TypeScript as the main language, while the architecture uses Electron, React, and a Rust Host Core, confirming that this is an independent desktop application rather than an editor plug-in.

The qualification is maturity: the current release is v0.14.6-rc.4, and the project is an Early Preview. Platform behavior, session recovery, and upgrades may be less predictable than in a mature editor, and projects dependent on internal IDE state may still require the original editor.

  • Desktop-first: “Work across repositories and sessions without tying your agent workflow to one editor or terminal”
  • From prompt to patch: “Add any local repository or project directory from the sidebar”
  • Download: “macOS Apple Silicon .dmg / .zip”
  • Project data: main_language is TypeScript; description is Electron + Rust host core + pi Agent Harness
Not stated in the README:The README does not specify the minimum macOS version, memory requirements, or sandbox behavior for Apple Silicon;The README does not specify resource usage or project-count limits when multiple repositories are open
It depends I need to extend the agent through MCP, Skills, Subagents, and plugins, but extensions must not bypass local file and command permissions. Can PI-Desktop support this extensible workflow?
For: An advanced automation developer who needs MCP, Skills, Subagents, or plugins while retaining local permission controls

It depends: PI-Desktop offers layered extension points and a permission layer, but the README does not prove that every third-party extension has strong sandboxing or uniform security review.

  • The Extensions without rebuilding the app section says Skills provide reusable instructions and workflows, and can be installed globally or activated per project.
  • The project insights identify MCP, Subagents, and the plugin marketplace as additional extension layers, allowing tools, prompts, and task delegation to be composed.
  • The Architecture section assigns permissions, filesystem access, SQLite, and secrets to the Rust Host Core, while the renderer has no Node integration. This establishes a clearer boundary around privileged operations.
  • The Agent, Plan, and Goal table says privileged tools go through the permission layer in every mode.

The risk is the extension itself: the project insights warn that untrusted or over-privileged plugins, MCP servers, and Skills may access code, execute commands, touch credentials, or exfiltrate data. It is suitable for controlled extensions, not for blindly trusting arbitrary plugins.

  • Extensions without rebuilding the app: “Skills can be installed globally or activated for individual projects”
  • Architecture: “The Rust Host Core owns privileged workspace operations, permissions, persistence, and secrets”
  • Architecture: “The renderer has no Node integration”
  • Project insight: plugins, MCP, Skills, and Subagents expand the agent’s capability boundary and introduce code, command, and credential risks
Not stated in the README:The README does not specify publisher verification, code review, permission declarations, or sandboxing for the plugin marketplace;The README does not specify whether MCP servers, Subagents, and plugins share the same permission scope or whether individual capabilities can be revoked

✨ Highlights

  • Supports OpenAI, Anthropic, Ollama, and LM Studio
  • Agent, Plan, and Goal provide three approval boundaries
  • Rust Host Core manages permissions, files, and SQLite
  • The 0.14.x line remains Early Preview with evolving plugin interfaces

🔧 Engineering

  • The Electron workspace unifies projects, sessions, reviews, and previews
  • Switch providers and models without recreating a Composer session
  • JSONL, SQLite, and the OS keychain store data and credentials separately
  • Sessions can be imported from Claude Code, Codex, OpenCode, and Pi

⚠️ Risks

  • The README marks it Early Preview, with APIs and desktop behavior subject to change
  • Plugin sandboxing and publisher verification are still listed as priorities
  • Remote model requests send required context to the configured provider
  • macOS tagged releases and installer upgrade/rollback are still being qualified

👥 For who?

  • Individual developers using OpenAI, Anthropic, or Ollama
  • Electron or Rust teams managing long sessions across repositories
  • Users who want to retain Claude Code, Codex, or OpenCode sessions
  • Maintainers who need Agent, Plan, and Goal approval workflows