PI-Desktop:本地优先的 Electron AI 编程工作台
给开发者的本地优先 AI 编程工作台,把模型、项目和长会话放进 Electron,而非终端或编辑器插件。
GitHub vastsa/PI-Desktop 更新 2026-09-10 分支 main 星标 1.7K 分叉 155
Electron Rust TypeScript AI 编程代理 pi Agent Harness SQLite macOS/Windows/Linux

🧭 决策指南

适合,如果你

  • 你需要在 OpenAI、Anthropic、Ollama 或 LM Studio 间切换模型
    README「Your models, your choice」列出这些 Provider 与 local gateways
  • 你希望在 Agent、Plan、Goal 之间设置不同审批边界
    README「Agent, Plan, and Goal」说明三种模式及其批准内容
  • 你要从 Claude Code、Codex、OpenCode 或 Pi 迁移本地会话
    README「Import your existing sessions」列出四种支持的工具
  • 你需要 macOS、Windows 或 Linux 的桌面安装包
    README「Download」列出 macOS、Windows x64 和 Linux x64 包格式

不适合,如果你

  • 你要求稳定不变的 API、扩展接口或桌面行为
    README「IMPORTANT」明确说明项目处于 Early Preview,这些部分可能继续变化
  • 你的代码上下文不能发送到 OpenAI、Anthropic 或其他远程 Provider
    README「Local-first, precisely」说明模型请求会直接发送到配置的 Provider 或 endpoint
  • 你需要已经完成安全加固的插件生态
    README「Project status」仍把更强插件沙箱与发布者验证列为当前优先事项
  • 你的发布流程依赖已完成 macOS 和安装器升级回滚认证
    README「Project status」仍列出 macOS 标签版本及安装器升级回滚资格验证

前置条件

  • Node.js >=22.19
  • pnpm >=10;仓库当前固定 pnpm 11
  • stable Rust toolchain
  • CI 和 release builds 使用 Node 24
  • 可使用 OpenAI、Anthropic、OpenAI-compatible API、Ollama 或 LM Studio 等模型端点

第一步命令(README 原文)

pnpm dev

要注意

  • Linux .asar 不能直接当完整发行包,需先加入 native host 与 packaged resources
    README「Download」要求用系统 Electron 启动,并补充目标发行版所需资源
  • 开发环境要求 Node 22.19+,但 CI 和 release builds 使用 Node 24
    README「Development / Requirements」同时给出两套 Node 版本信息
  • 远程 Provider 的隐私处理不由 PI-Desktop 统一承担
    README「Local-first, precisely」说明请求遵循 Provider 自身隐私政策
  • Windows NSIS 与 Linux AppImage 可应用内安装更新,其他包会打开 releases 页面
    README「Download」分别说明各平台更新行为

替代方案

  • Claude Code:你只需要现有的终端式 Claude Code 工作流,不需要 Electron 项目工作台
    README「Import your existing sessions」与「Why PI-Desktop?」
  • OpenCode:你要继续使用 OpenCode 原有工作流,而不是迁移到 PI-Desktop 的 Agent、Plan、Goal 界面
    README「Import your existing sessions」与「Agent, Plan, and Goal」

材料未说明

  • README 未说明支持的具体 Windows、macOS、Linux 最低操作系统版本。
  • README 未提供 OpenAI、Anthropic、Ollama 或 LM Studio 的模型兼容矩阵。
  • README 未给出会话导入对 Claude Code、Codex、OpenCode、Pi 各自的格式限制。
  • README 未说明 Rust Host Core 与插件沙箱的完整威胁模型和权限边界。
  • README 未给出 Electron 应用的资源占用、并发会话上限或长会话性能数据。
  • README 未说明 0.14.6-rc.4 相比 0.14.x 其他版本的具体变更和已知缺陷。
  • README 未说明 GitHub Trending 当日新增 417 颗星的具体来源或原因。
  • README 未说明升级失败时 macOS、Windows NSIS 或 Linux AppImage 的恢复细节。

💡 深度解析

6
适合 我想从源码构建 PI-Desktop,环境约束是 Node.js 24、仓库固定的 pnpm 11 和 stable Rust toolchain;README 是否给出了可执行的构建路径?
适合读者: 想从源码构建 PI-Desktop、使用 Node.js 24、pnpm 11 和 stable Rust toolchain 的 TypeScript 开发者

适合:README 给出了从克隆仓库到启动开发环境的完整命令链,且列出的运行时约束与 Node.js 24、pnpm 11 和 stable Rust toolchain 相符。

  • Requirements 章节要求 Node.js >=22.19、pnpm >=10 和 stable Rust toolchain;同时说明仓库当前固定 pnpm 11,CI 和 release builds 使用 Node 24。
  • Run locally 依次提供 git clone、pnpm install、cargo build -p host-core、pnpm build:js 和 pnpm dev,可直接用于本地构建与启动。
  • 架构由 React Renderer、Electron Main、Rust Host Core 和 pi Agent Sidecar 组成,因此本地构建不只是 TypeScript 打包,还需要 Rust host-core 编译。
  • 项目数据的主语言是 TypeScript,但同时包含约 1.42M 行级别规模的 Rust 字节统计,说明 Rust 工具链是实际构建依赖而非可选组件。

需要注意的是,README 未给出各平台原生依赖、构建失败排查和 CI 完整复现步骤。

  • 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
材料未说明:README 未说明 macOS、Windows 和 Linux 所需的系统库、编译器组件或签名工具;README 未说明 Node.js 22.19 与 Node.js 24 在本地开发中的兼容差异
适合 我负责大型仓库的高风险重构,约束是代理必须先给出不可变的实施计划,获批后才能修改文件和执行命令;PI-Desktop 是否适合?
适合读者: 维护大型或高风险本地仓库、要求先批准实施方案再允许代理执行的技术负责人

适合:Plan 模式正好把“研究方案”和“执行变更”分成两个审批阶段,并且特权工具始终经过权限层。

  • README 的 Agent、Plan、Goal 表格明确写出:Plan 会先研究仓库、生成 frozen implementation plan,直到用户批准前不会开始执行。
  • Plan 的适用场景是“change is large or risky and you want the approach first”,与大型重构或高风险依赖变更的约束一致。
  • 执行后可以在 Review panel 检查 edits,查看 command output,并继续对话;这比只审阅模型文本更接近实际变更审查。
  • README 同时说明 privileged tools 在每种模式下都经过 permission layer,因此 Plan 不是绕过权限的自动执行模式。

限制是:它没有承诺自动完成团队级审计、CI 门禁或集中式审批记录,仍不能替代既有工程治理。

  • 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”
材料未说明:README 未说明 Plan 批准记录是否可导出、共享或与 CI、代码审查系统集成;README 未说明大型仓库的文件数量、上下文规模或索引性能上限
适合 我已经在 Claude Code、Codex、OpenCode 和 Pi 中积累了本地会话,约束是不能丢失已有上下文,并希望在一个桌面工作区继续使用;PI-Desktop 能否迁移这些会话?
适合读者: 已经使用 Claude Code、Codex、OpenCode 或 Pi,并想把本地会话集中到桌面工作区的开发者

适合:README 明确提供了从 Claude Code、Codex、OpenCode 和 Pi 导入本地会话的入口,但迁移后的完整兼容程度仍需验证。

  • Import your existing sessions 章节列出四个受支持工具,说明 PI-Desktop 不是只能从新建会话开始。
  • 具体入口是 Settings → Import,导入后可以把历史工作带入桌面 workspace。
  • 新会话使用本地 JSONL 保存并由 SQLite 建立索引,符合长期保留、导航和集中管理会话的定位。
  • README 还支持在 Composer 中直接切换 provider、model 和 reasoning level,便于在导入后继续使用不同模型。

但导入并不等于所有工具状态都能无损复现。README 没有说明附件、工具调用结果、扩展配置、分支状态或供应商特定元数据的迁移范围,因此不能把它视为完整环境克隆。

  • 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”
材料未说明:README 未说明四种工具的会话格式版本、导入失败处理和迁移后的字段映射;README 未说明导入是否包含工具调用记录、附件、MCP 配置或项目级 Skills
视情况 我主要使用 Ollama 或 LM Studio,约束是项目代码不能发送到云端;PI-Desktop 能否作为本地优先的编码代理工作区?
适合读者: 使用 Ollama 或 LM Studio 本地模型、不能把项目代码发送到云端的个人开发者

视情况:如果 Ollama 或 LM Studio 的模型具备足够的上下文和工具调用能力,PI-Desktop 可以满足本地端点接入;但“local-first”不等于自动保证完全离线。

  • README 明确支持 Ollama、LM Studio 等 local gateways,也支持 OpenAI-compatible API,模型请求会直接发送到用户配置的 endpoint。
  • 会话以本地 JSONL 保存,SQLite 建立索引;设置、日志和凭据也保存在本机或操作系统 keychain 中,且没有强制账户、PI 中继或 PI-Desktop telemetry。
  • 如果误选远程 provider,代码上下文和工具结果仍会发送给该供应商;本地模型的上下文长度、推理能力和工具调用兼容性也未由桌面应用补足。

因此,它适合“可自选本地端点”的隐私工作流,不适合把桌面应用本身当作绝对离线保证。

  • 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”
  • 项目洞察:本地模型受上下文长度、推理能力、显存和工具调用兼容性限制
材料未说明:README 未说明 Ollama 或 LM Studio 的具体模型兼容矩阵、最低硬件要求和工具调用支持范围;README 未说明是否存在任何启动阶段、更新检查或扩展安装过程中的非模型网络请求
适合 我在 macOS Apple Silicon 上维护多个本地仓库,约束是工作流不能绑定单一编辑器或终端;PI-Desktop 是否适合作为统一桌面工作区?
适合读者: 使用 macOS Apple Silicon 笔记本、同时维护多个本地仓库且不想绑定某一个编辑器的开发者

适合:它把项目、会话、文件修改、审查、命令输出和预览放进同一个桌面 workspace,并提供 macOS Apple Silicon 构建包。

  • Desktop-first 章节明确支持跨 repositories 和 sessions 工作,而不把代理流程绑定到某一个 editor 或 terminal。
  • From prompt to patch 流程允许打开任意 local repository 或 project directory,并在同一界面检查编辑、命令输出和应用预览。
  • Download 表列出 macOS Apple Silicon 的 .dmg 和 .zip 包,平台覆盖与硬件约束直接匹配。
  • 项目数据表明主语言为 TypeScript,架构还包含 Electron、React 和 Rust Host Core;这意味着它是独立桌面应用,而不是某个编辑器插件。

不过它仍是 0.14.6-rc.4 预览线,跨平台行为、会话恢复和升级流程可能不如成熟编辑器稳定;强依赖 IDE 内部状态的项目也不一定能完全替代原编辑器。

  • 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”
  • 项目数据:main_language 为 TypeScript;描述为 Electron + Rust host core + pi Agent Harness
材料未说明:README 未说明 macOS Apple Silicon 的最低 macOS 版本、内存要求和应用沙箱行为;README 未说明多个仓库同时打开时的资源消耗与项目数量上限
视情况 我需要通过 MCP、Skills、Subagents 和插件扩展代理,约束是扩展不能绕过本地文件与命令权限;PI-Desktop 是否能满足这种可扩展工作流?
适合读者: 需要用 MCP、Skills、Subagents 或插件扩展代理能力、但希望保留本地权限控制的高级自动化开发者

视情况:PI-Desktop 提供了分层扩展入口和权限层,但 README 没有证明所有第三方扩展都具备强沙箱或统一安全审核。

  • Extensions without rebuilding the app 章节说明 Skills 可提供可复用 instructions 和 workflows,并可全局安装或按项目启用。
  • 项目洞察列出的扩展层还包括 MCP、Subagents 和插件市场,适合把工具、提示词和任务分工组合起来。
  • Architecture 说明 Rust Host Core 负责 permissions、filesystem、SQLite 和 secrets,渲染器没有 Node integration;这为特权操作提供了明确边界。
  • README 的 Agent/Plan/Goal 表格还规定 privileged tools 在每种模式下都经过 permission layer。

风险在扩展本身:项目洞察指出来源不明或权限过大的插件、MCP server、Skills 可能接触代码、命令、凭据或外传数据。因此它适合受控扩展,不适合默认信任任意插件。

  • 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”
  • 项目洞察:插件、MCP、Skills 和 Subagents 会扩大代理能力边界并带来代码、命令和凭据风险
材料未说明:README 未说明插件市场的发布者验证、代码审核、权限声明和沙箱机制;README 未说明 MCP server、Subagent 和插件是否共享同一权限范围,以及是否可逐项撤销能力

✨ 核心亮点

  • 支持 OpenAI、Anthropic、Ollama 与 LM Studio
  • Agent、Plan、Goal 提供三种审批边界
  • Rust Host Core 管理权限、文件与 SQLite
  • 0.14.x 仍处 Early Preview,插件接口持续演进

🔧 工程化

  • Electron 工作台统一管理项目、会话、Review 与预览
  • 可切换多 Provider 和模型,无需重建 Composer 会话
  • JSONL、SQLite 与系统 keychain 分别保存数据和凭据
  • 可从 Claude Code、Codex、OpenCode、Pi 导入会话

⚠️ 风险

  • README 明确标注 Early Preview,API 和桌面行为会变化
  • 当前优先加强插件沙箱与发布者验证,安全能力仍在完善
  • 远程模型请求会把上下文发送给所配置的 Provider
  • macOS 标签版本与安装器升级回滚仍在资格验证

👥 适合谁?

  • 使用 OpenAI、Anthropic 或 Ollama 的个人开发者
  • 需要跨仓库管理长会话的 Electron 或 Rust 团队
  • 希望保留 Claude Code、Codex 或 OpenCode 会话的用户
  • 需要 Agent、Plan、Goal 审批流程的代码维护者