chore: sync ZCode source v3.18.2 Source-Commit: 7535935da0fa4e5762270ae205c81356979bbcf3 Source-Sync: zcode-open-source-v1
chore: sync ZCode source v3.18.2
Source-Commit: 7535935da0fa4e5762270ae205c81356979bbcf3 Source-Sync: zcode-open-source-v1
飞书社群 · Discord
简体中文 | English
ZCode 是 AI 编程工作台,提供桌面应用、浏览器界面和终端 Agent。本仓库包含客户端、后端服务、共享 UI,以及 Agent CLI 与运行时源码。
准备 Git、Node.js 24.14.0 和 pnpm 10.33.2,版本以 mise.toml 为准。以下开发和打包命令均在仓库根目录执行。
pnpm bootstrap
pnpm bootstrap 安装 workspace 依赖、准备桌面本地运行资源,再执行 build:bootstrap。
build:bootstrap
Agent CLI 与运行时源码位于 apps/zcode-cli/,作为普通目录随本仓库一起克隆,无需单独拉取或初始化 Git submodule。
根据需要选择其他初始化或构建入口:
pnpm install
pnpm prepare:desktop-runtime
pnpm prepare:remote-assets
pnpm bootstrap:with-remote
pnpm build
默认 bootstrap 跳过远程资源准备,适合本地桌面开发。使用远程工作区或验证远程发行资源时,再运行对应准备命令。
bootstrap
pnpm dev:desktop # 使用测试环境 pnpm dev:desktop:test
pnpm dev:desktop 默认等同于 pnpm dev:desktop:prod,使用生产服务配置。启动脚本会准备本地运行资源、构建桌面 Agent,再启动 Electron 和源码监听。
pnpm dev:desktop
pnpm dev:desktop:prod
需要独立开发数据目录时,可设置 ZCODE_DATA_BASE_DIR。例如在 macOS / Linux 中:
ZCODE_DATA_BASE_DIR
ZCODE_DATA_BASE_DIR="$HOME/.zcode-dev-home" pnpm dev:desktop:test
先执行 pnpm bootstrap:with-remote 准备远程资源(mock-cdn),再 pnpm dev:desktop;连接远程项目时资源选择「本地下载后上传」。开发态资源取自本地 packages/desktop/mock-cdn 和本地构建产物,经 SFTP 上传到远程,不访问 CDN。
packages/desktop/mock-cdn
修改 Web 或后端源码时,使用开发模式:
pnpm dev:web # 指定后端工作区(macOS / Linux) ZCODE_SERVER_WORKSPACE=/path/to/project pnpm dev:web
该命令同时启动 Web 开发服务器(默认 http://localhost:5173)和后端(默认 http://localhost:3030);浏览器访问前者。/ws 和一般 /api 请求代理到本地后端,/api/v1/oauth/token 单独代理到当前配置的产品服务。
http://localhost:5173
http://localhost:3030
/ws
/api
/api/v1/oauth/token
Agent 源码修改后,执行 pnpm --filter @zcode/cli... build 并重启服务。需要验证完整发行包时,按下方“ZCode 命令行版”打包章节解压运行。
pnpm --filter @zcode/cli... build
命令行发行包包含 TUI、Web 和 Agent,统一使用 zcode 启动:无参数进入 TUI;第一个参数为 --web 时启动 Web;其他参数交给现有 Agent CLI 处理。两种模式都在本机运行,无需 Electron。
zcode
--web
# 默认进入终端交互界面 zcode # 启动 Web 界面 zcode --web # 指定项目和端口,不自动打开浏览器 zcode --web --workspace /path/to/project --port 3030 --no-open # 查看 CLI 或 Web 参数 zcode --help zcode --web --help
Web 模式默认工作目录为当前目录,监听 127.0.0.1,默认不启用访问令牌,自动选择空闲端口并打开浏览器。访问终端输出的地址,按 Ctrl+C 停止服务。局域网访问可使用 --host 0.0.0.0;监听非本机地址时默认生成访问令牌,使用终端输出的带令牌链接。可通过 --token 指定令牌或 --no-token 关闭令牌认证。
127.0.0.1
Ctrl+C
--host 0.0.0.0
--token
--no-token
直接启动通用 Web 服务的 HTTP 入口时,通过 ZCODE_SERVER_AUTH_TOKEN 配置 API/WebSocket 认证;通过程序接口创建服务时,使用 authToken 选项。
ZCODE_SERVER_AUTH_TOKEN
authToken
构建方式见下方打包章节。pnpm build:zcode 只生成发行包,不会替换 PATH 中已有的 zcode。如果命令仍指向旧安装或其他源码目录,macOS / Linux 可用 command -v zcode 检查,Windows 可用 where.exe zcode 检查。
pnpm build:zcode
PATH
command -v zcode
where.exe zcode
CLI 的模型配置、非交互调用、工具与扩展、批量评测和轨迹记录见 CLI 使用指南。
直接开发 TUI 或 Agent 时,运行源码入口:
pnpm --filter @zcode/cli dev --help pnpm --filter @zcode/cli dev # 构建 CLI 及其 workspace 依赖 pnpm --filter @zcode/cli... build node apps/zcode-cli/packages/cli/dist/zcode.cjs --help
这个入口直接运行 Agent CLI,不经过发行包的 --web 分流。开发 Web 用 pnpm dev:web;验证统一的 zcode 命令,用下方解压后的 bin/zcode.mjs。
pnpm dev:web
bin/zcode.mjs
参见 UI Plugin:能力、API 与调试,从 Excalidraw 的画布协作示例开始,了解插件安装更新、页面 API 和宿主联调入口。
向 zcode-plugins 提交插件 PR 时,必须在 PR 模板中声明是否为 UI Plugin,并填写插件名称。 判断标准见提交 PR 时声明插件类型。
zcode-plugins
根目录 .env.example 提供服务地址与构建配置示例,可按需复制到 .env,本地覆盖放入 .env.local。Desktop 的开发环境通过 dev:desktop:test / dev:desktop:prod 选择。
.env
.env.local
dev:desktop:test
dev:desktop:prod
.zcode/
ZCODE_SERVER_WORKSPACE
ZCODE_BUILTIN_PROVIDER_CONFIG_FILE
ZCODE_DIST_BASE_URL
运行时变量可在启动命令的环境中显式设置。随客户端发布的默认配置见 config/README.md。
第三方声明生成、发行校验流程及声明在发行物中的位置见 third-party/README.md。
pnpm bundle:desktop # 指定目标平台与 CPU 架构 pnpm bundle:desktop -- --os win --arch x64 pnpm bundle:desktop -- --help
默认目标为 macOS arm64,默认输出目录为 packages/desktop/dist/。--os 支持 mac、win、linux,--arch 支持 x64、arm64;实际打包与签名需要目标平台对应的工具和配置。
packages/desktop/dist/
--os
mac
win
linux
--arch
x64
arm64
安装:双击打开产物 DMG,将 ZCode 拖入”应用程序”。本地构建未签名,首次打开若被 macOS 拦截,执行:
sudo xattr -rd com.apple.quarantine /Applications/ZCode.app
构建入口为 pnpm build:zcode。脚本会依次构建 CLI/TUI、后端和 Web,收集 TUI 的原生库、worker 与运行时依赖,再组装发行包;运行发行包仍需要 Node.js,版本以 mise.toml 为准。
mise.toml
打包前必须设置下载根地址 ZCODE_DIST_BASE_URL(可放在 .env、.env.local 或环境变量中),也可以通过 --base-url 传入。以下地址是占位示例,发布时替换为实际托管地址:
--base-url
pnpm build:zcode --base-url https://downloads.example.com/zcode/ # 已配置 ZCODE_DIST_BASE_URL 时 pnpm build:zcode # 仅重新组包,复用已有的 Agent、后端和 Web 构建产物 pnpm build:zcode --skip-build # 查看版本、输出目录等可选参数 pnpm build:zcode --help
默认版本取根目录 package.json,输出目录为 dist/zcode/:
package.json
dist/zcode/
releases/<version>/zcode-<version>.tar.gz
releases/<version>/sha256.txt
latest.json
install.sh
完整目录可上传到配置的下载根地址。安装脚本从该地址下载运行包,默认安装到 ~/.zcode/runtime,并在 ~/.local/bin 创建 zcode 命令。安装目录可通过 ZCODE_DIST_HOME 修改,命令目录可通过 ZCODE_DIST_BIN_DIR 修改。
~/.zcode/runtime
~/.local/bin
ZCODE_DIST_HOME
ZCODE_DIST_BIN_DIR
旧 Lite 用户需要改用上述构建命令、环境变量和新的安装脚本。新安装不会删除旧 Lite 目录,也不会迁移或删除已有会话数据。
本地调试打包产物时,可直接解压运行,无需上传或安装:
zcode_version=$(node -p "require('./dist/zcode/latest.json').version") mkdir -p dist/zcode/debug tar -xzf "dist/zcode/releases/$zcode_version/zcode-$zcode_version.tar.gz" \ -C dist/zcode/debug # 默认启动 TUI node dist/zcode/debug/zcode/bin/zcode.mjs # 启动 Web node dist/zcode/debug/zcode/bin/zcode.mjs --web \ --workspace "$PWD" --port 3030 --no-open
浏览器打开 http://127.0.0.1:3030,即可验证同一后端服务托管 Web 页面和 Agent 的完整链路。该端口需要空闲;如正在运行 pnpm dev:web,可改用其他 --port。
http://127.0.0.1:3030
--port
packages/desktop
packages/web
packages/server
packages/zcode-server-cli
packages/ui
packages/services
packages/shared
packages/rpc
packages/client
packages/provider
packages/provider-node
apps/zcode-cli
scripts
config
third-party
功能与优惠范围、维护规则、执行与数据风险,以及许可和第三方版权说明,详见 NOTICE.md。
从GitHub镜像来的官方版本,学习一下吧
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
ZCode
飞书社群 · Discord
简体中文 | English
ZCode 是 AI 编程工作台,提供桌面应用、浏览器界面和终端 Agent。本仓库包含客户端、后端服务、共享 UI,以及 Agent CLI 与运行时源码。
更新
初始化
准备 Git、Node.js 24.14.0 和 pnpm 10.33.2,版本以 mise.toml 为准。以下开发和打包命令均在仓库根目录执行。
pnpm bootstrap安装 workspace 依赖、准备桌面本地运行资源,再执行build:bootstrap。Agent CLI 与运行时源码位于 apps/zcode-cli/,作为普通目录随本仓库一起克隆,无需单独拉取或初始化 Git submodule。
根据需要选择其他初始化或构建入口:
pnpm installpnpm prepare:desktop-runtimepnpm prepare:remote-assetspnpm bootstrap:with-remotepnpm build默认
bootstrap跳过远程资源准备,适合本地桌面开发。使用远程工作区或验证远程发行资源时,再运行对应准备命令。开发与运行
桌面版
pnpm dev:desktop默认等同于pnpm dev:desktop:prod,使用生产服务配置。启动脚本会准备本地运行资源、构建桌面 Agent,再启动 Electron 和源码监听。需要独立开发数据目录时,可设置
ZCODE_DATA_BASE_DIR。例如在 macOS / Linux 中:远程功能(SSH/WSL)
先执行
pnpm bootstrap:with-remote准备远程资源(mock-cdn),再pnpm dev:desktop;连接远程项目时资源选择「本地下载后上传」。开发态资源取自本地packages/desktop/mock-cdn和本地构建产物,经 SFTP 上传到远程,不访问 CDN。Web 开发
修改 Web 或后端源码时,使用开发模式:
该命令同时启动 Web 开发服务器(默认
http://localhost:5173)和后端(默认http://localhost:3030);浏览器访问前者。/ws和一般/api请求代理到本地后端,/api/v1/oauth/token单独代理到当前配置的产品服务。Agent 源码修改后,执行
pnpm --filter @zcode/cli... build并重启服务。需要验证完整发行包时,按下方“ZCode 命令行版”打包章节解压运行。ZCode 命令行版
命令行发行包包含 TUI、Web 和 Agent,统一使用
zcode启动:无参数进入 TUI;第一个参数为--web时启动 Web;其他参数交给现有 Agent CLI 处理。两种模式都在本机运行,无需 Electron。Web 模式默认工作目录为当前目录,监听
127.0.0.1,默认不启用访问令牌,自动选择空闲端口并打开浏览器。访问终端输出的地址,按Ctrl+C停止服务。局域网访问可使用--host 0.0.0.0;监听非本机地址时默认生成访问令牌,使用终端输出的带令牌链接。可通过--token指定令牌或--no-token关闭令牌认证。直接启动通用 Web 服务的 HTTP 入口时,通过
ZCODE_SERVER_AUTH_TOKEN配置 API/WebSocket 认证;通过程序接口创建服务时,使用authToken选项。构建方式见下方打包章节。
pnpm build:zcode只生成发行包,不会替换PATH中已有的zcode。如果命令仍指向旧安装或其他源码目录,macOS / Linux 可用command -v zcode检查,Windows 可用where.exe zcode检查。CLI 源码开发
CLI 的模型配置、非交互调用、工具与扩展、批量评测和轨迹记录见 CLI 使用指南。
直接开发 TUI 或 Agent 时,运行源码入口:
这个入口直接运行 Agent CLI,不经过发行包的
--web分流。开发 Web 用pnpm dev:web;验证统一的zcode命令,用下方解压后的bin/zcode.mjs。UI Plugin 开发
参见 UI Plugin:能力、API 与调试,从 Excalidraw 的画布协作示例开始,了解插件安装更新、页面 API 和宿主联调入口。
向
zcode-plugins提交插件 PR 时,必须在 PR 模板中声明是否为 UI Plugin,并填写插件名称。 判断标准见提交 PR 时声明插件类型。配置
根目录 .env.example 提供服务地址与构建配置示例,可按需复制到
.env,本地覆盖放入.env.local。Desktop 的开发环境通过dev:desktop:test/dev:desktop:prod选择。ZCODE_DATA_BASE_DIR.zcode/ZCODE_SERVER_WORKSPACEZCODE_BUILTIN_PROVIDER_CONFIG_FILEZCODE_DIST_BASE_URL运行时变量可在启动命令的环境中显式设置。随客户端发布的默认配置见 config/README.md。
打包
第三方声明生成、发行校验流程及声明在发行物中的位置见 third-party/README.md。
桌面版
默认目标为 macOS arm64,默认输出目录为
packages/desktop/dist/。--os支持mac、win、linux,--arch支持x64、arm64;实际打包与签名需要目标平台对应的工具和配置。安装:双击打开产物 DMG,将 ZCode 拖入”应用程序”。本地构建未签名,首次打开若被 macOS 拦截,执行:
ZCode 命令行版
构建入口为
pnpm build:zcode。脚本会依次构建 CLI/TUI、后端和 Web,收集 TUI 的原生库、worker 与运行时依赖,再组装发行包;运行发行包仍需要 Node.js,版本以mise.toml为准。打包前必须设置下载根地址
ZCODE_DIST_BASE_URL(可放在.env、.env.local或环境变量中),也可以通过--base-url传入。以下地址是占位示例,发布时替换为实际托管地址:默认版本取根目录
package.json,输出目录为dist/zcode/:releases/<version>/zcode-<version>.tar.gz:运行包。releases/<version>/sha256.txt:校验摘要。latest.json、install.sh:版本索引和安装脚本。完整目录可上传到配置的下载根地址。安装脚本从该地址下载运行包,默认安装到
~/.zcode/runtime,并在~/.local/bin创建zcode命令。安装目录可通过ZCODE_DIST_HOME修改,命令目录可通过ZCODE_DIST_BIN_DIR修改。旧 Lite 用户需要改用上述构建命令、环境变量和新的安装脚本。新安装不会删除旧 Lite 目录,也不会迁移或删除已有会话数据。
本地调试打包产物时,可直接解压运行,无需上传或安装:
浏览器打开
http://127.0.0.1:3030,即可验证同一后端服务托管 Web 页面和 Agent 的完整链路。该端口需要空闲;如正在运行pnpm dev:web,可改用其他--port。仓库结构
packages/desktoppackages/webpackages/serverpackages/zcode-server-clipackages/uipackages/servicespackages/shared、packages/rpc、packages/clientpackages/provider、packages/provider-nodeapps/zcode-cliscripts、config、third-party项目声明
功能与优惠范围、维护规则、执行与数据风险,以及许可和第三方版权说明,详见 NOTICE.md。