Skip to content

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

zcode-blank 提示词增强

为 ZCode 桌面版注入一键式提示词增强(Prompt Enhancement)

Platform: Windows

Dependencies: Zero

License: MIT

在输入框旁注入一颗星芒按钮 ✨ —— 点击把当前草稿发给模型,改写得更清晰后回填,检查后发送,支持撤销与停止。


项目介绍

写提示词时经常词不达意:想法很多,表达模糊,模型理解偏差。zcode-blank 把提示词增强体验带到 ZCode 桌面版——你写草稿,它交给模型改写成一份更清晰、更具体、更可执行的提示词,回填输入框由你检查后发送;不满意一键撤销,原文永远不丢。

写好草稿 → 点击 ✨ → 模型改写 → 回填输入框 → 你检查 → 发送
                ↘ 一键撤销,恢复原文
                ↘ 处理中再点可停止(三层中止:UI 放弃 + 网络中断 + 服务端取消)

内置三套增强模式可切换,并支持完全自定义模板:

模式 风格 适用
WorkBuddy 原版 简洁精确,约 800 字符上限 日常任务,快进快出
创意增强 充分展开,无字数限制,保留代码/报错原文 开放性需求、复杂设计
自定义模板 你的模板即 user 消息,{input} 占位符插入草稿 完全掌控增强行为

连接配置默认「跟随 ZCode 当前模型」:自动匹配输入框当前显示的供应商与模型(含自定义请求头透传),凭据只在本地控制器内存中使用。也支持手动配置任意 OpenAI 兼容 / Anthropic 协议服务。

特色:智谱官方 API 风控

跟随模式或手动模式下,若检测到当前供应商 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)

安装

方式一:下载发行包(推荐,零依赖)

  1. 从 Releases 下载 zcode-blank-vX.Y.Z-win-x64.zip
  2. 解压到任意目录
  3. 双击文件夹内 「启动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 运行时检测顺序(vbs/bat 三层)

  1. 便携版:node-runtime\node.exe(发行包自带,版本锁定,优先用)
  2. 系统 PATH:where node(用户自行安装的)
  3. winget 引导:都没有时弹框,Yes 自动装 Node.js LTS,No 打开下载页

使用

  1. 通过「zcode-blank」入口启动(原版 ZCode 运行中会提示是否重启)
  2. 等待 2-3 秒,输入框左下角模式切换右侧出现星芒按钮 ✨
  3. 写草稿 → 点击星芒(最长 90 秒,处理中再点可停止)→ 等待回填 → 检查 → 发送
  4. 增强后左侧出现撤销按钮,一键恢复本轮增强前文案(不请求模型)
  5. 右键星芒按钮打开设置面板(独立应用窗口):
    • 增强模式三选一(含自定义模板编辑器,附示例模板一键填入)
    • 连接配置:跟随 ZCode 当前模型(默认,凭据不保存)/ 手动模式(Base URL、API Key、模型、协议三选)
    • ZCode 程序路径(留空自动探测,或点「检测」自动填入)
    • 历史记录与收藏(自适应高度,展开自动滚入可视区)
    • 状态与诊断:最近 8 次增强记录(脱敏)、最近一次完整结果(可复制)
  6. 试炼场(配置页「增强」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。

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages