Z.ai 旗下的编程 Agent 项目 ZCode 已在 GitHub 开源,仓库地址为 github.com/zai-org/ZCode。仓库说明中的定位是「Z.ai 的 coding agent harness」,官方给出的三个关键词是强大、智能、可扩展。
开源了什么
这次放出的不只是客户端,而是整套源码:桌面应用、后端服务、共享 UI,以及 Agent CLI 与运行时。仓库中同时包含 Web 客户端、HTTP/WebSocket 服务与远程连接、共享 React 组件与状态管理、业务服务与持久化、Provider 公共能力及其 Node 实现,还有 RPC 框架和 Agent 客户端 SDK。
按照仓库的目录划分,主要模块有:
packages/desktop:Electron Main、Host、Renderer 与桌面打包packages/web:Web 客户端packages/server:HTTP/WebSocket 服务与远程连接packages/zcode-server-cli:独立 Server 启动与进程管理packages/ui:共享 React 组件、hooks 与 Zustand 状态packages/services:业务服务与持久化packages/shared、packages/rpc、packages/client:共享协议和类型、RPC 框架、Agent 客户端 SDKpackages/provider、packages/provider-node:Provider 公共能力与 Node 实现apps/zcode-cli:Agent CLI、TUI、运行时与工具
Agent CLI 与运行时源码位于 apps/zcode-cli/,随仓库一起克隆,不需要单独拉取或初始化 Git submodule。
三种使用入口
| 入口 | 用途 | 开发命令 |
|---|---|---|
| Desktop | Electron 桌面应用 | pnpm dev:desktop |
| Web / ZCode 命令行版 | 终端与浏览器工作台;将 TUI、Web、后端和 Agent 组装为独立运行包 | pnpm dev:web |
| Agent CLI | 在终端中使用 zcode,也为 Desktop 和 Web 提供 Agent 运行时 |
pnpm --filter @zcode/cli dev |
命令行发行包把 TUI、Web 和 Agent 打在一起,统一用 zcode 启动:不带参数进入终端交互界面,第一个参数是 --web 时启动 Web 界面,其余参数交给现有 Agent CLI 处理。两种模式都在本机运行,不需要 Electron。
zcode
zcode --web
zcode --web --workspace /path/to/project --port 3030 --no-open
zcode --help
Web 模式默认以当前目录为工作目录,监听 127.0.0.1,默认不启用访问令牌,自动挑选空闲端口并打开浏览器。需要局域网访问时用 --host 0.0.0.0;监听非本机地址时默认生成访问令牌,用终端输出的带令牌链接进入,也可以用 --token 指定令牌或 --no-token 关掉认证。
开发环境与构建
准备 Git、Node.js 24.14.0 和 pnpm 10.33.2,具体版本以仓库的 mise.toml 为准,命令都在仓库根目录执行。pnpm bootstrap 会安装 workspace 依赖、准备桌面本地运行资源,然后执行 build:bootstrap。默认的 bootstrap 跳过远程资源准备,适合本地桌面开发;要用远程工作区或验证远程发行资源,再跑 prepare:remote-assets 或 bootstrap:with-remote。
其他常用入口包括 pnpm install(安装依赖)、pnpm prepare:desktop-runtime(准备桌面运行资源,默认含远程资源)、pnpm build(递归执行各 workspace 包的构建脚本)。
桌面开发用 pnpm dev:desktop,默认等同于 pnpm dev:desktop:prod,走生产服务配置;需要独立数据目录时设置 ZCODE_DATA_BASE_DIR。改 Web 或后端源码用 pnpm dev:web,它会同时拉起 Web 开发服务器(默认 http://localhost:5173)和后端(默认 http://localhost:3030),浏览器访问前者。改完 Agent 源码要执行 pnpm --filter @zcode/cli... build 并重启服务。
打包方面,pnpm bundle:desktop 默认目标为 macOS arm64,输出到 packages/desktop/dist/;--os 支持 mac、win、linux,--arch 支持 x64、arm64,实际打包与签名需要目标平台对应的工具和配置。本地构建未签名,macOS 首次打开若被拦截,需要执行 sudo xattr -rd com.apple.quarantine /Applications/ZCode.app。
命令行发行包由 pnpm build:zcode 生成,脚本依次构建 CLI/TUI、后端和 Web,收集 TUI 的原生库、worker 与运行时依赖,再组装发行包;运行发行包仍然需要 Node.js。打包前必须设置下载根地址 ZCODE_DIST_BASE_URL,也可以用 --base-url 传入。默认版本取根目录 package.json,输出目录为 dist/zcode/,内含运行包 releases/<version>/zcode-<version>.tar.gz、校验摘要 sha256.txt,以及版本索引 latest.json 和安装脚本 install.sh。安装脚本默认装到 ~/.zcode/runtime,并在 ~/.local/bin 创建 zcode 命令,安装目录可用 ZCODE_DIST_HOME 修改,命令目录可用 ZCODE_DIST_BIN_DIR 修改。
仓库还提示,旧 Lite 用户需要改用新的构建命令、环境变量和安装脚本;新安装不会删除旧 Lite 目录,也不会迁移或删除已有会话数据。
几点补充
从仓库结构看,ZCode 走的是「一套 Agent 运行时、三种外壳」的路子:Agent CLI 既能在终端里直接用,又是 Desktop 和 Web 的运行时底座,后端以 HTTP/WebSocket 服务的形式统一托管页面与 Agent,因此桌面端、浏览器端和命令行端共享的是同一套协议与状态。开发、调试、发行三条链路也都写在 README 里,属于可以直接上手改的开源工程,而不是只放出一个壳。
需要留意的是,功能与优惠范围、维护规则、执行与数据风险,以及许可和第三方版权说明,都写在仓库的 NOTICE.md 里,使用和二次开发前建议先读这一份。
评论 共 0 条
正在加载…
还没有评论,来说两句吧。
先起个昵称
昵称只保存在你自己的浏览器里,用来显示你的评论与留言,不需要注册。
昵称需要 2 - 20 个字符。