🧭 Decision Guide
Why trending now: Cannot be determined from the available material
Try it if you
-
You need to switch between OpenAI, Anthropic, Ollama, or LM Studio modelsThe README section “Your models, your choice” lists these providers and local gateways
-
You want different approval boundaries through Agent, Plan, and GoalThe 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 PiThe README section “Import your existing sessions” lists these four supported tools
-
You need desktop packages for macOS, Windows, or LinuxThe README section “Download” lists packages for macOS, Windows x64, and Linux x64
Skip it if you
-
You require stable APIs, extension interfaces, and desktop behaviorThe 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 providerThe 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 completeThe README “Project status” still lists stronger plugin sandboxing and publisher verification as priorities
-
Your release process depends on completed macOS and installer upgrade/rollback qualificationThe 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 resourcesThe 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 24The README “Development / Requirements” section gives both Node version details
-
Privacy handling for remote providers is not centralized by PI-DesktopThe 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 pageThe 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 workspaceREADME 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 interfaceREADME 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?
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, andpnpm devfor 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
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?
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”
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?
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”
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?
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
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?
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
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?
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
✨ 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