四个工具就够开始
读、写、精确编辑、执行命令。搜索、构建、测试和网络请求交给工作机已有的命令行程序,不为每件事增加专用工具。
readwriteeditbash
LOCAL-FIRST CODING CLIENT
给 Agent 更少的内置工具,
给你更完整的编码现场。
ZPI 是本地运行的 AI 编码桌面客户端。模型读代码、改文件、跑命令;对话、变更、终端与预览留在同一界面。四工具内核保持精简,系统内置插件按需配置与启停。
Node.js 24 · npx @zpi-dev/desktop · 会话与配置存于本机
01 / PHILOSOPHY
不把客户端变成一套庞大的 Agent 平台。少一层抽象,少一组常驻工具,少一点选择噪声。
读、写、精确编辑、执行命令。搜索、构建、测试和网络请求交给工作机已有的命令行程序,不为每件事增加专用工具。
readwriteeditbash
Agent 已经能写脚本。需要浏览器自动化,就让它编写控制脚本并通过 bash 执行,而不是挂上一整组常驻浏览器工具。
需要本机具备相应的运行环境和依赖。
提问、联网搜索、子智能体协作、后台命令、记忆、自动标题和任务通知,由系统内置插件提供。在“设置 → 插件”选择所需能力,无需另外安装。
内置插件初始默认启用,记忆默认使用短记忆;联网需配置凭据并启用提供商。新任务首次发送保存插件配置;详见插件与生效范围。
02 / MODEL FREEDOM
用你已有的账号和 API。根据任务换模型,而不是为了模型更换整个工作流。
预置 ChatGPT、DeepSeek、智谱、MiniMax、MiMo,也能自定义提供商、模型 ID 和能力参数。支持启用、排序、刷新模型目录与思考程度配置。
运行中也能切换:当前执行使用原配置,后续消息使用新选择。跨模型保留文本与工具历史,供应商专用推理字段按协议适配。切回 OpenAI 可能重新建连并发送完整有效上下文。
通过浏览器登录并授权 ChatGPT 套餐访问。不用复制网页 Cookie;使用授权令牌调用 Responses API,自动续期并获取账号模型目录。
仅在官方 Responses 地址启用 WebSocket 连接复用与增量续接,长任务少传重复上下文;连接或代理失败时回退 HTTP。可用模型、额度和访问资格取决于账号。
预置常用国产提供商的套餐和按量 API 配置。其他兼容服务或本地模型,可填写地址、API Key 和模型参数接入。
按服务端能力选择协议。高级配置支持推理等级映射和受限参数表达式;兼容性取决于服务端,不宣称支持任意模型。
启动时识别预置提供商的 API Key,初始化尚未添加的配置。已经手动设置过的提供商,不会被自动发现覆盖。
DEEPSEEK_API_KEYZHIPU_API_KEYMINIMAX_API_KEYMIMO_API_KEY以及 OpenAI 与按量 API 的对应变量
03 / COLLABORATION
「为什么这样改?」
「还有没有另一种方案?」
在右侧打开辅助对话,继承创建时的稳定上下文。不必重新解释背景,也不用把追问插进主任务。需要分工时,让主 Agent 委派子智能体;需要确认时,让 Agent 直接发起结构化提问。
继承创建时的上下文,之后独立回答。
使用各自工具范围,并行处理独立任务。
使用哪种登录方式?
辅助对话、子智能体和主任务共享工作目录,提示词不是权限隔离。需要独立检出目录时,使用独立任务的 Git 工作树。
04 / EVERYDAY WORK
从提出需求到检查结果,保留日常编码真正需要的那几步。
执行中也能补充需求:排队、编辑、排序、暂停或立即发送。停止只结束当前执行,已完成的文件修改仍然保留。支持消息编辑、分叉与带冲突检查的回退。
文本、Markdown、Mermaid、SVG、HTML、图片、音视频、PDF、DOCX、XLSX 与 PPTX 在应用内查看。源码支持行号定位和行备注,备注直接进入当前草稿。
审查未暂存、已暂存、全部分支或上一轮更改;聊天中的文件 Diff 只展示对应轮次或工具操作。轮末统计净变化,改回原样不会累计中间改动。
按项目、分组或最近更新浏览任务;分组支持七色、折叠与拖拽。新任务可创建独立 Git 工作树,默认 detached HEAD,不自动新增分支。
右侧标签承载文件、浏览器、终端、审查与辅助对话,状态按任务恢复。完整视图把当前对话放进独立标签,浮动输入框可收起、展开或拖动吸附。界面主题与代码预览主题分别配置。
⌘K / Ctrl+K 查找任务、工作区文件和操作,⌘F / Ctrl+F 搜索当前任务与变更。快捷键可逐项改键;任务结束、中断或失败时可按需发送系统通知。
05 / CONTEXT & EXTENSIONS
引用、指令、技能与扩展都有明确边界;不需要的功能保持关闭。
@ 引用工作区文件,# 选择已有会话,选中文字与行备注加入草稿。引用会按数量、长度和文件边界解析,不是把整个工作区自动上传。
接近预算时自动压缩,也可用 /compact 手动压缩;原始历史仍保存在本机。
/init 生成项目指令;技能放在 .agents/skills 或 .zpi/skills,通过 $ 菜单选择。常用提示词可保存为 /名称 命令,支持参数、技能引用与 Shell 模板。
项目命令覆盖用户命令;可从其他客户端显式导入。
bash 可显式后台执行,或用 TaskOutput 读取、TaskStop 终止。右侧终端标签使用本机 Shell,保留独立 PTY 与输出,适合手动运行开发服务器和测试。
应用退出会清理所属后台命令;异常退出后不凭旧 PID 认领进程。
web_search 与 web_fetch 由独立的 DeepSeek 凭据提供,可与聊天模型分开选择。回复旁的“来源”汇总当前轮成功结果,点击在内置浏览器打开原文。
插件默认启用,配置并启用提供商后生效,按任务保存;只抓取无凭据的公网 HTTP(S) 地址。
记忆插件提供两种互斥模式:短期模式维护用户与项目的 MEMORY.md,长期模式从历史会话提取摘要并由后台 Agent 增量整合。默认启用短记忆。
当前用户要求与项目指令始终优先。
TypeScript Agent SDK 提供查询、流式消息、工具控制、Hook 和会话恢复;ZPI 桌面与外部应用共用同一套执行入口。
只支持 TypeScript;支持的接口按 Claude Agent SDK 命名与协议对齐,应用自行选择工具和插件。
06 / DEVELOPER
@zpi-dev/agent-sdk 提供独立的 TypeScript 接口,不依赖 Electron。ZPI 桌面与独立的 zpi-quick-chat 共用查询协议;七类系统插件的运行时独立于桌面宿主,通过通用接口接入模型、存储和通知。
npm run example:sdk
SDK 示例需要 Node.js 24 和 DEEPSEEK_API_KEY,会话仅保存在内存中。公共 SDK 的 Glob、Grep 暂不支持。
文档站:打开文档(也可在仓库内运行
npm run docs 或 npx zpi-docs)。中文文档支持全文搜索、Mermaid、源码查看与深浅色主题。
import { defineTool, query } from "@zpi-dev/agent-sdk";
import { Type } from "typebox";
const lookupOrder = defineTool({
name: "lookup_order",
description: "查询演示订单的状态",
parameters: Type.Object({ orderId: Type.String() }),
execute({ orderId }) {
return { orderId, status: "已发货" };
},
});
for await (const message of query({
prompt: "请调用 lookup_order 查询订单 42 的状态。",
options: {
model: "deepseek",
persistSession: false,
tools: [lookupOrder.name],
zpi: { customTools: [lookupOrder] },
},
})) {
if (message.type === "result") {
if (message.subtype !== "success") throw new Error(message.errors.join("\n"));
console.log(message.result);
}
}
ai协议、认证与流agent执行循环与工具调度coding-agent会话、四工具与上下文agent-sdk公共 TypeScript 协议builtin-plugins可选系统插件与运行时plugin-compat外部插件适配ui对话组件与展示模型desktopElectron、窗口与 IPC业务状态使用 SQLite,会话事实使用 JSONL v2;搜索与投影索引是可重建的派生数据。备份时复制完整数据根。
系统加密可用时加密保存,不可用时只留在本次应用内存。公共设置与普通日志不承载完整密钥。
没有产品遥测;但使用云端模型时,所需上下文仍会发送给所选提供商。联网搜索另外把搜索词或 URL 发给网页服务。
执行 npx @zpi-dev/desktop,或运行
npm install -g @zpi-dev/desktop 后使用 zpi-desktop。
登录 ChatGPT,填写 API Key,或让环境变量自动初始化预置配置。
检查变更和结果,必要时开辅助对话、委派子智能体,或换个模型继续。
桌面端不支持 Windows,当前主要在 macOS Apple Silicon 上验证。使用需 Node.js 24 与 npm,安装时需允许依赖安装脚本下载 Electron 运行环境;升级使用
npx @zpi-dev/desktop@latest,或重新执行
npm install -g @zpi-dev/desktop@latest。
Agent SDK 保持跨平台,包含 Windows 支持:npm install @zpi-dev/agent-sdk。Quick Chat:设置 DEEPSEEK_API_KEY
后执行 npx @zpi-dev/quick-chat,或通过
npm install -g @zpi-dev/quick-chat 安装后运行
zpi-quick-chat(需 Node.js 24 与 Apple Silicon Mac)。
A FEW CLEAR BOUNDARIES
不支持。桌面端的 Windows 专用实现和测试已移除,npm 安装和 CLI 启动会拒绝 Windows。
独立的 @zpi-dev/agent-sdk 保持跨平台,包含 Windows 支持;SDK 的 Bash 工具需要系统中有可用的 Bash。
不是。会话与配置在本机保存,但使用云端模型时,所需上下文仍会发送给你选择的提供商。联网搜索另外把搜索词或 URL 发给网页服务。ZPI 不采集产品遥测,不能替第三方服务承诺数据处理方式。
不能。ZPI 使用 OAuth 登录与套餐访问授权,不要求复制网页会话 Cookie,也不以绕过风控为目标。账号规则、额度和访问资格由 OpenAI 决定,请遵守提供商条款;模型目录能列出模型,也不代表账号一定有调用权限。
不是。辅助对话由你手动开启,继承创建时的稳定上下文,独立回答后续问题,不自动承接主任务。子智能体由主 Agent 显式委派,适合独立的分工任务。两者都共享父任务工作目录;如要分开代码修改,可使用独立任务的 Git 工作树,但工作树不是权限沙箱。
网页预览是供人查看结果的桌面面板,不是 Agent 的控制工具。需要自动化时,Agent 可以写浏览器控制脚本,通过 bash 运行;本机须具备对应依赖。
内核只保留读、写、精确编辑和执行命令,搜索、构建、测试、Git 与网络请求都通过 bash 使用已有程序。七类系统内置插件按需提供提问、联网、协作、后台命令、记忆、标题和通知。公共 SDK 另提供标准工具适配与工具选择接口。
内置插件随应用提供,在“设置 → 插件”管理,初始默认启用;记忆默认使用短记忆,联网搜索配置服务凭据并启用提供商后生效。对应功能页共享同一份设置,新任务在首次发送时保存插件快照。也可从本地文件夹添加支持的 Claude Code/ZCode 插件;使用方法见插件文档。
macOS 正式版默认在 ~/Library/Application Support/ZPI/,开发版与 Preview 使用另一套目录(两者默认共用)。正常退出全部写入者后,复制完整数据根和受控附件;运行中只复制一个 SQLite 文件可能漏掉 WAL 或得到不一致组合。history.sqlite 是派生索引,不能通过删库“修复启动”。
可以。@zpi-dev/agent-sdk 提供标准工具、查询与流式消息、会话恢复和插件接口。设置 DEEPSEEK_API_KEY 后运行 npm run example:sdk, 即可通过 query 和 defineTool 查询演示订单;具体接口见SDK 文档。
更少的工具。更完整的现场。