打包清单以明文形式存储在本地,且内容非常具体。对于一个包含 42,411 个文件的快照:
仅 .git 目录就占了整个载荷的 86.6%。
某个 42,411 文件快照的载荷构成:.git 目录占加密压缩包的 86.6%。
这一点至关重要,因为 git 对象存储并不是你工作树的快照——它是仓库自诞生之日起的完整谱系。后续提交中已删除的 API 密钥就在里面。暴露未发布产品计划的未推送分支名就在里面。.git/config 中的内部主机名和仓库路径也在里面。被捕获的压缩包是多年的工程历史,而不是你当时打开的那些文件。
从客户端 app.asar 逆向还原出的上传流水线:客户端向 zcode.z.ai 请求凭证,后者返回 OSS 表单签名、对象键、大小上限和每轮一次的 RSA 公钥;客户端将工作区打包为 tar.gz,用 AES-256-CTR 加密,封装对称密钥,然后将压缩包直接 POST 到阿里云 OSS,OSS 再回调 Z.ai 后端注册该快照。测试期间,运行中的客户端与 zcode.z.ai 及两个阿里云 OSS 节点保持着持久连接。
还原出的 ZCode 快照上传流程:从协调端获取凭证、本地打包加密、直接表单 POST 到阿里云 OSS、回调注册。由 ferstar 从客户端 app.asar 逆向还原。
顺理成章的做法是打开设置。ferstar 将界面开关与代码进行了交叉比对:
宿主程序在启动时无条件实例化采集 sidecar,完全不受用户偏好控制——唯一的要求是 token 提供方能生成有效的 JWT。会话日志显示,单个活跃会话中触发了 62 次采集事件,在每次提交提示词之前以及任务完成时触发。
第二个信源证实了这一机制。OrcaPromptVault 是一个公开的 AI harness 提示词采集库,其中保存着 ZCode 的 131KB 系统提示词和 31 个工具的接口面。checkpoint/rewind 功能被写入了系统提示词——模板"Workspace rewind applied. rewindId, checkpointId, strategy, restoredFiles"出现了五次。这是快照流水线面向用户的冰山一角,也正是文件系统锁所禁用的那个功能。
智能体完整的工具接口面中不存在任何快照、上传或遥测工具。这条数据外传流水线不是智能体工具;它是在工具循环之外实例化的宿主级 sidecar。这就是为什么没有任何权限设置能阻止它,也是为什么智能体本身根本感知不到它。在 131KB 的采集指令中,通篇没有提到阿里云、OSS、上传或隐私。
本文补充一个 ferstar 未提及的细节:ZCode 自带一个 ReadSessionContext 工具,可按会话 ID 按需读取其他已持久化的 ZCode 会话。与宿主级快照 sidecar 相结合,会话内容既在本地持久化,又被云端捕获。
泄露的系统提示词中的 checkpoint 模板(出现五次),以及智能体的 31 工具接口面——其中不含任何快照、上传或遥测工具。
ZCode 的隐私政策声明该工具收集"对话中提交的文本、文件和代码"——这是所有 AI 编程工具都会做出的标准推理上下文披露。ferstar 在政策、FAQ 和更新日志中均未找到关于打包并上传整个工作区和 git 历史的说明。最接近的一句是关于优化计划默认关闭的模板化声明。
ZCode 于 2026 年 7 月发布,其发布宣传直接以信任为核心卖点。就在 Claude Code 隐藏遥测争议发生数周后,Z.ai 将这款 harness 定位为 Anthropic Claude Code 的对标产品,并将开源权重包装成摆脱 kill-switch 困境的出路。当被问及 ZCode 是否会包含"任何形式的间谍软件"时,一位 Z.ai 高管在 X 上回应称,公司不会实现"ZCode 网站所列内容之外的任何东西"。
而工作区快照并未列在 ZCode 网站上。
Z.ai 于 2026 年 1 月在香港证券交易所上市。截至发稿,该公司官方 X 账号尚未回应 ferstar 的帖子。最显眼的回复来自一个与 ZCode 团队有关联的账号——“hey I am sorry to let you find it”(嘿,很抱歉被你发现了)——这更像是对该机制的确认,而非反驳。ferstar 的推文在 13 小时内浏览量突破 27.6 万,V2EX 及 HN 相关频道的讨论帖大致沿一条界线分裂:智能体在工具调用期间上传代码片段是常态,但那是在征得同意的前提下。而这次是完整仓库加上全部历史,未经同意,且经过加密,只有厂商才能解密读取。
删除待上传的压缩包没有用:客户端在半小时内重新打包出一个全新的 313MB 压缩包,重试计数器持续递增。真正有效的修复是文件系统层面的。在内核层面将 checkpoints 目录设为不可写:
rm -rf ~/.zcode/v2/checkpoints mkdir -p ~/.zcode/v2/checkpoints sudo chattr +i ~/.zcode/v2/checkpoints
macOS:
rm -rf ~/.zcode/v2/checkpoints mkdir -p ~/.zcode/v2/checkpoints chflags uchg ~/.zcode/v2/checkpoints
代价是:checkpoint 回滚界面将停止工作——而这个功能本身的前提就是上传你的代码。聊天、自动补全和工具调用均正常运作。如需恢复,执行 chattr -i 或 chflags nouchg。
本地运行开源权重是开源模式的招牌:你的模型、你的硬件、没有按 token 计费的账单、没有厂商的远程关停。ZCode 事件让这一点在模型层之外变得更加尖锐。模型周围的运行时——harness、桌面应用、更新流水线——同样是信任面的一部分。一个运行在本地、却被包裹在"向云端打电话"的 harness 里的模型,算不上真正的本地。