需单独安装 pi CLI 并加入系统 PATH,否则启动后提示找不到 pi;从源码运行需 Node.js 20+ 并先执行 npm run make-icon 生成图标;DSH 后端需先在设置页 DSH 分页完成配置才能新建会话。
PiDeck
ayuayueMIT活跃维护PiDeck 是一个基于 Electron 的桌面工作台,把 PI/DSH Agent 会话按本地项目目录统一管理,还能导入 Codex、Claude 的本地会话,方便集中浏览和恢复。
PiDeck 是一个开源的桌面工作台,用于在本地项目目录中统一管理 PI | DSH | ACP Agent 会话,并支持导入 Codex、Claude 本地会话以便统一浏览和恢复。支持多项目工作区、会话历史、Git 集成、内置终端、模型配置和插件管理,基于 Electron 构建。
git clone https://github.com/ayuayue/PiDeck.git
cd PiDeck
npm install
npm run make-icon
npm run devREADME 未说明显存或 GPU 要求;需系统 PATH 中可访问 pi 命令,并已完成 pi 的 Provider / 登录 / API Key 配置。
把 pi 和 DSH 编码 Agent 装进桌面,统一管理多项目会话的 Electron 工作台
PiDeck 是一个基于 Electron 的桌面工作台,把 PI/DSH Agent 会话按本地项目目录统一管理,还能导入 Codex、Claude 的本地会话,方便集中浏览和恢复。
核心能力
- 每个会话独立启动 pi --mode rpc 进程,项目间完全隔离
- 同一项目下 pi、DSH、生图三种后端并存自由切换
- 支持导入 Codex 与 Claude 本地会话并导出 HTML
- 可视化编辑 models.json、auth.json、settings.json 并一键测连接
- 内置文件树、Git 面板、终端 Dock 与局域网 Web 访问
容易踩的坑
- v0.11.3最新正式版2026-11-07 · 2026-11-07 08:06 UTC
预览面板终于有换行开关:长行文件不用再横着拖,diff 与源码视图都能折行。
✨ 改进
- 预览与 diff 支持自动换行 — 工具栏新增换行开关:diff 切到库的
overflow=wrap折行显示,源码视图用 Compartment 热切换 CodeMirror 的lineWrapping,切换不会丢撤销栈与滚动位置。默认观感不变(源码换行、diff 横滚),点过开关后按本机偏好记住——存在渲染层偏好里,不写settings.json。
- 预览与 diff 支持自动换行 — 工具栏新增换行开关:diff 切到库的
- v0.11.22026-11-07 · 2026-11-07 07:16 UTC
查看更新说明
飞书会话现在与桌面端用同一套默认值:你在设置里给某个模型配的思考档位(例如
max)会真正生效,而不是桥里一律按 off 跑。🐛 修复
- 渠道会话继承桌面默认值 — 桥接原先只建空草稿、不写模型与思考档位,pi 于是用自己的缺省(off),每模型默认档位永远传不到飞书;现在新建渠道会话走与桌面端同一个
launchDefaults解析器(含 capability 快照与「上次使用」回退),DSH 会话仍保留 host 侧的模型身份。
- 渠道会话继承桌面默认值 — 桥接原先只建空草稿、不写模型与思考档位,pi 于是用自己的缺省(off),每模型默认档位永远传不到飞书;现在新建渠道会话走与桌面端同一个
- v0.11.12026-11-07 · 2026-11-07 06:05 UTC
查看更新说明
这一版把「设置」从一个遮住工作区的弹框改成会话列里的页面 Tab,配置面跟着收口:OAuth 订阅登录独立成页,供应商与模型列表可搜索,生图接入 OpenRouter;记忆支持批量删除,ACP 侧看门狗的静默取消不再谎报成功。
v0.11.0 因 macOS 打包配置缺陷没能发出 mac 安装包,本版补发完整产物(代码内容与 v0.11.0 相同,另含下方 🐛 最后一条修复)。
🚀 新功能
- 设置改为会话列里的页面 Tab — 原来的 80vw×80vh 弹框会遮住整个工作区,改设置时看不到后面的会话;现在它作为页面 Tab 铺满会话列,侧栏与文件树照常可用,切到会话只是失活(保持挂载、草稿不丢),关 Tab 才卸载,仍未保存时先弹确认。「去设置」深链(Git 提交摘要、快捷消息、远端主机、DSH 安装提示、命令面板、
Cmd+,)统一走一个入口,页面按链接要求聚焦到对应分段。 - 配置新增 OAuth 登录页 —
config:oauth列出 pi/login支持的全部供应商(OAuth 与 API Key),支持全部 / 已登录筛选、刷新与登出;点登录复用既有登录弹框并预选供应商与方式,列表就绪后自动开始,关闭弹框回读凭据。 - 生图接入 OpenRouter — 走专用
POST /images而不是 OpenAI 的/images/generations:请求体不带response_format,参考图走input_references,结果从data[]读取。 - 记忆条目支持批量删除 — 记忆 tab 工具栏新增批量删除:勾选跨页保留,一次 IPC 删除所选。主进程按落盘文件分组,同一份记忆文件只读写一遍,墓碑与单条删除同口径(设备作用域跳过);校验先于写入,任一条非法整批拒绝;删除清单只带 target / projectId / key,批量结果可一键撤销。
- 供应商与模型列表可搜索 — 认证页按供应商名与预设展示名过滤(搜
gemini能命中 Google),模型页按供应商过滤,DSH 模型目录按 model id / 名称过滤且行内编辑保留原始下标;带命中计数与空结果提示,排序与批量选择不受过滤影响,搜索框并与「N 个供应商」同一行。
✨ 改进
- 工具结果图片内联显示 — 生图类扩展把生成图放在工具结果的 image content 里,此前只取文本,用户只看到保存路径;实时链路与历史投影都把图片挂到消息上,工具卡折叠态即显示缩略图,点击复用全屏预览与保存 / 复制。
- 虚拟栈在滚动窗迟到挂载时补一次渲染 — 容器与虚拟列表在同一次 commit 挂载时拿不到滚动元素,range 恒为 null,展开长列表会先白屏,直到别处触发重渲染才恢复。
- macOS 包保持签名身份 — 应用带证书签名,权限授权身份跨版本稳定,图标也不再被 Spotlight 损坏。
- 会话预热不再清空输入 — 历史预加载期间的空窗口不再重置消息与输入框,并补了焦点与连续输入的回归测试。
🐛 修复
- stall 取消不再谎报成功(#500) — 看门狗代发取消后 CLI 回
stopReason: "cancelled",session/prompt是 resolve 而非 reject,因此回合走 happy path 被记成 accepted,而escalatedStopRejection()只在 catch 分支可达,acp.stallForceStopped成了不可达文案。现在「有可见产出」的 stall 按失败收口:delivery: "unknown"、toast 给出具体原因、日志记录 CLI / stopReason / update 类型计数;零产出的 stall 仍走空白回合守卫(回滚气泡并回填草稿)。 - 时间线恢复不再漂移(#477) — 锚点不在已加载数据时先扩窗、再按需补历史页(上限 3 页),补不到就落到底部而不是回顶部;恢复成功后建立浏览钉,锚点上方图片解码与 Markdown 重排不再推动视口;「加载更多」拿到空页时改为扩窗,不再点了没反应。
- 大纲刻度只列用户提问 — 一轮同时计入提问与最终回答,长会话窗口只装得下一半轮次;现在只收
role === "user",去掉角色前缀列,并把悬停弹簧换成 CSS transform,一次划过不再重建几十个 motion 元素。 - DSH 的
/菜单列出会话技能(#480) — 运行中的 DSH 会话把技能目录以裸名、source: "skill"合并进补全建议,同名时宿主命令与静态命令优先。 - 保存时拦截缺少 api 的供应商 — pi 的 provider-composer 会抛错并丢弃整个供应商,导致「有模型但链路里没有 api」的供应商带着模型一起从列表消失;现在保存前统一校验并指出缺失字段。
- 生图供应商默认全部折叠 — 载入配置时原来只收起第二个及之后的供应商,第一个始终展开,多供应商时页面被首个表单占满;展开全部 / 收起全部与新增供应商默认展开的行为不变。
- 引导页切换模型后底栏立即回写 — 模型选择器只写 localStorage,底栏不重挂载,首次发送前看起来切换无效;补一次欢迎偏好版本 bump,与思考档位选择一致。
- finalize 改为按 release_id 更新 latest 指针 — GitHub 只接受
PATCH /releases/<id>,按 tag PATCH 恒 404,v0.10.0 的 finalize 作业因此必挂。 - 无证书的 macOS 打包不再被空凭据打断 — release 工作流对非签名机器会导出
CSC_LINK:,而 electron-builder 把空串当成已配置的证书链接、按项目目录解析后报<projectPath> not a file,v0.11.0 的 mac 作业因此全挂;beforePack钩子在 darwin 上丢弃空白的CSC_LINK/CSC_KEY_PASSWORD/CSC_NAME,无证书时仍走 #347 的 ad-hoc 兜底,有证书时照旧强制签名。
- 设置改为会话列里的页面 Tab — 原来的 80vw×80vh 弹框会遮住整个工作区,改设置时看不到后面的会话;现在它作为页面 Tab 铺满会话列,侧栏与文件树照常可用,切到会话只是失活(保持挂载、草稿不丢),关 Tab 才卸载,仍未保存时先弹确认。「去设置」深链(Git 提交摘要、快捷消息、远端主机、DSH 安装提示、命令面板、
- v0.11.02026-11-07 · 2026-11-07 05:46 UTC
查看更新说明
⚠️ 本版缺 macOS 安装包:release 工作流把空的
CSC_LINK当成证书链接,两个 macOS 作业在打包阶段失败。代码内容与功能说明不变,请改用 v0.11.1 的完整产物。这一版把「设置」从一个遮住工作区的弹框改成会话列里的页面 Tab,配置面跟着收口:OAuth 订阅登录独立成页,供应商与模型列表可搜索,生图接入 OpenRouter;记忆支持批量删除,ACP 侧看门狗的静默取消不再谎报成功。
🚀 新功能
- 设置改为会话列里的页面 Tab — 原来的 80vw×80vh 弹框会遮住整个工作区,改设置时看不到后面的会话;现在它作为页面 Tab 铺满会话列,侧栏与文件树照常可用,切到会话只是失活(保持挂载、草稿不丢),关 Tab 才卸载,仍未保存时先弹确认。「去设置」深链(Git 提交摘要、快捷消息、远端主机、DSH 安装提示、命令面板、
Cmd+,)统一走一个入口,页面按链接要求聚焦到对应分段。 - 配置新增 OAuth 登录页 —
config:oauth列出 pi/login支持的全部供应商(OAuth 与 API Key),支持全部 / 已登录筛选、刷新与登出;点登录复用既有登录弹框并预选供应商与方式,列表就绪后自动开始,关闭弹框回读凭据。 - 生图接入 OpenRouter — 走专用
POST /images而不是 OpenAI 的/images/generations:请求体不带response_format,参考图走input_references,结果从data[]读取。 - 记忆条目支持批量删除 — 记忆 tab 工具栏新增批量删除:勾选跨页保留,一次 IPC 删除所选。主进程按落盘文件分组,同一份记忆文件只读写一遍,墓碑与单条删除同口径(设备作用域跳过);校验先于写入,任一条非法整批拒绝;删除清单只带 target / projectId / key,批量结果可一键撤销。
- 供应商与模型列表可搜索 — 认证页按供应商名与预设展示名过滤(搜
gemini能命中 Google),模型页按供应商过滤,DSH 模型目录按 model id / 名称过滤且行内编辑保留原始下标;带命中计数与空结果提示,排序与批量选择不受过滤影响,搜索框并与「N 个供应商」同一行。
✨ 改进
- 工具结果图片内联显示 — 生图类扩展把生成图放在工具结果的 image content 里,此前只取文本,用户只看到保存路径;实时链路与历史投影都把图片挂到消息上,工具卡折叠态即显示缩略图,点击复用全屏预览与保存 / 复制。
- 虚拟栈在滚动窗迟到挂载时补一次渲染 — 容器与虚拟列表在同一次 commit 挂载时拿不到滚动元素,range 恒为 null,展开长列表会先白屏,直到别处触发重渲染才恢复。
- macOS 包保持签名身份 — 应用带证书签名,权限授权身份跨版本稳定,图标也不再被 Spotlight 损坏。
- 会话预热不再清空输入 — 历史预加载期间的空窗口不再重置消息与输入框,并补了焦点与连续输入的回归测试。
🐛 修复
- stall 取消不再谎报成功(#500) — 看门狗代发取消后 CLI 回
stopReason: "cancelled",session/prompt是 resolve 而非 reject,因此回合走 happy path 被记成 accepted,而escalatedStopRejection()只在 catch 分支可达,acp.stallForceStopped成了不可达文案。现在「有可见产出」的 stall 按失败收口:delivery: "unknown"、toast 给出具体原因、日志记录 CLI / stopReason / update 类型计数;零产出的 stall 仍走空白回合守卫(回滚气泡并回填草稿)。 - 时间线恢复不再漂移(#477) — 锚点不在已加载数据时先扩窗、再按需补历史页(上限 3 页),补不到就落到底部而不是回顶部;恢复成功后建立浏览钉,锚点上方图片解码与 Markdown 重排不再推动视口;「加载更多」拿到空页时改为扩窗,不再点了没反应。
- 大纲刻度只列用户提问 — 一轮同时计入提问与最终回答,长会话窗口只装得下一半轮次;现在只收
role === "user",去掉角色前缀列,并把悬停弹簧换成 CSS transform,一次划过不再重建几十个 motion 元素。 - DSH 的
/菜单列出会话技能(#480) — 运行中的 DSH 会话把技能目录以裸名、source: "skill"合并进补全建议,同名时宿主命令与静态命令优先。 - 保存时拦截缺少 api 的供应商 — pi 的 provider-composer 会抛错并丢弃整个供应商,导致「有模型但链路里没有 api」的供应商带着模型一起从列表消失;现在保存前统一校验并指出缺失字段。
- 生图供应商默认全部折叠 — 载入配置时原来只收起第二个及之后的供应商,第一个始终展开,多供应商时页面被首个表单占满;展开全部 / 收起全部与新增供应商默认展开的行为不变。
- 引导页切换模型后底栏立即回写 — 模型选择器只写 localStorage,底栏不重挂载,首次发送前看起来切换无效;补一次欢迎偏好版本 bump,与思考档位选择一致。
- finalize 改为按 release_id 更新 latest 指针 — GitHub 只接受
PATCH /releases/<id>,按 tag PATCH 恒 404,v0.10.0 的 finalize 作业因此必挂。
- 设置改为会话列里的页面 Tab — 原来的 80vw×80vh 弹框会遮住整个工作区,改设置时看不到后面的会话;现在它作为页面 Tab 铺满会话列,侧栏与文件树照常可用,切到会话只是失活(保持挂载、草稿不丢),关 Tab 才卸载,仍未保存时先弹确认。「去设置」深链(Git 提交摘要、快捷消息、远端主机、DSH 安装提示、命令面板、
- v0.10.02026-11-05 · 2026-11-05 15:36 UTC
查看更新说明
这一版把 PiDeck 从「管 pi 会话」扩成「管多后端、多环境的日常工作台」:智能体记忆落地,WSL 发行版里的项目可以像本机一样添加与编辑;工程侧把主进程出网统一到 Chromium 网络栈,时间线与长列表完成虚拟化收口。
🚀 新功能
- 智能体记忆:pi 与 ACP 会话共用一份长期记忆 — 内置本地 MCP 服务器(
memory_search/memory_get/session_search/memory_status),pi 经mcp.json注册、ACP 经session/new的mcpServers挂载;记忆落 Markdown、检索走本地全文索引;设置页新增「记忆」tab:记忆与教训合成一条按记录时间倒序的时间线,行首徽标标出全局 / 项目 / 本机设备与用户偏好,落盘文件与预算收进徽标提示,逐条可删。 - 记忆导出 / 导入带预览与冲突策略 — 导出按作用域与文件分组勾选;导入先只读预览并逐条标出新增 / 重复 / 冲突 / 墓碑 / 无效,冲突可选「两版都留」或「包内版本替换本地」,墓碑双向传播防删后复活;设备作用域只在本机生效、不进导出包。
- WSL 发行版里的项目可以正常添加与编辑 — 「添加项目」改走发行版内目录浏览,文件读面在发行版内以档案用户执行,9P 鉴权不再是拦路虎。
- 宿主插件市场 — 设置 → PiDeck 插件新增「插件市场」:官方收录索引 + GitHub topic 全网搜索双源,一键安装;官方收录支持 GitHub / AtomGit 双源下载,索引失败自动回退。
- 支持导入 CodeBuddy 会话 — 与 WorkBuddy 同格式(
~/.codebuddy/projects/…),历史消息、工具调用与标题一并转换。 - 时间线右缘刻度可展开成完整会话目录 — 展开态给出全部提问,支持搜索与按条数跳转。
- 内置 TokenDance 供应商显示折扣 / 免费徽章 — 按站点公开报价表的现价与参考价比较,各项单价全零标免费。
- Web 端补齐桌面体验 — 头部一键明暗切换(首帧按已存偏好落地)、侧栏按桌面字标重构并标出 DSH / ACP / 生图后端、EasyTier 托管服务可从设置页重启。
- 侧栏支持批量移除项目记录 — 多选、全选与分页,逐个删除且单个失败不中断,结束后按成功 / 失败计数提示,只删记录不动磁盘目录。
- 新增「羊皮纸」配色 — 外观 → 配色加入 parchment:暖纸底 + 赤陶土主色,墨色文字带一点稿纸质感,可与 classic / terminal 样式自由组合,对比度走与内置色板同一套校验。
✨ 改进
- 排队消息支持「立即发送」 — ACP 忙时先停当前回合再把该条置顶发出;ACP 下该操作直接占据原「加入当前回合」那一格,不再并列三个投递按钮。
- 时间线与大纲完成虚拟化收口 — 166 个滚动容器逐条判定并把基线清零;「加载更多」一次 10 轮、扩窗按 8 轮分帧、刻度跳转先落位后扩窗。
- Git 面板不再挤字也不再卡顿 — 行内操作改为悬停浮层,文件名占满剩余宽度;变更区并入单栈虚拟化。
- 非激活会话暂停流式打字机与 Markdown 重排 — 按 active / background / hidden 三档处理,背景栏 1s 粗采样,切回时一次追平且不重放积压动画。
- 主进程出网统一到 Chromium 网络栈 — 模型 API、非模型出网、生图 / 生视频 / 语音转写与扩展目录页全部走注入的 fetchImpl。
- ACP 历史与重放补齐 — 历史可翻页,重放改按轮窗口投递。
- ACP 回合更抗抖动 — 回合失败自动重试、断线就地重连;停止时给 agent 优雅退出的窗口。
- WSL 相关设置即时生效 — 保存即热切换来源 / 发行版 / 用户,pi 检测、自更新与扩展链路都跟随。
- 模型兼容性可视化编辑 — 模型行新增「兼容性」弹框:7 个布尔键三态(跟随 / 开 / 关),供应商级同名键作为默认值,目录给出官方建议并可一键应用。
- 侧栏计数不再像日期 — 最近会话段落标「共 N 条 / 显示前 N 项」,条数紧跟动词内联(#491)。
🐛 修复
- 会话导入不再因一条坏行整体失败 — 跳过磁盘零填充区段,坏行转义控制字符后记 warn。
- 「加载更多对话」不再常驻且点击无反应 — 恢复会话后也会出现。
- 续页锚点不再空转 — 修掉导致的 React #185 整窗崩溃,以及翻页游标的两条静默失败路径。
SESSION_CATALOG_BUSY永久卡死(#476) — 退出 / 强杀残留的 0 字节锁文件不再阻断重启;退出流程增加封盘与写队列清理,避免再次留下锁。- 长列表一次性渲染(#481) — 通用虚拟栈接入更多长列表,记忆导出 / 导入弹窗改虚拟滚动并直接显示各类条数。
- Web 端轮询不再抹掉在途回复 —
/api/chat死连接同体重试;输入框上方条列宽对齐输入卡,ACP 会话加载不再空白。 - 两处冷启动崩溃 —
QueuedPromptPanel早退后调用useRef(React #310),以及 JSX children 位置的//注释导致 asChild Slot 崩溃。 - 记忆写入与检索边界 — 外部导入不再被静默裁掉、项目记忆不再撞键、检索可跨项目,
memory_get的projectId不再被静默忽略。 - 绑定会话不再把活动会话甩进「最近」再闪回 — 绑定时保留项目 / 目录 / 创建时间(首次绑定从 catalog 回填,#492)。
- 宿主插件改为全部由用户安装 — 不再随包落位;卸载改为撤权 + 删目录 + 删私有 storage。
- 生图模式补回参考图上传入口 — 「+」菜单可选图,拖入图片也走附件栏,压缩与 10MB 单图 / 32MB 会话预算与粘贴路径一致。
- 状态位置选「右侧边栏」后输入框上方仍冒出待办 / 子代理横栏 — 让位逻辑原先挂在「面板可见地展示某会话」上,面板一收起横栏就回来。现在只看显示位置设置:抽屉关闭、面板收起都不再出现,收起态改由 tab 栏显示待办进度与子代理计数,展开 / 收起偏好仍按手动操作记住。
- 最后一轮的执行过程有时候不收 — 收起信号改成按时刻判定:终态 flush 让轮次换 id 重挂载、或最终回答晚于空闲边沿落位,都能照常收起;最后一轮收起时,上面几轮手动展开过的过程也一并收掉。
🙏 致谢
感谢 op15066212 修掉时间线翻页窗口起点(#465)、历史页锚点定位(#467)、AtomGit 镜像的非交互拉取(#469)与加载更多按钮(#473);感谢 bfzha 带来远程 SFTP 传输(进度、取消与事务安全)、远端项目 root 池化,并把文件抽屉与 Git 面板的服务契约收口;感谢 fengxinzi1814 让时间线编辑框提交键跟随「发送快捷键」设置(#462)、文件预览支持重新加载(#489);感谢 san-ren 修掉引导页启动时的幽灵标签(#470)。
特别感谢 罪、橙子、微时 为软件开发提供的模型服务 🎉
- 智能体记忆:pi 与 ACP 会话共用一份长期记忆 — 内置本地 MCP 服务器(
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
PiDeck
一个用于管理多个 Pi和DSH编码 Agent 会话的开源桌面工作台(pi desktop workbench)。
PiDeck = pi desktop:把 pi 编码 Agent 装进桌面应用。如果你在 GitHub 搜索「pi desktop」「pi 客户端」「pi GUI」,找的正是它。
国内 AtomGit 托管:https://atomgit.com/ayuayue/PiDeck

这是什么
PiDeck 是一个开源的 pi 和 DSH 桌面工作台,用于在本地项目目录中统一管理 pi Agent 会话,并支持导入 Codex、Claude 本地会话以便统一浏览和恢复。基于 Electron + TypeScript 构建,提供多项目工作区、AI 会话管理、Git 集成、内置终端、模型配置和插件扩展能力,让本地 AI 编码助手在多项目环境中保持统一、可追溯、可配置。
适合谁用: 希望在桌面端同时管理多个本地项目的 AI 编程助手会话、需要统一查看会话历史与 Git 状态、并希望以图形化方式管理 pi 配置的开发者。
PiDeck 不是 pi 的分支。它是一个轻量 Electron 外壳,通过启动多个 pi --mode rpc 进程,将项目管理、会话管理、对话界面、配置管理和工具编排整合到一个原生桌面应用中——所有 Agent 能力由 pi 原生提供,会话文件也由 pi 原生读写,PiDeck 不复刻、不劫持。除 pi 外,PiDeck 还深融合了 DSH(DeepSeek Harness) 后端,详见 DSH 后端。
| Logo | 简介 |
|---|---|
| 88API Token聚合站88API 是一站式多模型 API 聚合平台,平台由海外企业运营,稳定高效支持开票。平台提供 DeepSeek 官转和开源渠道,价格低至 5 折,完美适配PiDeck项目。一个 API Key 即可统一接入海内外多种模型,覆盖文本对话、图片、音频、音乐和视频生成接口,适用于 AI 编程、Agent 自动化、内容创作及应用开发。立即注册 → |
📑 目录
✨ 核心亮点
- 🖥️ 多项目多会话并行 —— 一个窗口管理多个本地项目的全部 Agent 会话,项目间完全隔离。
- 🔌 三种会话后端 —— pi、DSH(DeepSeek Harness)、生图模式并存,同一项目下自由切换。
- 🧠 上下文感知输入 ——
@文件引用、/斜线命令、!Shell 执行,全部在同一个输入框。 - 🗂️ 会话资产化 —— 历史浏览与恢复、Codex / Claude 会话导入、一键导出 HTML。
- 🛠️ 配置可视化 —— pi 的
models.json/auth.json/settings.json免手写 JSON,连接测试一键直达。 - 📊 用量看得见 —— 供应商余额/额度查询 + 本地会话用量统计(热力图、每日/模型/项目维度)。
- 🧰 工作台全家桶 —— 文件树、Git 面板、内置终端、内置浏览器、草稿本,不用来回切窗口。
- 🐾 有温度的桌面集成 —— 桌面宠物、主题切换、系统托盘、飞书机器人、局域网 Web 访问。
📋 更新日志
最新版本 v0.11.3(2026-11-07)
v0.11.3 更新亮点
- ✨ 预览与 diff 支持自动换行
🧩 功能总览
工作区与项目
| 功能 | 说明 |
|---|---|
| 多项目工作区 | 添加、搜索、拖动排序和切换本地项目目录,同时运行多个 pi Agent,项目间完全隔离。 |
| 内置 Chat | 项目列表顶部固定 Chat 入口,写入应用用户目录,适合无需绑定代码项目的通用对话。 |
| 会话引导页 | 新建会话时预选模型与思考档位,支持 @ 文件引用,开箱即聊。 |
| 信任确认系统 | 桌面端拦截 pi 的信任确认;不信任的项目仍可打开,有 Agent 运行时禁止删除项目。 |
会话与对话
| 功能 | 说明 |
|---|---|
| 双 Agent 后端(pi / DSH) | 同一项目下可创建 pi 或 DSH 会话并自由切换浏览,详见下方 DSH 后端。 |
| 生图模式 | 独立生图后端(OpenAI 兼容 /images/generations,支持 OpenAI / 火山方舟 / SiliconFlow 等),在会话中一键切换生图。 |
| 计划模式 (Plan Mode) | Composer 工具栏切换计划模式,Agent 先生成计划,逐条确认后执行,取消后返回选单。 |
| Ask 并行问询 | 在后台创建独立问询会话并行提问,可携带主会话上下文,答案一键引用回主输入框。 |
| 活动轨迹 | 思考、工具调用和回答片段按流程聚合展示,工具详情可展开复制,状态和退出码清晰标识。 |
| 回答级修改摘要 | 每轮回答完成后在下方展示本轮修改文件名与行数,Files 面板保留本次会话总览。 |
| 待办条 | Composer 上方常驻 Agent 任务列表,待处理 / 进行中 / 已完成进度一目了然。 |
| 消息编辑/删除 | AI 回答和用户消息均支持复制、编辑和删除,编辑后回填到输入框重新发送。 |
| 会话管理 | 新建、重命名、复制、导出 HTML、删除历史会话、重启与重新加载、关闭 Agent——侧栏或右键菜单即可完成。 |
| 会话导入 | 项目右键导入 Codex 和 Claude 本地会话,转换为 PiDeck 历史会话后继续浏览和恢复。 |
| 刻度定位轴 | 会话右缘刻度轴映射时间线位置,长会话点击即可跳转到对应消息。 |
| 内容行宽限制 | 可拖拽的内容宽度滑块,默认不限宽,适应长行代码阅读或紧凑布局。 |
文件 · Git · 终端
| 功能 | 说明 |
|---|---|
| 文件抽屉 | 项目文件树(含 Git 状态标识)、内置文件编辑器;Files 面板保留本次会话修改文件列表。 |
| 外部编辑器集成 | 「在编辑器中打开 / 在资源管理器中显示」自动检测系统文件管理器,支持 JetBrains 系列编辑器目录扫描。 |
| Git 集成 | 实时显示当前分支,本地 + 远程分支选择器、分支数量徽章、分支切换和新建分支。 |
| 内置终端 Dock | 当前 Agent 绑定独立终端 tab,支持 PowerShell/cmd/sh fallback、多 tab、主题切换、拖拽高度、右键复制选区和关闭确认。 |
模型与配置
| 功能 | 说明 |
|---|---|
| 可视化配置管理 | 编辑器管理 pi 的 models.json、auth.json、settings.json:Provider 卡片 + 模型网格 + 类型感知键值编辑 + 源文件原始 JSON,保存后按需重启 Agent 生效。 |
| 连接测试 | Provider 卡片一键测试连接,模型验证不再把配置回退误判为成功。 |
| 模型能力自适应 | 兼容 pi 0.84.3:上下文窗口 / maxTokens / 思考档位按端点返回自适应,模型目录自动刷新(后台检测到新版本即拉取,设置里可关闭,也可手动检查),新模型不再不可见。 |
| 用量查询 | 供应商余额/额度查询(内置 OpenRouter、Moonshot-Kimi、通用 OpenAI 兼容网关模板,支持多账号与独立端点),卡片直接显示用量,支持自定义探针配置。 |
| 用量统计 | 基于用量统计插件的本地统计:累计概览、活跃热力图、每日用量、模型与项目维度。 |
| 代理设置 | pi agent 子进程代理与桌面端代理独立配置,模型拉取与连接测试可走桌面端代理。 |
扩展与生态
| 功能 | 说明 |
|---|---|
| 配置、Skill 与 Extension 管理 | 可视化管理全局 Skills 与 Extensions,支持启用/禁用内置扩展,区分全局与项目级配置。 |
| Prompt & Skill 商店 | prompts.chat 国际商店 + skills.sh 社区技能商店,在线搜索、浏览详情、一键安装到本地。 |
| 内置智能体 | 翻译官、PiDeck 小助手(功能/使用/开发/FAQ)、问题诊断助手(诊断报告/日志/Issue)、插件开发助手(宿主插件从脚手架到发布),在「智能体」页一键使用或绑定会话。 |
| 中文提示词精选 | 内置 XuePrompt 数据库(4000+ 中文提示词),分类/搜索/分页浏览,一键导入本地模板。 |
| 内置扩展 | 内置 pi-deck-retry-no-body(空响应自动重试)、图片生成技能模板等开箱即用的扩展。 |
| 视觉桥 | 给不支持看图的模型「装眼睛」:图片先由视觉模型转成文字描述再进入会话,模型/接口/Key 均可在设置中配置。 |
桌面与系统集成
| 功能 | 说明 |
|---|---|
| 系统托盘 | 关闭窗口默认最小化到托盘,托盘右键菜单,双击恢复窗口。 |
| 桌面宠物 | 把多 Agent 的运行状态化作桌面上的一只小精灵:状态聚合、置顶、缩放,支持 petdex 社区宠物。 |
| 主题与外观 | 浅色 / 暗色 / 跟随系统一键循环切换(侧栏底栏),语义化设计 token,暗色模式自然适配。 |
| 通知 | 全局通知升级为卡片 toast,Ask 并行问询有独立系统通知开关,后台问题可保持静默;可开启「仅失焦时提醒」,窗口在前台时不弹通知、不响铃。 |
| 主动更新 | 应用更新始终后台检查,autoDownloadUpdates 默认开启;下载完成后由用户在设置页确认「重启并安装」。Windows 安装版 / Linux x64 AppImage 使用包内 updater;macOS 无签名发行版、Linux arm64 与 deb/tar.gz 会在检查后按设备推荐匹配的安装包并支持一键下载,不再要求用户去 Release 列表里自己挑;Pi CLI 检查独立运行。 |
| 飞书机器人 | 会话可绑定飞书机器人,在飞书群里同步消息与状态。 |
| 局域网 Web 服务 | 设置中启动本机 Web 服务,局域网设备通过 IP + 端口访问网页版,支持双后端会话浏览与 DSH 工具面板。 |
| 进程监控 / 日志管理 | 设置页内置进程监控与缓存日志管理,排查问题不用翻目录。 |
🐳 DSH 后端
除 pi 外,PiDeck 还深融合了 DSH(DeepSeek Harness,DeepSeek 官方 Agent Harness):同一项目下 pi 与 DSH 会话并存、自由切换浏览,会话列表与头部均有 pi / DSH 徽标区分。
- 零端口深融合 —— DSH host 以 utilityProcess 内嵌引导运行,无
dsh web、无监听端口、无后台 HTTP,懒启动不拖慢应用打开速度。 - 完整会话能力 —— 历史分页浏览、fork(从锚点裁剪分叉,fork 点文案回填输入框)、
/compact压缩上下文;应用重启后自动恢复原会话。 - 审批与提问桥 —— DSH 的审批请求 / 提问通过桌面 Ask 弹窗应答,与 pi 会话体验一致。
- DSH 配置管理页 —— 设置页 DSH 分页:settings / credentials 可视化编辑(schema 驱动表单)、host 级模型目录、host 状态与重启。
- 技能目录与命令补全 —— 会话工具面板展示可调用的 DSH 技能(
/name直呼),Composer/菜单实时枚举 host 注册的命令(含用户/插件注册)。 - 用量查询与导出 —— DSH 模型配置页同款供应商用量显示,凭据读取 DSH 官方凭据库;历史会话可导出为自包含 HTML。
启用方式: 在设置页的 DSH 分页完成配置后,新建会话时选择 DSH 后端即可。
🏗️ 工作原理
PiDeck
├─ Electron 主进程
│ ├─ 管理项目记录
│ ├─ 启动 pi --mode rpc 进程(每个会话一个独立进程)
│ ├─ 内嵌 DSH host(utilityProcess,无端口、无后台 HTTP)
│ ├─ 管理 Agent 绑定的本地 pty 终端
│ ├─ 桥接文件、会话、Git 操作
│ ├─ 检查应用与 Pi CLI 更新
│ └─ 暴露最小化、经校验的安全 IPC API
│
├─ Electron Preload
│ └─ 经 contextBridge 向 Renderer 暴露 window.piDesktop
│
├─ React Renderer
│ ├─ 项目 / 会话列表与会话时间线(流式输出)
│ ├─ 文件 / 历史 / Git / 浏览器抽屉
│ ├─ 配置管理 / 技能商店 / 提示词库
│ ├─ Agent 绑定的 Terminal Dock
│ ├─ 模型与上下文状态栏
│ └─ 设置 UI(常用 / 外观 / 代理 / Web 服务 / 桌面宠物 / 视觉桥 / 生图 等)
│
└─ Pi 运行时
├─ 每个 Agent 会话一个独立 pi RPC 进程
├─ 项目级 cwd 隔离
└─ 使用 pi 原生会话 / 工具 / 模型 / 上下文
核心设计原则:一个 Agent 会话 = 一个 pi RPC 进程,确保会话隔离,让 pi 继续负责其原生能力;PiDeck 与 pi 之间只通过 stdio JSON-RPC 通信。DSH 后端以 utilityProcess 内嵌引导,同样不引入额外网络端口。
📦 下载安装
Windows、macOS、Linux 平台的预构建安装包在 GitHub Release 中发布:
PiDeck 需要单独安装
piCLI 并确保其加入系统PATH。
开发版(PiDeck Dev)
除正式版(PiDeck)外,项目同时发布**开发版(PiDeck Dev)**安装包,用于提前体验预发布功能:
- 获取入口:GitHub Releases 中标记为 Pre-release 的版本(版本号带
-beta或-beta.N后缀,如v0.7.8-beta、v0.8.0-beta.1)。 - 并行安装:PiDeck Dev 与正式版使用独立的应用标识(appId)、安装目录与快捷方式,可同时安装、互不影响。
- 数据模式二选一:首次启动 PiDeck Dev 时可选择「与正式版共用数据」或「独立数据目录」,后续可在应用内切换并按引导迁移数据。
- 协议差异:开发版注册
pideck-dev://深度链接协议,与正式版的pideck://互不抢占。
环境要求:
- 系统
PATH中可访问pi命令 - 已完成 pi 的 Provider / 登录 / API Key 配置
验证 pi 是否可用:
pi --version
pi --mode rpc
从源码构建开发版:
npm run dist:win:dev # Windows(NSIS + portable + zip)
npm run dist:mac:dev # macOS(DMG + zip)
npm run dist:linux:dev # Linux(AppImage + deb + tar.gz)
产物名带 PiDeck-Dev- 前缀,可与 stable 包并存安装。注意 npm run dist:win 等 stable 系打包命令不会注入 dev 通道标记——版本号含 -beta 也不改变通道判定(通道由构建命令决定,不由版本号决定)。
📱 移动端客户端
社区维护的 PiDeck 手机客户端,配合桌面端「设置 → Web 服务 → 局域网 Web 服务」使用:
| 项目 | 说明 |
|---|---|
| qgx1992/pideck-mobile | 协议核心 + Capacitor 手机客户端:扫码 / 手填链接配对、流式会话、通知与工作区,可自行打包 APK。 |
| xrbbm/PocketDeck | 原生 Android(Kotlin + Jetpack Compose)客户端:扫码直达最近会话、审批卡片、Git / 文件工作区,Releases 可直接下载 APK。 |
🧰 快速开始(从源码运行)
git clone https://github.com/ayuayue/PiDeck.git
cd PiDeck
npm install
npm run make-icon
npm run dev
环境要求:Node.js 20+、npm。
❓ 常见问题 FAQ
Q:PiDeck 和 pi 是什么关系?会改动我的会话文件吗?
A:PiDeck 是 pi 的桌面外壳(不是分支):Agent 行为、工具调用、会话读写、模型调用全部由 pi 原生完成,PiDeck 只负责窗口管理、进程生命周期、会话浏览、Git 面板、终端和设置这些「框架层」的事,两者通过 stdio JSON-RPC 通信。pi / DSH 会话仍由各自后端原生读写,PiDeck 不改变原有会话格式;导入的 Codex / Claude 会话会转换为 PiDeck 历史副本,不影响原文件。
Q:启动后提示找不到 pi?
A:PiDeck 依赖系统 PATH 中的 pi 命令。先在终端执行 pi --version 确认可用;若不可用,请先安装 pi CLI 并配置好 Provider / API Key,再启动 PiDeck。
Q:支持哪些模型?在哪配置?
A:模型能力完全由 pi 的配置决定。PiDeck 提供可视化编辑器管理 models.json / auth.json / settings.json,支持连接测试;DSH 后端使用 DeepSeek 系模型,生图模式使用独立配置的生图供应商(OpenAI / 火山方舟 / SiliconFlow 等)。
Q:DSH 是什么?怎么启用?
A:DSH(DeepSeek Harness)是 DeepSeek 官方的 Agent Harness,PiDeck 对其做了深融合,能力清单见上文 DSH 后端专节。在设置页的 DSH 分页完成配置后,新建会话时选择 DSH 后端即可。
Q:会收集我的数据吗?
A:应用默认发送匿名、低频的 app_heartbeat 使用统计(可在设置中关闭),仅用于了解版本分布与平台兼容性;不会收集项目路径、代码、消息内容、会话内容或文件名,也不会上传文件。
Q:遇到问题如何反馈?
A:欢迎加入文末 QQ 群 / 微信群反馈(也可加作者微信 caoayu97),或到 GitHub Issues 提交问题;排查问题时可在设置页导出日志。
🧑💻 开发指南
| 命令 | 说明 |
|---|---|
npm run dev | 启动开发模式 |
npm run typecheck | 运行 TypeScript 类型检查 |
npm run test | 运行全量单测(node --test) |
npm run build | 构建 Renderer + Main 产物 |
npm run pack | 快速打包(--dir,用于验证) |
npm run dist | 为当前平台打包 |
npm run dist:win | 打包 Windows(NSIS + portable + zip) |
npm run dist:mac | 打包 macOS(DMG + zip) |
npm run dist:linux | 打包 Linux(AppImage + deb + tar.gz) |
npm run dist:win:dev | 打包开发版 Windows(PiDeck Dev,dev 通道 + 独立应用身份) |
npm run dist:mac:dev | 打包开发版 macOS(PiDeck Dev,dev 通道 + 独立应用身份) |
npm run dist:linux:dev | 打包开发版 Linux(PiDeck Dev,dev 通道 + 独立应用身份) |
npm run test:e2e | 运行 Playwright 端到端测试 |
npm run docs:dev | 本地预览官网(docs-site) |
npm run make-icon | 生成图标资源到 build/icon.svg |
浏览器预览模式
直接打开 http://localhost:5173/ 进行布局和响应式调试。Renderer 在 window.piDesktop 不可用时自动降级为 mock 数据,无需 Electron 环境。但涉及 Agent、会话、文件操作等真实 IPC 功能仍需在 Electron 中验证。
项目结构
src/
├─ main/ # Electron 主进程(唯一可访问 Node 能力的业务层)
│ ├─ pi/ # pi RPC 进程管理、消息解析
│ ├─ sessions/ # 会话扫描、导入、SessionRuntimeCoordinator
│ ├─ git/ # GitService(status/diff/commit 等)
│ ├─ prompts/ # 本地模板 + XuePrompt 中文精选
│ ├─ skills/ # SkillManager
│ ├─ extensions/ # ExtensionManager
│ ├─ settings/ # SettingsStore + DesktopProxy
│ ├─ terminal/ # node-pty 终端会话
│ ├─ pet/ # 桌面宠物
│ ├─ feishu/ # 飞书集成
│ ├─ web/ # 局域网 Web 服务
│ ├─ ipc/ # IPC 域注册(按域拆分 handler)
│ └─ index.ts # 主进程入口(只做装配)
│
├─ preload/ # contextBridge 暴露受限 IPC API
│
├─ renderer/
│ └─ src/
│ ├─ atoms/ # Jotai 状态(session-first)
│ ├─ components/ # session / sidebar / workspace / ui-shadcn 等
│ ├─ hooks/ # 渲染层 hooks
│ ├─ i18n/ # 文案(zh-CN / zh-TW / en-US,繁体由 scripts/genZhTwCopy.mjs 生成)
│ └─ styles/ # 按域拆分的样式 + 语义 token
│
└─ shared/ # 主/渲染共享类型与 IPC 通道定义
更多架构约定见 AGENTS.md,参与开发前请先阅读 CONTRIBUTING.md。
🤝 参与贡献
欢迎任何形式的贡献:Bug 反馈、功能建议、文档改进、代码 PR。
- 提交 Issue 前请先搜索是否已有同类问题;
- 代码 PR 请遵循仓库的架构约定与提交规范,详见 CONTRIBUTING.md。
🙌 贡献者
感谢所有为 PiDeck 提交代码、反馈问题和帮助推广的朋友!完整名单(含每位提交者贡献的功能与 Issue / PR 编号)见 CONTRIBUTORS.md。
💖 特别感谢:罪、橙子、微时 为 PiDeck 的软件开发提供模型服务 🎉
💬 社区交流
欢迎加入 PiDeck 社区群进行交流、反馈和讨论:
| 渠道 | 入口 |
|---|---|
| QQ 交流群 | 1026218644 |
| 微信群 | 扫描下方二维码(群二维码 7 天有效,过期请加作者微信) |
| 作者微信 | caoayu97(加好友请备注「PiDeck」) |
QQ 群与微信群的二维码都在**这里(腾讯文档,会定时更新)**。上面这张图可能会过期,以链接里的为准。
🔒 安全与隐私
本应用启动本地 pi 进程并通过 Electron IPC 暴露有限的文件操作。请仅运行你信任的源码。应用默认发送匿名、低频的 app_heartbeat 使用统计,用于了解版本分布、平台兼容性和活跃安装数量,可在设置中关闭;不会收集项目路径、代码、消息内容、会话内容或文件名,也不会上传文件。第三方统计服务会接收请求元数据。pi agent 子进程代理和桌面端模型拉取/测试代理可独立配置;系统浏览器打开的外部链接仍由系统浏览器网络设置决定。
🛒 作者的小店
顺手打个广告:需要充值 ChatGPT Plus / Pro、Claude 的同学可以找我 —— 官网直充、保订阅,成品号质保订阅,可开发票(加 6% 税点)。
价目表仅供参考:汇率与官方调价会让价格波动,具体以实际问询为准,欢迎来询价。
☕ 赞助
如果 PiDeck 对你有帮助,欢迎请作者喝杯咖啡。感谢支持。
支付宝:打开 PiDeck,点左上角「PiDeck」品牌名 → 「请作者喝咖啡」,手机支付宝扫码即可。 (购买链接按设备生成,无法固化成静态二维码,所以这里只放应用内入口。)
License
MIT