Safe ZCode:更安全更可靠的开源 ZCode 分支

Safe ZCode 是上游 ZCode 开源快照的下游分支,围绕隐私、可控性和中文使用场景做了一组补丁,跟随上游更新,代码在 jidzhang/ZCode。 九月发布第一版时只支持 Windows;目前基线跟到上游 3.16.2,共发布 10 个版本,Windows、macOS、Linux 的 x64 与 arm64 均有安装包。实现方式与 Edge 之于 Chrome 类似:上游发布快照后合并,逐条重放本地补丁;上游已实现同类功能的,删除本地对应改动。 相较于官方版 隐私默认收紧。 模型遥测在打包环境写入关闭值;阿里云 ARMS 监控 SDK 换为零网络空实现;官方发行版构建期注入的 OTLP 上报地址,本项目不注入,安装包里没有可上报的目的地。启动时的七类后台请求(更新检查、升级提醒、灰度开关、帮助链接、模型列表、插件市场、远端小图标)默认全部停用,各自回落到本地数据;会话分享发布入口默认关闭。需要恢复时在 ~/.zcode/v2/setting.json 里加 "enableStartupOutbound": true 并重启。 日志可配置。 上游保留期固定 14 天且没有级别开关。现在有两个设置项:logLevel(error / warn / info,默认 info)和 logRetentionDays(0–365,默认 14)。阈值同时作用于主进程、渲染进程转发的日志和 Host 服务层日志,日志只写本地目录、不上传。 登录是选项,不是前提。 上游逐步收紧账号体系:未登录可能被全屏拦截,token 过期弹全屏重登页;3.16.2 的手机远控改成账号 JWT,只用 API key 的用户直接无法使用。本项目过滤掉启动守卫与过期推送,只在用户主动登录、选择需要账号的模型或登出后重连时显示登录页;不登录也能使用全部本地功能。手机远控恢复了 3.15.1 的免登录配对链路(二维码携带 hash/t,relay 匿名注册),手机页版本固定到 3.15.1。更新通道独立,发布包只查本仓库的 GitHub Releases。 飞书 / 微信通道更可靠。 通道是客户端与飞书、微信官方服务器的直连,不经过任何中间域名。在此基础上:飞书 token 被服务端提前作废时自动续期重试,流式卡片熔断改为 60 秒半开可恢复(上游为永久闩锁,一次故障只能重启);任务运行中发送的消息改为入队而非拒绝,桌面端发起的任务也能正确排队;工具调用摘要、报错、权限申请、状态预览四个出口统一做密钥打码,路径与链接保持原样。两个通道各有独立包,可挂到 zcode --web 后端用于无桌面部署。 ...

2026年10月23日 · 1 分钟 · Jid

Safe ZCode 小改进:文件夹右键直接打开

以前把一个文件夹弄进 ZCode,得先打开 ZCode 再一层层找路径,或者把文件夹拖进窗口。每天重复几次就烦了——明明资源管理器里点右键是最顺手的地方。 所以 Safe ZCode 加了系统右键入口:在 ZCode 中打开。装完把 ZCode 启动一次就有,不用管理员权限,不用改任何设置。 怎么用 选中文件夹右键:在文件夹图标、驱动器图标上点右键,选“在 ZCode 中打开”,直接以该目录为工作区打开。 空白处右键:在文件夹内空白处、桌面空白处点右键也行,打开的是当前所在的目录——和选中文件夹图标点右键效果一样。 macOS:Finder 里选中文件夹,从右键服务里选“在 ZCode 中打开”(Open in ZCode)。 菜单语言跟随 ZCode 界面语言,中文界面显示中文,切英文界面自动变英文。 实现上的几个讲究 Windows 菜单只写当前用户注册表(HKCU),不碰系统级位置,所以不需要提权,也不会影响同一台机器上的其他账号。 空白处右键没有“选中项”,注册表里必须用 %V(当前浏览目录)而不是 %1——VS Code 和系统自带终端也是这么注册的,照抄最稳。 每次启动和切换语言时都会重写一遍注册,exe 路径变了、语言变了都能自愈。 macOS 走的是 ~/Library/Services 下的 Finder 服务,效果对等。 已知和待办 卸载后 Windows 注册表项目前不会自动清理,会留一个点不动的菜单项——已知问题,重装启动一次即恢复正常,后续版本处理。 Linux 的右键入口还没有,文件管理器各家写法不一(Nautilus、Dolphin),排后面做。 下载见 Releases 页,用法细节同步写进了仓库里的 SAFE-ZCODE.md。

2026年10月3日 · 1 分钟 · Jid

Safe ZCode:把 AI 编程工作台调成静音模式

ZCode 是智谱开源的 AI 编程工作台,桌面端、浏览器、终端 Agent 一应俱全。但原版有个让我坐立难安的毛病:刚装好、什么都没点,它就在后台频频联系官方服务器——更新检查、升级提醒、灰度开关、模型列表、插件市场,一声不吭,全是自发的。 于是有了这个 fork:Safe ZCode。目标就一句话——软件默认安静,该联网时才联网。 顺带一提:同版本安装包官方约 170MB,自带约 143MB——小出来的近 30MB, 是拿掉阿里云遥测、再剔掉 sourcemap 这类非运行时文件省下的。 默认关掉的三样东西 遥测归零:模型遥测、ARMS、埋点上报默认全关,自打的安装包里根本不带上报地址。不是“有个开关可以关”,而是出厂就没有。 启动静默:冷启动 7 类直连官方的请求(更新检查、强制升级检查、灰度、帮助链接、模型列表、插件市场、远端小图标)默认全停,各回本地数据。我用抓包工具一条一条数过,干净了才算完。 分享默认关闭:会话分享不上官方后端;发往飞书/微信的工具调用摘要、报错、权限申请里夹带的密钥令牌,先打码再发,路径和链接保持可读。 修的几个真 bug 飞书 tenant token 会被服务端提前作废,旧代码按固定 90 分钟缓存,失效后熔断永久打开、回复静默丢失——改成按 expire 续期、失效驱逐、熔断 60 秒半开自愈。 打包脚本只认 macOS/Linux,两处 Windows 必挂(pnpm.cmd 的 call 陷阱、GNU tar 的盘符冒号)都修了,现在一键出 Windows 安装包。 打包产物里曾带着 21MB 的 sourcemap(含源码全文),现已剔除;第三方库自带的不动。 更新自己管 官方版的更新通道指向官方服务器——这正是我要切断的。自有更新走本仓库的 Releases,日常包更新器整个拿掉,点“检查更新”也只会告诉你已是最新。发版包的更新只认自家 Releases,不会去官方源。 下载 Releases 下载页(当前 v3.14.3-safe.1,Windows x64;ARM / Linux / Intel Mac 陆续补) 源码仓库(基于上游 v3.14.3,跟随上游更新) 日常用的装上就行;想折腾的看仓库里 SAFE-ZCODE.md,开关都在 ~/.zcode/v2/setting.json 里,改完重启生效。

2026年9月29日 · 1 分钟 · Jid