简体中文 | English
ZCode-CE 是 AI 编程工作台 ZCode 的开源社区版,提供桌面应用、浏览器界面和终端 Agent。本仓库包含客户端、后端服务、共享 UI,以及 Agent CLI 与运行时源码。
ZCode-CE 基于 zai-org/ZCode(Apache-2.0)构建,面向希望完全掌控自己开发环境的用户。欢迎社区成员参与建设 —— 无论是功能开发、问题反馈还是文档改进。
当前发布 3.16.3-ce.1.fix.1(3.16.3-ce.1 的启动热修复):代码基线是上游开源 3.16.2(3c5b2276)的逐特性移植;版本号对齐官方闭源 3.16.3(3.16.3 未开源)。逐条状态见上游同步,本版变更见 Releases。
我们与官方发行版的差异目前集中在七个方面:
| 方面 | 说明 |
|---|---|
| 无遥测 | 移除官方发行版中的遥测与监控组件。仅使用自带 API 时,不产生任何与官方服务相关的后台上报 |
| 保留权益 | 官方服务权益(套餐额度、限时赠送额度)完整保留。客户端已具备领取与计费所需的全部能力 |
| 社区反馈 | 反馈默认走本项目的 GitHub Issues(可在设置中切换为官方工单渠道或关闭) |
| 开源文档能力 | Office 文档能力(Word / PowerPoint / Excel)由 MIT 许可的开源实现提供,不依赖官方闭源插件。文档生成与结构校验自带 Node 载荷,零外部依赖;仅渲染(转 PDF / 视觉检查)为可选增强,需要 LibreOffice |
| 桌面自动化 | Computer Use 由 MIT 许可的开源实现(trycua/cua)提供,不依赖官方未标注许可的闭源 helper。Windows 正式支持;Linux 实验性(默认关闭) |
| 无头服务器 + 浏览器面板 | 把「服务端 + 浏览器面板」作为一条独立使用路径:可跑在没有桌面环境的机器上,用同一局域网/私网内的浏览器(含手机窄屏)操作这台机器上的工作台。它不接管桌面端:不是接管桌面端正在开的会话,桌面端已连的远端 SSH / Docker 目标不会共享给浏览器。默认只监听回环 127.0.0.1;要对外监听必须同时给令牌,否则拒绝启动。自托管、不经任何中继、不采集遥测;不是官方那套「登录 + 云 relay + Android 壳」(客户端随上游开源树分发,中继与配对服务端闭源;本仓库不引入)。IM 机器人(Bot Channel)已与官方同步:默认关闭、用户同意后可用,桌面端带有管理面板(建机器人 / 绑定 IM 渠道 / 授权工作区 / 配命令白名单)。见网页远控与Bot 管理面板 |
| 工具权限可控 | 危险命令不生成宽泛的持久授权(记住 sudo apt install foo 只记住这一条,不会记住「sudo apt install 任意包」);授权弹窗显示真实范围(任意 / 前缀 / 精确三种都列出);设置里提供「工具与权限」页管理危险命令清单与持久授权策略;自主模式下执行危险命令前会先弹出确认(说明将要执行什么、为什么被判为危险),确认粒度可在设置里调整,与既有的清单策略并存 |
- 不是官方发行版。ZCode-CE 由社区维护,不代表 Z.ai 或智谱的官方立场。
- 不提供账号服务。模型访问、套餐与计费仍由官方服务提供,本项目不代理、不转售。
以下限制长期存在,与具体版本无关;发版说明只记录「因本次变更而新出现」的限制,避免每版重复同样的内容。
-
桌面自动化(Computer Use):Windows 为正式支持;Linux 为实验性(默认关闭,需在设置中开启)。官方发行版不支持 Linux 桌面自动化,本版通过开源实现提供,但受上游验证范围限制。详见桌面自动化文档。
-
桌面自动化在 Linux 上有环境限制:已在 X11 / Sway / KDE Wayland 验证,Wayland 下截图不可用(元素操作不受影响),GNOME 未完整验证。
-
Windows 构建未签名:首次运行需在 SmartScreen 提示中选择「仍要运行」,原因与进展见下方安装一节。
-
Windows / macOS 未在真机做完整功能回归:CI 会为两个平台打包,但本项目的日常验证以 Linux 为主。
-
macOS 无自动更新:macOS 客户端不检查更新(electron-updater 在 darwin 保持关闭)。安装包随版由 CI 产出(
.dmg/.zip,ad-hoc 签名、未公证,首次打开需允许 Gatekeeper)。见上方安装一节。 -
无头/Web 面板的安全默认值:服务默认只监听回环;非回环监听必须带令牌,否则拒绝启动。明文
http只应出现在可信局域网内,公网/不可信网络请放在 TLS 终结的反向代理或隧道之后(否则令牌与流量可被窃听/替换);令牌等价于 agent 级访问,拿到它就能执行工具调用。 -
手机窄屏仍有未完成的打磨项:主内容区裁切与头部控件重叠已修(窄屏默认收起侧栏、头部按窄屏简化、浮层命中区补到 44px),仍有三项未完成:发送/停止键命中区偏小、composer 存在结构错位、软键盘避让只做了单行 meta 修复(真机 IME 未验证)。桌面宽度不受影响。
-
手机与桌面同时连的行为未测:两个客户端可各自建立连接,但同一会话被两端同时操作的并发语义没有测(见网页远控 §8),不要在依赖它之前假定行为。
以下能力官方发行版包含但未随源码分发。本版的实际状态见各行(有的已补齐、有的只补齐部分),仍未提供的计划在后续版本补齐 —— 某一行若自带限制说明,以该行的说明为准。
| 能力 | 状态 |
|---|---|
| PDF 制作 | 已提供基础能力:随包 Node 载荷(PDFKit + FontKit,均为 MIT,零外部依赖)从零制作 PDF —— 中文正文、表格、页码「第 n 页 / 共 m 页」、字体自动子集嵌入;交付前必须过结构校验器(页数、字体嵌入、文本层字形覆盖),不过就不产出文件。字体只取系统已安装字体(不随包、不下载),缺失时报出缺哪些字并拒绝产出(不静默产豆腐 PDF)。LaTeX / 数学公式排版仍未提供(需要外部 TeX 的另一条链路);Office 文档转 PDF 仍走 LibreOffice(可选增强)。详见 PDF 插件 |
| 工具精细化管理 | 部分补齐:MCP 已支持按单个工具启停(在 MCP 服务器配置里写 disabledTools,或在设置页的表单折叠区逐行填写;关闭后模型看不到、直接调用也会失败)。插件内单个工具的启停仍未提供(插件当前只能整包启停)。规则见工具与权限:按资源/工具精细启停 |
| 远程工作区(SSH / Docker / WSL) | 代码完整(连接、鉴权、部署、握手、远端会话都在),但远程运行时资源不随包分发。本项目已投运社区 CDN(https://cdn.eidolonmachine.xyz,自建对象存储 + 自定义域名,不中继、不采集)并托管了各版本资产:我们发布的安装包默认指向它、开箱可用(该版本未托管时需自行指向发布点)。Docker 已在真 Docker 29.8.0 / rootless / cgroup v2 上实测通过;WSL 未实测(需 Windows 客户端)。自建者可在桌面端设置页填自定义 CDN 地址、或设 ZCODE_REMOTE_ASSET_CDN_BASE_URL(Web / CLI 只能用这个环境变量),也可按远程工作区文档自建三步走(远端需 POSIX shell:Linux / macOS 的 x64 / arm64;Windows 远端被拒绝,32 位 ARM、ppc64le/s390x、BSD 无资产,Alpine(musl) 实测不可用) |
其余未提供的能力及其原因见与官方发行版的差异。
CLI/Web 发行包目前支持 Linux-x64(glibc):Alpine / musl 不在正式支持范围;实测在 Alpine 上装满足 engines 的 musl 版 Node ≥24 后,服务与面板可用,终端功能不可用(会给出明确提示,而不是崩溃)。Windows / macOS 需按目标平台构建并补齐原生载荷与终端后端(conpty),另需为 Windows 提供令牌轮换的替代通道(Windows 没有 SIGHUP)。支持边界见无头服务器文档。
从 Releases 下载对应平台的安装包。
| 平台 | 格式 | 说明 |
|---|---|---|
| Windows | .exe(NSIS) |
直接运行安装。当前未签名,首次运行需在 SmartScreen 提示中选择「仍要运行」 |
| Linux | .AppImage / .deb / .rpm / .pkg.tar.zst |
AppImage 需先 chmod +x 再运行 |
| macOS | .dmg / .zip |
darwin-x64 与 darwin-arm64 各一份,CI 随版产出(自 3.15.1-ce.1 起实际交付,见 Releases)。ad-hoc 签名、未公证:首次打开需允许 Gatekeeper——右键点击应用选「打开」,或执行 xattr -dr com.apple.quarantine /path/to/ZCode-CE.app |
数据目录:与官方 ZCode 共享 ~/.zcode/v2,两者可并存安装(安装身份独立),但不建议同时运行。
关于 Windows 签名:官方发行版使用 DigiCert 签发的组织验证(OV)证书签名。本项目作为社区项目无法申请同类证书,正在申请 SignPath Foundation 的免费开源代码签名(证书签发给 SignPath Foundation,非本项目),通过后将消除 SmartScreen 提示。详见 Code signing policy。
不装桌面应用、只在服务器上跑工作台并用浏览器(含手机窄屏)操作时走这两条。它们不接管桌面端,也不含桌面端的本地能力(Computer Use、内嵌浏览器等)。
| 形态 | 用法 | 当前状态 |
|---|---|---|
| Docker(本地构建) | 仓库根 compose.yaml + Dockerfile |
现在可用,前提是有仓库源码。本版不向任何 registry 推镜像,镜像由你本地 docker compose up -d --build 构建 |
| npm CLI | npx zcode-ce --web |
已发布:版本用 npm view zcode-ce version 现取(不在此写死)。包名 zcode-ce,npx zcode-ce 可直接用。新版本以 next 标签先行发布(预发布版本号必须带 --tag,故 latest 会落后一版)⇒ 取最新版用 npx zcode-ce@next,或直接指定版本号。包体较大(解包约 293 MB、11864 个文件,含随包发布的原生依赖),首次 npx 需先下载解包,请预留时间。包名与发布形态以无头服务器发行包 §6–§7 为准 |
Docker 形态要先产出构建上下文 dist/zcode/(需要仓库源码,命令见无头服务器发行包 §2),然后:
# 1) 准备令牌(compose 会读同目录 .env)
printf "ZCODE_SERVER_TOKEN=%s\n" "$(openssl rand -hex 16)" > .env
: > tokens.txt # compose 会把它挂成令牌文件(追加即可轮换)
# 2) 构建 + 启动(首次会构建镜像,约几分钟)
docker compose up -d --build
# 3) 探活(本机)
curl -s -o /dev/null -w "%{http_code}\n" http://127.0.0.1:3030/ # 200卷与备份、令牌与轮换、局域网访问、安全边界见无头服务器:Docker;参数、安全默认值与平台支持见无头服务器发行包。
| 入口 | 用途 | 开发命令 |
|---|---|---|
| Desktop | Electron 桌面应用 | pnpm dev:desktop |
| Web / ZCode 命令行版 | 终端与浏览器工作台;将 TUI、Web、后端和 Agent 组装为独立运行包 | pnpm dev:web |
| Agent CLI | 在终端中使用 zcode,也为 Desktop 和 Web 提供 Agent 运行时 |
pnpm --filter @zcode/cli dev |
| 无头服务器 + Web 面板 | 无桌面环境也可用:zcode --web 起服务,浏览器(含手机)打开面板操作这台机器上的工作台 |
pnpm dev:web(开发);pnpm build:zcode 产出可独立部署的包 |
准备 Git、Node.js 24.14.0 和 pnpm 10.33.2,版本以 mise.toml 为准。以下开发和打包命令均在仓库根目录执行。
pnpm bootstrappnpm bootstrap 安装 workspace 依赖、准备桌面本地运行资源,再执行 build:bootstrap。
Agent CLI 与运行时源码位于 apps/zcode-cli/,作为普通目录随本仓库一起克隆,无需单独拉取或初始化 Git submodule。
根据需要选择其他初始化或构建入口:
| 命令 | 用途 |
|---|---|
pnpm install |
安装依赖 |
pnpm prepare:desktop-runtime |
准备桌面运行资源,默认包含远程资源准备 |
pnpm prepare:remote-assets |
单独准备远程运行资源 |
pnpm bootstrap:with-remote |
初始化依赖、本地与远程资源,并串行构建相关包;跳过桌面应用 bundle |
pnpm build |
递归执行各 workspace 包的构建脚本,包括包内的资源准备步骤 |
默认 bootstrap 跳过远程资源准备,适合本地桌面开发。使用远程工作区或验证远程发行资源时,再运行对应准备命令。
pnpm dev:desktop
# 使用测试环境
pnpm dev:desktop:testpnpm dev:desktop 默认等同于 pnpm dev:desktop:prod,使用生产服务配置。启动脚本会准备本地运行资源、构建桌面 Agent,再启动 Electron 和源码监听。
需要独立开发数据目录时,可设置 ZCODE_DATA_BASE_DIR。例如在 macOS / Linux 中:
ZCODE_DATA_BASE_DIR="$HOME/.zcode-dev-home" pnpm dev:desktop:testpnpm dev:web该命令同时启动 Web 开发服务器和后端;浏览器访问前者。
| 用途 | 命令 |
|---|---|
| 类型检查 | pnpm typecheck |
| Lint | pnpm lint |
| 测试 | pnpm test |
| 架构检查 | pnpm architecture:check --changed |
| 提交前检查 | pnpm verify:pre-push |
改动桌面端 main/renderer 时,额外运行 bash scripts/desktop-typecheck-baseline.sh diff —— pnpm typecheck 的工程列表不覆盖这两个子工程。
| 路径 | 内容 |
|---|---|
~/.zcode/v2/ |
会话、凭据、任务索引、设置 |
~/.config/ZCode-CE/(Linux) |
Electron 运行时状态 |
ZCode-CE 与官方 ZCode 使用独立的安装身份,可以并存。两者共享 ~/.zcode/v2/ 数据目录,因此不建议同时运行并写入同一工作区。
开发者文档见 docs/:
- 架构与模块边界
- 与上游的差异
- 与官方发行版的差异
- 本地开发
- 遥测与隐私
- 网页远控:无头服务器 + 浏览器面板
- 远程工作区(SSH / Docker / WSL)
- 工具与权限:按资源/工具精细启停
- 贡献指南
- 发布流程
ZCode-CE 站在许多开源项目的肩膀上。以下按用途分类列出我们复用或参考的项目。
这些项目的代码被直接引入本仓库,完整清单与许可快照见 third-party/copied-components.json。
| 项目 | 许可 | 用途 |
|---|---|---|
| zai-org/ZCode | Apache-2.0 | 本仓库的上游 |
| deepseek-ai/deepseek-harness | MIT | Office 文档能力(skill-office);Computer Use 的架构参考 |
| vercel/ai-elements | Apache-2.0 | AI 对话界面组件 |
| shadcn-ui/ui | MIT | UI 基础组件 |
| microsoft/vscode | MIT | 编辑器相关实现 |
| withfig/autocomplete | MIT | 命令补全数据 |
| material-extensions/vscode-material-icon-theme | MIT | 文件图标主题 |
| vercel-labs/agent-browser | Apache-2.0 | 浏览器自动化 |
| vercel-labs/agent-skills | MIT | Agent 技能定义 |
| obra/superpowers | MIT | Agent 技能实现 |
| 项目 | 许可 | 用途 |
|---|---|---|
| trycua/cua | MIT / MPL-2.0 | Computer Use 的桌面驱动(@trycua/cua-driver) |
完整的 npm 依赖许可清单见 THIRD-PARTY-NOTICES.md。
以下项目未复用代码,但其设计与接口约定对本项目的实现有重要参考价值。
| 项目 | 参考内容 |
|---|---|
| zcode-api | 官方服务接口的协议还原,用于权益能力(套餐额度、领取、计费)的实现 |
| openai/codex | Computer Use 的应用级访问控制设计 |
| trycua/cua | 平台行为台账与安全语义(possibly_sent 防重放、controller lease、kill switch) |
模型访问、套餐与计费由 Z.ai / 智谱 提供,本项目不代理、不转售。
感谢上述项目的作者与维护者。如果你的项目出现在这里但归属或表述有误,欢迎提 issue 指正。
本项目基于 zai-org/ZCode 构建,遵循 Apache-2.0。
第三方组件声明见 THIRD-PARTY-NOTICES.md,功能说明与风险提示见 NOTICE.md。