为 ZCode 桌面版注入一键式提示词增强(Prompt Enhancement)
在输入框旁注入一颗星芒按钮 ✨ —— 点击把当前草稿发给模型,改写得更清晰后回填,检查后发送,支持撤销与停止。
写提示词时经常词不达意:想法很多,表达模糊,模型理解偏差。zcode-blank 把提示词增强体验带到 ZCode 桌面版——你写草稿,它交给模型改写成一份更清晰、更具体、更可执行的提示词,回填输入框由你检查后发送;不满意一键撤销,原文永远不丢。
写好草稿 → 点击 ✨ → 模型改写 → 回填输入框 → 你检查 → 发送
↘ 一键撤销,恢复原文
↘ 处理中再点可停止(三层中止:UI 放弃 + 网络中断 + 服务端取消)
内置三套增强模式可切换,并支持完全自定义模板:
| 模式 | 风格 | 适用 |
|---|---|---|
| WorkBuddy 原版 | 简洁精确,约 800 字符上限 | 日常任务,快进快出 |
| 创意增强 | 充分展开,无字数限制,保留代码/报错原文 | 开放性需求、复杂设计 |
| 自定义模板 | 你的模板即 user 消息,{input} 占位符插入草稿 |
完全掌控增强行为 |
连接配置默认「跟随 ZCode 当前模型」:自动匹配输入框当前显示的供应商与模型(含自定义请求头透传),凭据只在本地控制器内存中使用。也支持手动配置任意 OpenAI 兼容 / Anthropic 协议服务。
跟随模式或手动模式下,若检测到当前供应商 endpoint 命中智谱系官方域名(Z.ai 国际版 api.z.ai、智谱 BigModel 国内版 open.bigmodel.cn / api.bigmodel.cn),自动跳过其凭据并阻断增强,提醒用户改用第三方中转——智谱对第三方工具拿官方 key 去调官方 endpoint 封号严格。
其他厂商官方(OpenAI / Anthropic / Google 等)不在拦截范围——用户合法购买的官方 key 照常使用,零误伤。中转站与第三方代理同样不拦。
ZCode 桌面版是 Electron 应用,UI 为 Chromium 渲染的 Web DOM,但没有官方用户脚本或扩展机制。zcode-blank 通过 Chrome DevTools Protocol 实现非侵入注入:
桌面「zcode-blank」入口(vbs 无窗口启动)
└→ 本地控制器(常驻 Node 进程,凭据仅存于此)
├─ 分配空闲调试端口(默认 9333,占用自动顺延 9334-9350,启动前 bind 检测)
├─ 以 --remote-debugging-port 拉起 ZCode.exe(不改安装目录、不碰签名)
├─ CDP 向页面注入增强脚本(页面刷新/新窗口自动重注入;sha256 内容指纹守卫,脚本变了才重装)
├─ 页面脚本经 Runtime binding 发送当前草稿 → 控制器调用模型 → 回传
└─ 页面回填(受信 Input.insertText 通道;回填前校验草稿未变,改稿/切任务时结果保留不覆盖)
关键设计:
- 原版 ZCode 零影响:不改安装目录、不破坏签名、不干扰自动更新;想用原版直接点原版快捷方式
- 凭据不落盘:API Key / OAuth 凭据仅存于控制器进程内存,不写盘、不进日志、不回传页面,错误信息自动脱敏
- 智谱官方 API 风控:命中智谱系官方 endpoint(Z.ai / BigModel)自动跳过凭据 + 阻断增强 + 状态栏/页面提前警告,避免封号;其他官方不拦
- 端口防冲突:bind 预检 + 顺延策略,杜绝端口冲突
- 热重载:改 inject.js 自动重注入(1.2s 防抖 + 语法预检),改服务端需重启 CDP 模式
- 零第三方依赖——控制器与页面脚本均为原生 JavaScript
- Node.js 18+(推荐 22+,使用原生 WebSocket / fetch);发行包内嵌便携 Node 运行时,用户机器无需安装 Node
- Chrome DevTools Protocol(
Target.setAutoAttach、Page.addScriptToEvaluateOnNewDocument、Runtime.addBinding、Input.insertText) - Electron 远程调试(
--remote-debugging-port)
- 从 Releases 下载
zcode-blank-vX.Y.Z-win-x64.zip - 解压到任意目录
- 双击文件夹内 「启动zcode blank.vbs」 即可使用;右键发送到桌面快捷方式可获得「zcode-blank」入口
前置条件:已安装 ZCode 桌面版。发行包内含便携 Node(node-runtime/node.exe),vbs 优先用它,无需用户另装 Node。
git clone <本仓库地址>
cd zcode-blank- 前台调试模式:
node controller.mjs(控制台直接看日志) - 独立模式(不注入 ZCode,仅增强服务 + 浏览器配置页):双击
独立模式.bat
前置条件:本机已装 Node.js 18+(推荐 22+)。若未安装,vbs/bat 会引导用 winget install OpenJS.NodeJS.LTS 自动安装,或打开 nodejs.org 手动下载。
- 便携版:
node-runtime\node.exe(发行包自带,版本锁定,优先用) - 系统 PATH:
where node(用户自行安装的) - winget 引导:都没有时弹框,Yes 自动装 Node.js LTS,No 打开下载页
- 通过「zcode-blank」入口启动(原版 ZCode 运行中会提示是否重启)
- 等待 2-3 秒,输入框左下角模式切换右侧出现星芒按钮 ✨
- 写草稿 → 点击星芒(最长 90 秒,处理中再点可停止)→ 等待回填 → 检查 → 发送
- 增强后左侧出现撤销按钮,一键恢复本轮增强前文案(不请求模型)
- 右键星芒按钮打开设置面板(独立应用窗口):
- 增强模式三选一(含自定义模板编辑器,附示例模板一键填入)
- 连接配置:跟随 ZCode 当前模型(默认,凭据不保存)/ 手动模式(Base URL、API Key、模型、协议三选)
- ZCode 程序路径(留空自动探测,或点「检测」自动填入)
- 历史记录与收藏(自适应高度,展开自动滚入可视区)
- 状态与诊断:最近 8 次增强记录(脱敏)、最近一次完整结果(可复制)
- 试炼场(配置页「增强」Tab):输入草稿 → Enter 直接增强(Shift+Enter 换行)
安装目录下的 zcode-plus-cdp.json(控制器配置,首次运行自动生成):
| 字段 | 说明 |
|---|---|
zcodePath |
ZCode.exe 完整路径;留空 "" 表示自动探测。推荐正斜杠 E:/zcode/ZCode.exe,反斜杠需 \\ |
port |
调试端口,默认 9333;被占用自动顺延 9334-9350 |
mcp/config.json(增强服务配置,配置页「设置」保存):
| 字段 | 说明 |
|---|---|
connMode |
auto 跟随 ZCode 当前模型 / manual 手动配置 |
apiUrl / apiKey / model / apiFormat |
手动模式连接信息(跟随模式留空) |
enhanceMode |
workbuddy / creative / custom |
customTemplate |
自定义模板,含 {input} 占位符 |
zcodePath |
ZCode.exe 路径(与 zcode-plus-cdp.json 互通,控制器读取回退用) |
timeoutMs |
增强超时,默认 90000(本地大模型可调 300000) |
优先级:环境变量 ZCODE_PATH > zcode-plus-cdp.json 的 zcodePath > mcp/config.json 的 zcodePath > 自动探测。
ZCode.exe 自动探测顺序:控制器所在目录及上级 → 各盘 \zcode\ → 各盘 Program Files\ZCode\ → C 盘标准位置 → 注册表 App Paths → PATH。
| 现象 | 处理 |
|---|---|
| 提示"未找到 ZCode.exe" | 在配置页「设置」填 ZCode 路径,或点「检测」自动填入;也可编辑 zcode-plus-cdp.json 的 zcodePath |
| 按钮不出现 | 确认从「zcode-blank」入口启动(原版无 CDP 通道无注入);等待 2-3 秒 |
| 增强失败 | 右键按钮 → 设置 → 复制错误信息;查看 mcp/debug.log |
| 改了 inject.js 不生效 | 热重载(带防抖),稍等;查 mcp/debug.log 的 script-loaded hash= 确认新脚本进页面 |
| 改了服务端不生效 | controller.mjs / enhance-http.mjs / enhance-core.mjs 改动需完整重启 CDP 模式 |
| "检测到智谱官方 API" | 当前供应商命中智谱系官方 endpoint(Z.ai / BigModel),已跳过凭据;请在配置页改用第三方中转 endpoint |
| 点停止仍输出结果 | 已修复(三层中止:UI 放弃 + 网络中断 + 服务端取消);查 debug.log 的 stop-requested ctrl=set abort=function |
| 历史记录查不到 | 已改为服务端统一落库;配置页切到「历史」Tab 自动刷新,可见时每 15 秒轮询 |
| 端口冲突 | 自动顺延 9334-9350;全占用则启动失败并写日志 |
| ZCode 大版本更新后按钮消失 | 页面结构可能变化,更新 inject.js 后重启 |
- 增强请求只包含当前草稿文本,不携带会话历史、附件或代码库内容
- 自动模式凭据运行时读取(用户级 + 工作区级配置),仅存控制器内存
- 手动模式 API Key 保存于本机配置文件,不回传页面
- CDP 调试端口仅监听 127.0.0.1(本机回环);介意时关闭 ZCode 即彻底关闭端口
- 智谱官方 API 风控:命中智谱系官方 endpoint(Z.ai / BigModel)自动跳过凭据,不读取/不使用官方 key,避免封号;其他官方照常使用
# 发行包:便携 node.exe 放入 node-runtime/,连同源码打包
# node-runtime/node.exe 从 nodejs.org/dist 下载 Windows x64 zip 解压取得发行包目录结构:
zcode-blank/
├─ node-runtime/node.exe # 便携 Node(用户免装)
├─ controller.mjs # CDP 控制器
├─ config-gui.html # 配置页 UI
├─ mcp/ # 增强服务
│ ├─ enhance-http.mjs # HTTP 服务(:19836)
│ ├─ enhance-core.mjs # 核心逻辑
│ ├─ enhance-prompt-inject.js # 页面注入脚本
│ ├─ zcode-config.mjs # 配置解析 + 官方风控
│ ├─ zcode-chat-context.mjs # 聊天上下文
│ └─ project-context.mjs # 项目上下文
├─ 启动zcode blank.vbs # CDP 模式启动器
└─ 独立模式.bat # 独立模式启动器
本项目以 MIT License 开源。
- 取之于linux.do和Zcode,那就用之大家
- 本项目为社区兴趣驱动的非官方移植,与 ZCode 官方无任何关系;ZCode、其名称、商标、官方资源归其权利人所有,本项目未获得其官方授权或认可
- 项目灵感来源于提示词增强功能,同样与原作官方无隶属关系
- 本项目依赖 ZCode 桌面版的非公开内部接口(Chrome DevTools Protocol 注入与页面 DOM 结构),不承诺对未来 ZCode 版本的兼容性;ZCode 更新导致功能失效属预期风险,请谨慎用于生产环境
- 增强请求会将当前草稿发送至你配置的模型服务,可能消耗 API 额度;发送前请自行确认内容与配置
- 软件按「现状」提供,使用产生的一切后果由使用者自行承担
感谢 LINUX DO 社区的支持。
问题反馈、功能讨论与交流,欢迎前往 LINUX DO。