Repository navigation
Releases: ImYoyoData/pi-desktop
Release list
Pi Desktop v0.3.6-rc.6
主要更新
本版重做过程区可视化:工具结果按语义分型渲染(文件视图 / 词级 diff /
终端卡 / JSON 树),工作区块展开即为过程时间线,思考行支持 Markdown、
字数与实时耗时;同时新增浏览器直连 dev 页面的开发预览桥、内置工具
使用偏好引导与流式渲染 0ms 实时档。
新功能 Features
-
过程区可视化重做:工具行改为「动作+目标 / 状态+结果」两行结构,
展开工作区块即为过程时间线。工具结果分型渲染——读取走文件视图,
编辑走词级 diff,命令走终端卡,其余走 JSON 树、路径清单或脚本报告;
嵌套调用缩进列出,可展开看参数、结果与失败原因。 -
思考行:思考内容支持 Markdown 与折叠,行尾显示字数与耗时,
思考中每秒刷新实时耗时。 -
浏览器直连 dev 页面预览:外部浏览器打开 Vite dev 页面即可操作
同一份桌面状态,文件、Git、会话、终端都可用。 -
流式渲染 0ms 实时档:不节流、逐帧渲染。
-
内置工具使用偏好:把内容搜索、读文件与列目录推回内置工具。
-
Process area rebuilt: tool rows use an "action + target / status +
result" layout and expanding a work section turns it into a process
timeline; results render by kind (file view, word-level diff, terminal
card, JSON tree, path list or script report), and nested calls are
listed with their arguments, results and failure reasons. -
Thinking rows: Markdown rendering and collapsing, with character
count and a live duration while thinking. -
Browser preview: an external browser can open the Vite dev page and
drive the same desktop state (files, Git, sessions, terminals). -
0 ms realtime streaming option: no throttling, per-frame rendering.
-
Built-in tool usage preferences: content search, file reads and
directory listings go back to the built-in tools.
变更 Changes
-
工具步骤行:度量紧跟内容显示,去掉重复的待办进度与耗时。
-
diff 统一为 unified:底层格式归一化,底色走主题变量、词级改动加深。
-
codemode 卡片:标题改用调用概况(「N 个调用」)。
-
Tool step rows: metrics sit right after the content, duplicated todo
progress and durations are gone. -
Diffs normalized to unified with theme-variable backgrounds and
darker word-level changes. -
codemode cards: the title uses the call summary ("N calls").
修复 Fixes
-
上一轮工具与思考内容被裁掉:不再删除最新 user 之前的过程行。
-
思考过程中停止自动滚动:跟随判定只认滚轮、自身滚动条与中键。
-
JSON 树与结构化输出:折叠失效、多文件补丁行数、空 diff、路径清单误判。
-
嵌套调用:展开可看失败原因,标签统一为工具名。
-
会话排序:固定会话优先,运行中的会话不因活动抢位。
-
安装器:安装目录修正后同步
$appExe,快捷方式不再指向旧路径。 -
Previous-turn tool and thinking rows were dropped: process rows before
the newest user message are no longer deleted. -
Auto-scroll stopped during thinking: follow mode now keys off the wheel,
the scroller's own scrollbar and middle-click only. -
JSON tree and structured output: collapsing, multi-file patch counts,
empty diffs and path-list misdetection. -
Nested calls: failure reasons are shown on expand and labels use the
tool name. -
Session ordering: pinned sessions come first and running sessions no
longer jump position on activity. -
Installer:
$appExeis re-synced after the install directory is
corrected, so shortcuts no longer point at the old path.
下载 / Downloads
- Windows x64:
Pi-Desktop-*-win-x64-setup.exe - Windows ARM64:
Pi-Desktop-*-win-arm64-setup.exe - macOS Apple Silicon:
Pi-Desktop-*-mac-arm64.dmg - macOS Intel:
Pi-Desktop-*-mac-x64.dmg - Linux x64:
Pi-Desktop-*-linux-x86_64.AppImage
What's Changed
- dev by @YueMian-u in #47
Full Changelog: v0.3.6-rc.5...v0.3.6-rc.6
Pi Desktop v0.3.6-rc.5
主要更新
本版重做过程区可视化:工具结果按语义分型渲染(文件视图 / 词级 diff /
终端卡 / JSON 树),工作区块展开即为过程时间线,思考行支持 Markdown、
字数与实时耗时;同时新增浏览器直连 dev 页面的开发预览桥、内置工具
使用偏好引导与流式渲染 0ms 实时档。
新功能 Features
-
过程区可视化重做:工具行改为「动作+目标 / 状态+结果」两行结构,
展开工作区块即为过程时间线。工具结果分型渲染——读取走文件视图,
编辑走词级 diff,命令走终端卡,其余走 JSON 树、路径清单或脚本报告;
嵌套调用缩进列出,可展开看参数、结果与失败原因。 -
思考行:思考内容支持 Markdown 与折叠,行尾显示字数与耗时,
思考中每秒刷新实时耗时。 -
浏览器直连 dev 页面预览:外部浏览器打开 Vite dev 页面即可操作
同一份桌面状态,文件、Git、会话、终端都可用。 -
流式渲染 0ms 实时档:不节流、逐帧渲染。
-
内置工具使用偏好:把内容搜索、读文件与列目录推回内置工具。
-
Process area rebuilt: tool rows use an "action + target / status +
result" layout and expanding a work section turns it into a process
timeline; results render by kind (file view, word-level diff, terminal
card, JSON tree, path list or script report), and nested calls are
listed with their arguments, results and failure reasons. -
Thinking rows: Markdown rendering and collapsing, with character
count and a live duration while thinking. -
Browser preview: an external browser can open the Vite dev page and
drive the same desktop state (files, Git, sessions, terminals). -
0 ms realtime streaming option: no throttling, per-frame rendering.
-
Built-in tool usage preferences: content search, file reads and
directory listings go back to the built-in tools.
变更 Changes
-
工具步骤行:度量紧跟内容显示,去掉重复的待办进度与耗时。
-
diff 统一为 unified:底层格式归一化,底色走主题变量、词级改动加深。
-
codemode 卡片:标题改用调用概况(「N 个调用」)。
-
Tool step rows: metrics sit right after the content, duplicated todo
progress and durations are gone. -
Diffs normalized to unified with theme-variable backgrounds and
darker word-level changes. -
codemode cards: the title uses the call summary ("N calls").
修复 Fixes
-
上一轮工具与思考内容被裁掉:不再删除最新 user 之前的过程行。
-
思考过程中停止自动滚动:跟随判定只认滚轮、自身滚动条与中键。
-
JSON 树与结构化输出:折叠失效、多文件补丁行数、空 diff、路径清单误判。
-
嵌套调用:展开可看失败原因,标签统一为工具名。
-
会话排序:固定会话优先,运行中的会话不因活动抢位。
-
安装器:安装目录修正后同步
$appExe,快捷方式不再指向旧路径。 -
Previous-turn tool and thinking rows were dropped: process rows before
the newest user message are no longer deleted. -
Auto-scroll stopped during thinking: follow mode now keys off the wheel,
the scroller's own scrollbar and middle-click only. -
JSON tree and structured output: collapsing, multi-file patch counts,
empty diffs and path-list misdetection. -
Nested calls: failure reasons are shown on expand and labels use the
tool name. -
Session ordering: pinned sessions come first and running sessions no
longer jump position on activity. -
Installer:
$appExeis re-synced after the install directory is
corrected, so shortcuts no longer point at the old path.
下载 / Downloads
- Windows x64:
Pi-Desktop-*-win-x64-setup.exe - Windows ARM64:
Pi-Desktop-*-win-arm64-setup.exe - macOS Apple Silicon:
Pi-Desktop-*-mac-arm64.dmg - macOS Intel:
Pi-Desktop-*-mac-x64.dmg - Linux x64:
Pi-Desktop-*-linux-x86_64.AppImage
What's Changed
- dev by @YueMian-u in #46
Full Changelog: v0.3.6-rc.4...v0.3.6-rc.5
Pi Desktop v0.3.6-rc.4
主要更新
本版重做过程区可视化:工具结果按语义分型渲染(文件视图 / 词级 diff /
终端卡 / JSON 树),工作区块展开即为过程时间线,思考行支持 Markdown、
字数与实时耗时;同时新增浏览器直连 dev 页面的开发预览桥、内置工具
使用偏好引导与流式渲染 0ms 实时档。
新功能 Features
-
过程区可视化重做:工具行改为「动作+目标 / 状态+结果」两行结构,
展开工作区块即为过程时间线。工具结果分型渲染——读取走文件视图,
编辑走词级 diff,命令走终端卡,其余走 JSON 树、路径清单或脚本报告;
嵌套调用缩进列出,可展开看参数、结果与失败原因。 -
思考行:思考内容支持 Markdown 与折叠,行尾显示字数与耗时,
思考中每秒刷新实时耗时。 -
浏览器直连 dev 页面预览:外部浏览器打开 Vite dev 页面即可操作
同一份桌面状态,文件、Git、会话、终端都可用。 -
流式渲染 0ms 实时档:不节流、逐帧渲染。
-
内置工具使用偏好:把内容搜索、读文件与列目录推回内置工具。
-
Process area rebuilt: tool rows use an "action + target / status +
result" layout and expanding a work section turns it into a process
timeline; results render by kind (file view, word-level diff, terminal
card, JSON tree, path list or script report), and nested calls are
listed with their arguments, results and failure reasons. -
Thinking rows: Markdown rendering and collapsing, with character
count and a live duration while thinking. -
Browser preview: an external browser can open the Vite dev page and
drive the same desktop state (files, Git, sessions, terminals). -
0 ms realtime streaming option: no throttling, per-frame rendering.
-
Built-in tool usage preferences: content search, file reads and
directory listings go back to the built-in tools.
变更 Changes
-
工具步骤行:度量紧跟内容显示,去掉重复的待办进度与耗时。
-
diff 统一为 unified:底层格式归一化,底色走主题变量、词级改动加深。
-
codemode 卡片:标题改用调用概况(「N 个调用」)。
-
Tool step rows: metrics sit right after the content, duplicated todo
progress and durations are gone. -
Diffs normalized to unified with theme-variable backgrounds and
darker word-level changes. -
codemode cards: the title uses the call summary ("N calls").
修复 Fixes
-
上一轮工具与思考内容被裁掉:不再删除最新 user 之前的过程行。
-
思考过程中停止自动滚动:跟随判定只认滚轮、自身滚动条与中键。
-
JSON 树与结构化输出:折叠失效、多文件补丁行数、空 diff、路径清单误判。
-
嵌套调用:展开可看失败原因,标签统一为工具名。
-
会话排序:固定会话优先,运行中的会话不因活动抢位。
-
安装器:安装目录修正后同步
$appExe,快捷方式不再指向旧路径。 -
Previous-turn tool and thinking rows were dropped: process rows before
the newest user message are no longer deleted. -
Auto-scroll stopped during thinking: follow mode now keys off the wheel,
the scroller's own scrollbar and middle-click only. -
JSON tree and structured output: collapsing, multi-file patch counts,
empty diffs and path-list misdetection. -
Nested calls: failure reasons are shown on expand and labels use the
tool name. -
Session ordering: pinned sessions come first and running sessions no
longer jump position on activity. -
Installer:
$appExeis re-synced after the install directory is
corrected, so shortcuts no longer point at the old path.
下载 / Downloads
- Windows x64:
Pi-Desktop-*-win-x64-setup.exe - Windows ARM64:
Pi-Desktop-*-win-arm64-setup.exe - macOS Apple Silicon:
Pi-Desktop-*-mac-arm64.dmg - macOS Intel:
Pi-Desktop-*-mac-x64.dmg - Linux x64:
Pi-Desktop-*-linux-x86_64.AppImage
What's Changed
- dev by @YueMian-u in #44
- 支持了日语和繁体中文还有自动构建支持了Linux by @YueMian-u in #45
Full Changelog: v0.3.6-rc.3...v0.3.6-rc.4
Pi Desktop v0.3.6-rc.3
主要更新
本版重构桌面端界面与分发链路:渲染层从 Vue 迁移到 React,控件与设置页
统一为 antd v6 的胶囊卡片风格;重写自动更新与安装包流程;补齐 Markdown
相对路径图片解析;并修复多处渲染与交互问题。
新功能 Features
-
自动更新:版本检测、分片下载与安装后重启,标题栏与关于页展示下载进度。
-
自定义安装器:NSIS 脚本统一安装目录、检测新旧目录占用,安装包命名
统一为Pi-Desktop-*。 -
Markdown 图片:相对路径图片按文档所在目录解析。
-
React 界面:渲染层由 Vue 迁移到 React + antd v6,设置项统一为胶囊
卡片风格,标题栏显示 Pi 图标。 -
Auto update: version check, chunked download and restart after
install, with progress shown in the title bar and About panel. -
Custom installer: the NSIS script normalizes the install
directory, detects occupancy of old and new directories, and
unifies package names asPi-Desktop-*. -
Markdown images: relative image paths resolve against the
document directory. -
React UI: renderer migrated from Vue to React + antd v6, with
capsule-card settings and a Pi icon in the title bar.
变更 Changes
-
精简入口:移除欢迎页与空会话引导、会话分类、会话信息弹窗、
消息预览、界面分隔线与工具输出截断开关、模式与提示定制项。 -
视觉细节:终端视口底色改透明,壁纸模式下修正浮层与控件表面。
-
Simplified entry points: removed the welcome page and empty-state
guide, session categories, session info dialog, message previews,
the divider and tool-output truncation switches, and the mode/tip
customization items. -
Visual details: transparent terminal viewport background, plus
overlay and control surfaces fixed in wallpaper mode.
修复 Fixes
-
消息区 Markdown 渲染失效:容器 class 粘连导致聊天样式整块失效。
-
分栏线拖不动:拖拽监听被重渲染摘除、拖拽比例算错。
-
虚拟滚动渲染问题;后台截断来源可区分并接入 i18n。
-
Message markdown rendering: glued container classes broke the
whole chat stylesheet. -
Split-pane divider: the drag listener was removed on re-render
and the ratio was computed incorrectly. -
Virtual scrolling rendering issues; background truncation now
reports its source and is localized.
下载 / Downloads
- Windows x64:
Pi-Desktop-*-win-x64-setup.exe - Windows ARM64:
Pi-Desktop-*-win-arm64-setup.exe - macOS Apple Silicon:
Pi-Desktop-*-mac-arm64.dmg - macOS Intel:
Pi-Desktop-*-mac-x64.dmg
What's Changed
- dev by @YueMian-u in #40
Full Changelog: v0.3.6-rc.2...v0.3.6-rc.3
Pi Desktop v0.3.6-rc.2
主要更新(v0.3.6-rc.1)
本版重点:跟进 pi 1.1.0(含 1.0.1–1.0.4)的全部变更,升级 SDK,
适配 azure 更名、工具耗时记录、取消态与 MCP 客户端注册方式,并在
界面上接入采样参数、MCP 项目覆盖、内置工具与提示模板管理,终端改用
pi 原生运行状态;并修复退出后进程残留。
新功能 Features
-
模型可编辑采样参数:自定义模型编辑表单新增「采样参数」折叠区,
直接编辑samplingParams(如temperature、top_p)与
samplingParamsByThinkingLevel(按 off/minimal/low/medium/high/
xhigh/max 分档覆盖),对应 pi 1.0.2 的按思考档采样设置(仅
openai-completions / openai-responses / azure 生效)。 -
MCP 服务器支持项目覆盖:设置 → MCP 的用户级服务器新增「此项目」
三态选择(跟随全局 / 在此项目启用 / 在此项目禁用),写入
<工作区>/.pi/mcp.json的覆盖条目(无 command/url,只改启用态),
对应 pi 1.0.1 的项目级覆盖。 -
工具页覆盖全部内置工具:内置工具开关从 codemode / tool_search
扩展到 pi 全部可切换工具(read / bash / powershell / edit / write /
grep / find / ls / codemode / tool_search)。 -
MCP 支持按工具暴露:MCP 服务器编辑新增「按工具暴露(toolExposure)」,
按工具名或通配符覆盖服务器的 exposure(codemode / deferred / direct /
hidden),hidden 服务器也能只放行个别工具。 -
思考档与模型设置:「运行」设置新增「思考档与模型」节:默认启动
思考档(defaultThinkingLevel)、按模型启动思考档(modelThinkingLevels)、
启用模型循环列表(enabledModels 模式)、隐藏思考块开关(hideThinkingBlock)。 -
消息投递方式:新增「消息投递」节,引导与追问队列可选全部投递或
逐条投递(steeringMode / followUpMode)。 -
传输方式与 npm 命令:环境节新增 provider 传输方式(transport:
auto / sse / websocket / websocket-cached)与 npm 命令(npmCommand)设置。 -
提示模板管理页:设置页恢复「提示模板」分组(与智能体/技能同级),
列出用户级~/.pi/agent/prompts/与工作区.pi/prompts/的模板,
支持新建、编辑、启停与删除。 -
终端改用 pi 原生运行状态:终端面板解析 pi 上报的 OSC 7501
(Program Status Protocol),tab 标签显示运行状态点(运行中呼吸点 /
等待输入 / 已完成 / 出错),tooltip 带会话名或错误首行。 -
内置扩展补齐 llama.cpp:设置 → 工具的「内置扩展」现在列出 pi 全部
四个内置扩展(llama.cpp / codemode / tool-search / mcp)。 -
Editable sampling params for custom models: the model
editor gains a collapsible "Sampling params" section for
samplingParamsandsamplingParamsByThinkingLevel(per
off/minimal/low/medium/high/xhigh/max level), following pi
1.0.2's sampling-by-thinking-level support (openai-completions
/ openai-responses / azure only). -
MCP project overrides: user-level MCP servers gain an
"In this project" selector (follow global / enable in this
project / disable in this project) writing an override entry
into<workspace>/.pi/mcp.json, following pi 1.0.1's project
overrides. -
Built-in tool switches cover every tool: the tool page
now toggles all switchable pi tools (read / bash / powershell
/ edit / write / grep / find / ls / codemode / tool_search). -
Per-tool MCP exposure: MCP server editing gains
"Per-tool exposure (toolExposure)" to override the server
exposure per tool name or wildcard (codemode / deferred /
direct / hidden). -
Thinking level and model settings: the Runtime page
gains a "Thinking level and models" section — default
thinking level, per-model thinking level, enabled model
patterns, and a hide-thinking-blocks switch. -
Message delivery: a new "Message delivery" section
chooses whether queued steering and follow-ups are delivered
all at once or one at a time. -
Transport and npm command: the Environment section
gains provider transport (auto / sse / websocket /
websocket-cached) and npm command settings. -
Prompt templates page: Settings restores the "Prompt
templates" group, listing user (~/.pi/agent/prompts/) and
workspace (.pi/prompts/) templates with create, edit,
enable/disable and delete. -
Terminals use pi's native run status: the terminal
parses pi's OSC 7501 (Program Status Protocol) reports,
showing a status dot on the tab (working / waiting / done /
error). -
Built-in extensions list completed with llama.cpp:
Settings → Tools now lists all four of pi's built-in
extensions (llama.cpp / codemode / tool-search / mcp).
变更 Changes
-
接入官方预览包 pi-durable:新增依赖
@earendil-works/pi-durable
1.1.0(官方 durable 会话/任务/文档运行时,Experimental)。本轮仅打通
依赖与类型/构建,行为不变。 -
升级 pi 到 1.1.0:
@earendil-works/pi-coding-agent、
@earendil-works/pi-agent-core、@earendil-works/pi-ai从 1.0.0 升到
1.1.0(pi-codemode / pi-mcp / pi-tui / pi-telemetry 同步)。 -
azure provider 更名自动迁移(pi 1.0.3 破坏性变更):pi 把
azure-openai-responses更名为azure。启动时自动把auth.json、
models.json、settings.json、mcp.json里的旧 id 改名为新 id,
Azure 凭据与设置不用手动搬。 -
工具耗时改用 pi 记录的执行时间(pi 1.1.0):工具卡片优先显示 pi
记录的执行耗时,历史会话也能还原每个工具的实际耗时。 -
取消与自然完成可区分(pi 1.1.0):
agent_settled事件现在带
aborted。取消落在工具执行中、没留下任何回答时,补一张「已取消」卡。 -
MCP OAuth 支持客户端注册方式(pi 1.0.1):可选动态注册(DCR,默认)
或客户端 ID 元数据文档(CIMD,oauth.clientRegistration: "cimd")。 -
依赖全面更新:@types/node 26.6.5、electron 44.7.0、marked 18.1.0、
mermaid 12.1.0、monaco-editor 0.57.0、vite 7.3.7、vitest 5.0.3
等 18 项。受上游 peer 约束暂不升级:vite 8、TypeScript 7、
katex 0.19。 -
Upgraded pi to 1.1.0:
@earendil-works/pi-coding-agent,
@earendil-works/pi-agent-coreand
@earendil-works/pi-aimoved from 1.0.0 to 1.1.0
(pi-codemode / pi-mcp / pi-tui / pi-telemetry follow). -
Automatic migration for the azure provider rename
(pi 1.0.3 breaking change): pi renamed
azure-openai-responsestoazure. On launch the old id is
rewritten to the new one inauth.json,models.json,
settings.jsonandmcp.json. -
Tool durations now come from pi's recorded execution time
(pi 1.1.0): tool cards prefer pi's recorded duration, and history
restores the real duration of every tool. -
Cancelled runs are told apart from finished ones (pi 1.1.0):
agent_settlednow carriesaborted. -
MCP OAuth client registration mode (pi 1.0.1): dynamic
registration (DCR, default) or Client ID Metadata Document (CIMD,
oauth.clientRegistration: "cimd"). -
Dependencies refreshed: @types/node 26.6.5, electron 44.7.0,
marked 18.1.0, mermaid 12.1.0, monaco-editor 0.57.0, vite 7.3.7,
vitest 5.0.3 and more. Held back by upstream peer constraints:
vite 8, TypeScript 7, katex 0.19.
修复 Fixes
-
修复退出后进程残留:退出前未回收 node-pty 终端,ConPTY 管道句柄
与 shell 子进程(pwsh / conhost)卡住主进程退出,窗口关掉后 electron
主进程经常残留。现在退出时统一回收全部 pty,关闭窗口后进程树完整退出。 -
修复 models.json 文本报错不友好:粘贴非法 JSON 时现在报
Invalid models.json: …,而不是裸的解析器异常。 -
修复功能裁剪遗留的问题:恢复被清理误删的四个 i18n 键与 preload 的
contributors.avatar、修复 Composer 模板缺少的闭合标签(此前会中断
构建)、移除未使用的 NModal 导入。 -
Fixed processes left behind after quit: node-pty
terminals were never reclaimed on quit, so ConPTY pipe
handles and shell children (pwsh / conhost) stalled the main
process and electron.exe often lingered after the window
closed. All ptys are now disposed on quit. -
Friendlier models.json parse errors: pasting invalid
JSON now reportsInvalid models.json: …instead of a raw
parser error. -
Fixed issues left by the feature removal: restored the
four i18n keys accidentally deleted during cleanup and the
preloadcontributors.avatar, fixed the Composer template's
missing closing tag (which had broken the build), and dropped
the unused NModal import.
下载 / Downloads
- Windows x64:
Pi Desktop-*-win-x64-setup.exe - Windows ARM64:
Pi Desktop-*-win-arm64-setup.exe - macOS Apple Silicon:
Pi Desktop-*-mac-arm64.dmg - macOS Intel:
Pi Desktop-*-mac-x64.dmg
What's Changed
- 修复粘贴到消息框内容被改写(#36):逐字还原、纯空格剪贴板不再丢弃;随 v0.3.6-rc.2 一并发布 pi 1.2.0 跟进与稳定性修复 by @YueMian-u in #38
Full Changelog: v0.3.6-rc.1...v0.3.6-rc.2
Pi Desktop v0.3.6-rc.1
主要更新(v0.3.6-rc.1)
本版重点:跟进 pi 1.1.0(含 1.0.1–1.0.4)的全部变更,升级 SDK,
适配 azure 更名、工具耗时记录、取消态与 MCP 客户端注册方式,并在
界面上接入采样参数、MCP 项目覆盖、内置工具与提示模板管理,终端改用
pi 原生运行状态;并修复退出后进程残留。
新功能 Features
-
模型可编辑采样参数:自定义模型编辑表单新增「采样参数」折叠区,
直接编辑samplingParams(如temperature、top_p)与
samplingParamsByThinkingLevel(按 off/minimal/low/medium/high/
xhigh/max 分档覆盖),对应 pi 1.0.2 的按思考档采样设置(仅
openai-completions / openai-responses / azure 生效)。 -
MCP 服务器支持项目覆盖:设置 → MCP 的用户级服务器新增「此项目」
三态选择(跟随全局 / 在此项目启用 / 在此项目禁用),写入
<工作区>/.pi/mcp.json的覆盖条目(无 command/url,只改启用态),
对应 pi 1.0.1 的项目级覆盖。 -
工具页覆盖全部内置工具:内置工具开关从 codemode / tool_search
扩展到 pi 全部可切换工具(read / bash / powershell / edit / write /
grep / find / ls / codemode / tool_search)。 -
MCP 支持按工具暴露:MCP 服务器编辑新增「按工具暴露(toolExposure)」,
按工具名或通配符覆盖服务器的 exposure(codemode / deferred / direct /
hidden),hidden 服务器也能只放行个别工具。 -
思考档与模型设置:「运行」设置新增「思考档与模型」节:默认启动
思考档(defaultThinkingLevel)、按模型启动思考档(modelThinkingLevels)、
启用模型循环列表(enabledModels 模式)、隐藏思考块开关(hideThinkingBlock)。 -
消息投递方式:新增「消息投递」节,引导与追问队列可选全部投递或
逐条投递(steeringMode / followUpMode)。 -
传输方式与 npm 命令:环境节新增 provider 传输方式(transport:
auto / sse / websocket / websocket-cached)与 npm 命令(npmCommand)设置。 -
提示模板管理页:设置页恢复「提示模板」分组(与智能体/技能同级),
列出用户级~/.pi/agent/prompts/与工作区.pi/prompts/的模板,
支持新建、编辑、启停与删除。 -
终端改用 pi 原生运行状态:终端面板解析 pi 上报的 OSC 7501
(Program Status Protocol),tab 标签显示运行状态点(运行中呼吸点 /
等待输入 / 已完成 / 出错),tooltip 带会话名或错误首行。 -
内置扩展补齐 llama.cpp:设置 → 工具的「内置扩展」现在列出 pi 全部
四个内置扩展(llama.cpp / codemode / tool-search / mcp)。 -
Editable sampling params for custom models: the model
editor gains a collapsible "Sampling params" section for
samplingParamsandsamplingParamsByThinkingLevel(per
off/minimal/low/medium/high/xhigh/max level), following pi
1.0.2's sampling-by-thinking-level support (openai-completions
/ openai-responses / azure only). -
MCP project overrides: user-level MCP servers gain an
"In this project" selector (follow global / enable in this
project / disable in this project) writing an override entry
into<workspace>/.pi/mcp.json, following pi 1.0.1's project
overrides. -
Built-in tool switches cover every tool: the tool page
now toggles all switchable pi tools (read / bash / powershell
/ edit / write / grep / find / ls / codemode / tool_search). -
Per-tool MCP exposure: MCP server editing gains
"Per-tool exposure (toolExposure)" to override the server
exposure per tool name or wildcard (codemode / deferred /
direct / hidden). -
Thinking level and model settings: the Runtime page
gains a "Thinking level and models" section — default
thinking level, per-model thinking level, enabled model
patterns, and a hide-thinking-blocks switch. -
Message delivery: a new "Message delivery" section
chooses whether queued steering and follow-ups are delivered
all at once or one at a time. -
Transport and npm command: the Environment section
gains provider transport (auto / sse / websocket /
websocket-cached) and npm command settings. -
Prompt templates page: Settings restores the "Prompt
templates" group, listing user (~/.pi/agent/prompts/) and
workspace (.pi/prompts/) templates with create, edit,
enable/disable and delete. -
Terminals use pi's native run status: the terminal
parses pi's OSC 7501 (Program Status Protocol) reports,
showing a status dot on the tab (working / waiting / done /
error). -
Built-in extensions list completed with llama.cpp:
Settings → Tools now lists all four of pi's built-in
extensions (llama.cpp / codemode / tool-search / mcp).
变更 Changes
-
接入官方预览包 pi-durable:新增依赖
@earendil-works/pi-durable
1.1.0(官方 durable 会话/任务/文档运行时,Experimental)。本轮仅打通
依赖与类型/构建,行为不变。 -
升级 pi 到 1.1.0:
@earendil-works/pi-coding-agent、
@earendil-works/pi-agent-core、@earendil-works/pi-ai从 1.0.0 升到
1.1.0(pi-codemode / pi-mcp / pi-tui / pi-telemetry 同步)。 -
azure provider 更名自动迁移(pi 1.0.3 破坏性变更):pi 把
azure-openai-responses更名为azure。启动时自动把auth.json、
models.json、settings.json、mcp.json里的旧 id 改名为新 id,
Azure 凭据与设置不用手动搬。 -
工具耗时改用 pi 记录的执行时间(pi 1.1.0):工具卡片优先显示 pi
记录的执行耗时,历史会话也能还原每个工具的实际耗时。 -
取消与自然完成可区分(pi 1.1.0):
agent_settled事件现在带
aborted。取消落在工具执行中、没留下任何回答时,补一张「已取消」卡。 -
MCP OAuth 支持客户端注册方式(pi 1.0.1):可选动态注册(DCR,默认)
或客户端 ID 元数据文档(CIMD,oauth.clientRegistration: "cimd")。 -
依赖全面更新:@types/node 26.6.5、electron 44.7.0、marked 18.1.0、
mermaid 12.1.0、monaco-editor 0.57.0、vite 7.3.7、vitest 5.0.3
等 18 项。受上游 peer 约束暂不升级:vite 8、TypeScript 7、
katex 0.19。 -
Upgraded pi to 1.1.0:
@earendil-works/pi-coding-agent,
@earendil-works/pi-agent-coreand
@earendil-works/pi-aimoved from 1.0.0 to 1.1.0
(pi-codemode / pi-mcp / pi-tui / pi-telemetry follow). -
Automatic migration for the azure provider rename
(pi 1.0.3 breaking change): pi renamed
azure-openai-responsestoazure. On launch the old id is
rewritten to the new one inauth.json,models.json,
settings.jsonandmcp.json. -
Tool durations now come from pi's recorded execution time
(pi 1.1.0): tool cards prefer pi's recorded duration, and history
restores the real duration of every tool. -
Cancelled runs are told apart from finished ones (pi 1.1.0):
agent_settlednow carriesaborted. -
MCP OAuth client registration mode (pi 1.0.1): dynamic
registration (DCR, default) or Client ID Metadata Document (CIMD,
oauth.clientRegistration: "cimd"). -
Dependencies refreshed: @types/node 26.6.5, electron 44.7.0,
marked 18.1.0, mermaid 12.1.0, monaco-editor 0.57.0, vite 7.3.7,
vitest 5.0.3 and more. Held back by upstream peer constraints:
vite 8, TypeScript 7, katex 0.19.
修复 Fixes
-
修复退出后进程残留:退出前未回收 node-pty 终端,ConPTY 管道句柄
与 shell 子进程(pwsh / conhost)卡住主进程退出,窗口关掉后 electron
主进程经常残留。现在退出时统一回收全部 pty,关闭窗口后进程树完整退出。 -
修复 models.json 文本报错不友好:粘贴非法 JSON 时现在报
Invalid models.json: …,而不是裸的解析器异常。 -
修复功能裁剪遗留的问题:恢复被清理误删的四个 i18n 键与 preload 的
contributors.avatar、修复 Composer 模板缺少的闭合标签(此前会中断
构建)、移除未使用的 NModal 导入。 -
Fixed processes left behind after quit: node-pty
terminals were never reclaimed on quit, so ConPTY pipe
handles and shell children (pwsh / conhost) stalled the main
process and electron.exe often lingered after the window
closed. All ptys are now disposed on quit. -
Friendlier models.json parse errors: pasting invalid
JSON now reportsInvalid models.json: …instead of a raw
parser error. -
Fixed issues left by the feature removal: restored the
four i18n keys accidentally deleted during cleanup and the
preloadcontributors.avatar, fixed the Composer template's
missing closing tag (which had broken the build), and dropped
the unused NModal import.
下载 / Downloads
- Windows x64:
Pi Desktop-*-win-x64-setup.exe - Windows ARM64:
Pi Desktop-*-win-arm64-setup.exe - macOS Apple Silicon:
Pi Desktop-*-mac-arm64.dmg - macOS Intel:
Pi Desktop-*-mac-x64.dmg
What's Changed
- Dev by @YueMian-u in #37
Full Changelog: v0.3.5-rc.4...v0.3.6-rc.1
Pi Desktop v0.3.5-rc.4
主要更新(v0.3.5-rc.4)
本版重点:跟进 pi 1.0.0(SDK 从 0.99.2 升级),修复 MCP OAuth 凭据的
读写,打包时附带 pi 的文档资源,并接入 1.0.0 的两项新能力。
新功能 Features
-
MCP OAuth 支持授权服务器元数据地址:服务器发布的 OAuth 授权服务器
元数据地址不符合规范、或未发布时,可在 MCP 服务器的「OAuth 高级设置」里
填写authServerMetadataUrl,登录直接使用该地址,不再依赖自动探测。 -
工具结果里的图片会显示出来:codemode 生成图(
image()/
models.generateImages())等工具返回的图片块,现在会在工具卡片中直接
渲染(最多 8 张,随卡片展开)。 -
Authorization server metadata URL for MCP OAuth: when a server
advertises a wrong OAuth authorization server metadata document (or
none), setauthServerMetadataUrlin the MCP server's OAuth advanced
settings so sign-in uses that address instead of discovery. -
Images from tool results are shown: image blocks returned by
tools such as codemode generation (image()/
models.generateImages()) now render inside the tool card (up to 8,
when expanded).
变更 Changes
-
升级 pi 到 1.0.0:
@earendil-works/pi-coding-agent、
@earendil-works/pi-agent-core、@earendil-works/pi-ai从 0.99.2
升到 1.0.0。 -
Upgraded pi to 1.0.0:
@earendil-works/pi-coding-agent,
@earendil-works/pi-agent-coreand@earendil-works/pi-aimoved from
0.99.2 to 1.0.0.
修复 Fixes
-
修复 MCP OAuth 登录状态显示未认证、登出无效:pi 1.0.0 把 MCP
OAuth 凭据改为按「服务器名 + URL」存储,旧的单参数调用按 URL 读不到新
凭据。现在按服务器名与 URL 读写,1.0.0 的首个使用同一 URL 的服务器也会
自动接管旧凭据(旧凭据不会丢)。 -
修复打包版里模型读不到 pi 文档:1.0.0 的 codemode 提示词只保留一行
摘要,细节引导模型去读docs/codemode.md(models API、图像生成等),
而 asar 打包会排除所有.md,模型读到的路径不存在。现在打包时把 pi 的
package.json、README.md、CHANGELOG.md、docs/、examples/
作为 extraResources 附带到resources/pi-package,并让
PI_PACKAGE_DIR指向它。 -
Fixed MCP OAuth showing "not authenticated" and logout doing
nothing: pi 1.0.0 stores MCP OAuth credentials per server name and
URL, so the old single-argument calls keyed by URL alone could not
read the new credentials. Reads and writes now pass both, and the
first server using a URL takes over credentials stored by older
versions (nothing is lost). -
Fixed the packaged app being unable to read pi's docs: pi 1.0.0's
codemode prompt keeps only a one-line summary and points the model at
docs/codemode.md(models API, image generation, …), but the asar
excludes every.md, so the model was given a path that does not
exist. The build now ships pi'spackage.json,README.md,
CHANGELOG.md,docs/andexamples/as extraResources under
resources/pi-package, withPI_PACKAGE_DIRpointing there.
下载 / Downloads
- Windows x64:
Pi Desktop-*-win-x64-setup.exe - Windows ARM64:
Pi Desktop-*-win-arm64-setup.exe - macOS Apple Silicon:
Pi Desktop-*-mac-arm64.dmg - macOS Intel:
Pi Desktop-*-mac-x64.dmg
What's Changed
- 跟进pi的v1.0.0,内置MCP内置工具设置,修复工具调用问题,添加清理pi缓存,这个版本还是有一些已知问题下版本修复 by @YueMian-u in #34
- 修复 Linux CI 失败:powershell 用例仅在 Windows 运行 by @YueMian-u in #35
Full Changelog: v0.3.5-rc.3...v0.3.5-rc.4
Pi Desktop v0.3.5-rc.3
主要更新(v0.3.5-rc.3)
本版重点:修复自定义模型「保存后会话输入框选不了模型、看起来像没有模型配置」
的问题 —— 一条过期的模型策展记录会把该提供商的模型全部过滤掉;以及修复
「拉取模型」在密钥存于 auth.json 时拿不到密钥而失败、且探测请求没有超时导致
一直转圈。
修复 Fixes
-
修复保存自定义模型后,会话输入框的模型选择器点不动、像是没有模型配置:
桌面端为「避免 300 个模型的提供商淹没菜单」而维护了一份策展名单
(models-selection.json)。当自定义提供商的模型 id 被改掉(改名、换模型)
后,名单里的旧 id 一个都对不上,filterAvailableModels会把这个提供商
新的模型也一并过滤掉 —— 菜单被清空,看起来就像压根没配任何模型。文件里
本就写好了pruneModelSelection(注释即写着「so stale ids cannot hide a
fresh list」),但生产代码从未调用;且它把过期名单裁剪成[],而[]在
这套设计里恰恰是「隐藏该提供商」的意思,等于把「模型改名了」误判成「用户想
隐藏」。现新增pruneStaleModelSelection区分两种空列表 —— 用户主动设的
[](保留,继续隐藏)与「原本有 id、裁剪后全没了」的过期名单(删掉整个键,
恢复成显示全部),并在 Composer 过滤前先裁剪、结果回写,自愈且下次启动
不会复活;机器上已有的残留数据打开一次会话即自动清除。 -
修复自定义提供商「拉取模型」失败:
models.discover与
models.testBaseUrl只认表单里填的 API Key,而「测试模型」
(testConnection)会带providerId并回退到auth.json里的密钥。于是
通过设置 → 提供商配好密钥的提供商(密钥只落在 auth.json,表单里读不到),
会出现测速成功、拉取 401 的怪现象。现三个探测统一走resolveProbeKey:
表单 key 优先,回退 auth.json。注:rc.2 已修过拉取报Response is not JSON
(改走 Chromium 网络栈),本次是另一条独立路径。 -
拉取模型 / 地址测速增加超时:这两个请求此前完全没有超时(只有「测试模型」
有 20 秒),端点挂住时按钮会一直转圈,看起来也像失败。现拉取 30 秒、
测速 20 秒。 -
Fixed the model picker being unusable after saving a custom model: the
desktop keeps its own curation list (models-selection.json) so a
300-model provider cannot flood the menu. Once a custom provider's model
ids are changed, none of the curated ids match any more, and
filterAvailableModelsfilters away the provider's new models too —
leaving the menu empty, which reads as "this session has no model config
at all".pruneModelSelectionalready existed (its own comment says "so
stale ids cannot hide a fresh list") but was never called in production,
and it collapsed a stale curation to[], which in this design means
"hide this provider" — turning "the models were renamed" into "the user
wanted it hidden". The newpruneStaleModelSelectiontells the two
apart: an explicit[]is kept, while a curation that had ids and lost
them all is dropped so the provider shows again. The composer now prunes
before filtering and writes the result back, self-healing existing
leftover data on the next session. -
Fixed "Fetch models" failing:
models.discoverand
models.testBaseUrlonly used the API key typed in the form, while "Test
model" (testConnection) also passedproviderIdand fell back to the
key inauth.json. A provider keyed through Settings → Providers stores
its secret only in auth.json, so the form field came up empty and
discovery got a 401 while the connection test passed. All three probes
now shareresolveProbeKey— form key first, auth.json as fallback.
(rc.2 already fixed a different failure here,Response is not JSON, by
moving to the Chromium network stack.) -
Fetch models and base-URL test now time out: neither request had a
deadline (only "Test model" did, at 20s), so a hung endpoint left the
button spinning indefinitely. Discovery is now 30s and the base-URL probe
20s.
优化 / 体验 Improvements
-
模型列表刷新失败时不再清空已有列表:Composer 的
refreshModels原来在
catch里直接把列表置空,一次瞬时故障就变成一个点不开也恢复不了的死按钮;
现在保留原列表并输出日志。 -
The model list is no longer blanked on a failed refresh:
refreshModelsused to empty the list in itscatch, turning a
transient failure into a model button that neither opens nor recovers.
It now keeps the previous list and logs the error.
下载 / Downloads
- Windows x64:
Pi Desktop-*-win-x64-setup.exe - Windows ARM64:
Pi Desktop-*-win-arm64-setup.exe - macOS Apple Silicon:
Pi Desktop-*-mac-arm64.dmg - macOS Intel:
Pi Desktop-*-mac-x64.dmg
What's Changed
- dev by @YueMian-u in #32
Full Changelog: v0.3.5-rc.2...v0.3.5-rc.3
Pi Desktop v0.3.5-rc.2
主要更新(v0.3.5-rc.2)
本版重点:修复 pi 0.87 升级后插件工具在 Agent 会话与设置-工具页
全部消失的问题。
修复 Fixes
-
修复插件工具在 Agent 会话与设置-工具页全部消失:pi 0.87 的扩展
加载器改为按usesEmbeddedModules三分支选择解析方式,构建期
Electron 补丁的正则不再匹配,打包产物回落到getAliases();CJS 下
import.meta.resolve退化为require.resolve,而 Pi 各包是
ESM-only(exports 只有import条件),解析必然抛
ERR_PACKAGE_PATH_NOT_EXPORTED,所有扩展加载失败。现将兜底分支
替换为virtualModules,扩展改用产物内已打包的模块解析,插件工具
在会话与设置页恢复。 -
Fixed plugin tools vanishing from Agent sessions and Settings →
Tools: pi 0.87's extension loader now picks its resolution
strategy through a three-branchusesEmbeddedModules, so the
build-time Electron patch regex no longer matched and the bundle
fell back togetAliases(). Under CJSimport.meta.resolve
degrades torequire.resolve, and since the Pi packages are
ESM-only (exports expose only theimportcondition) this always
throwsERR_PACKAGE_PATH_NOT_EXPORTED, failing every extension
load. The fallback branch is now replaced withvirtualModules,
resolving extensions against the modules already bundled into the
output, restoring plugin tools in sessions and Settings.
下载 / Downloads
- Windows x64:
Pi Desktop-*-win-x64-setup.exe - Windows ARM64:
Pi Desktop-*-win-arm64-setup.exe - macOS Apple Silicon:
Pi Desktop-*-mac-arm64.dmg - macOS Intel:
Pi Desktop-*-mac-x64.dmg
What's Changed
- 修复 pi 0.87 升级后插件工具在 Agent 会话与设置-工具页全部消失:扩展加载器 Electron 补丁适配新分支结构、兜底改用 virtualModules;版本号升到 0.3.5-rc.2 并同步 CHANGELOG 与发布说明 by @YueMian-u in #29
- dev by @YueMian-u in #30
Full Changelog: v0.3.5-rc.1...v0.3.5-rc.2
Pi Desktop v0.3.5-rc.1
主要更新(v0.3.5-rc.1)
本版重点:依赖全面升级——pi-agent 三件套升到 0.87.0、electron 升到 44,
工具链同步升级并完成 API 适配;设置新增「重试」面板(自动重试、网络请求、
卡死恢复档位),并修复 electron 44 下 dev 启动即报
Electron uninstall 的问题。
新功能 Features
-
「重试」设置页:设置 → 通用新增「重试」面板,三组档位——自动重试
(Pi SDK 回合层:开关、次数、指数退避基准间隔)、网络请求(HTTP 层
重试次数、最大等待、请求超时)、卡死恢复(恢复次数上限、软挂起与卡死
判定时长)。设置写入~/.pi/agent/settings.json的retry段,保存后
热重载给活跃 worker 并同步所有窗口,卡死判定阈值即时在主进程生效。 -
Retry settings page: a new "Retry" panel under Settings →
General with three groups — auto retry (Pi SDK turn layer: toggle,
count, backoff base delay), network requests (HTTP-level retries,
max retry delay, request timeout) and stuck recovery (recover
attempts, soft-hang / stall silence). Values persist to the
retrysection of~/.pi/agent/settings.json, hot-reload
into live workers on save, sync across windows, and apply
the stall threshold in the main process immediately.
变更 Changes
-
依赖全面升级:
@earendil-works/pi-agent-core/pi-ai/
pi-coding-agent0.85.1 → 0.87.0,electron 39 → 44,vue、vite、
typescript、undici、electron-builder、node-pty 等同步升级到当前最新。 -
electron 44 适配:剪贴板写图改走
ClipboardItem+write()——旧
writeImage已从Clipboard移除,新 API 为 W3C 风格异步接口。 -
pi-coding-agent 0.87 适配:
emitBeforeAgentStart签名变更(不再
单独传系统提示),系统提示改经BuildSystemPromptOptions传递。 -
构建工具链取舍:typescript 钉在 6.0.3(vue-tsc 尚不支持 TS 7 的原生
tsgo)、vite 钉在 7.x(electron-vite 5 的 peer 上限);tsconfig.web.json
移除已废弃的baseUrl,paths改为相对路径。 -
Dependencies upgraded across the board: pi-agent-core /
pi-ai / pi-coding-agent 0.85.1 → 0.87.0, electron 39 → 44, plus
vue, vite, typescript, undici, electron-builder and node-pty to
their latest. -
Electron 44 adaptation: clipboard image writes now use
ClipboardItem+write()— the oldwriteImageAPI was removed
in favor of the W3C-style async clipboard API. -
pi-coding-agent 0.87 adaptation:
emitBeforeAgentStart
changed its signature (the system prompt is no longer a standalone
argument) and now receives it throughBuildSystemPromptOptions. -
Build toolchain pins: typescript stays at 6.0.3 (vue-tsc does
not support the native tsgo-based TS 7 yet) and vite at 7.x (the
peer range of electron-vite 5);tsconfig.web.jsondrops the
deprecatedbaseUrland resolvespathsrelatively.
修复 Fixes
-
修复升级 electron 44 后
npm run dev启动即报Electron uninstall:
electron 44 的 npm 包不再自带postinstall下载脚本,npm install后
node_modules/electron/dist缺失;现postinstall链首显式执行
node node_modules/electron/install.js(沿用.npmrc镜像配置),全新
安装与既有安装都能自动补齐二进制。 -
Fixed
npm run devfailing withElectron uninstallafter the
Electron 44 upgrade: the electron 44 npm package no longer ships
apostinstalldownload hook, sonpm installleft
node_modules/electron/distmissing. Thepostinstallchain now
runsnode node_modules/electron/install.jsfirst (using the
.npmrcmirror config), so both fresh and existing installs
fetch the binary automatically.
下载 / Downloads
- Windows x64:
Pi Desktop-*-win-x64-setup.exe - Windows ARM64:
Pi Desktop-*-win-arm64-setup.exe - macOS Apple Silicon:
Pi Desktop-*-mac-arm64.dmg - macOS Intel:
Pi Desktop-*-mac-x64.dmg
What's Changed
- dev by @YueMian-u in #28
Full Changelog: v0.3.4-rc.7...v0.3.5-rc.1