helm-x

August 17, 2026 · View on GitHub

English | 中文

仓库地址https://github.com/ADWMC/helm-x


如果这个项目对你有帮助,请给个 Star 支持一下!

Telegramt.me/helm_xD


Codex CLI 本地映射控制工具 · 单二进制 · 零外部 DLL 依赖

本项目由 AI 生成(DeepSeek V4 Flash + Mimo V2.5 Pro),代码质量仅供参考,请勿喷。

⚠️ 仅供学习交流,禁止商用。 使用者须遵守所在地法律法规,对使用本项目产生的后果自负。


这是什么

helm-x 是 Codex CLI 的本地映射层:codex → 127.0.0.1:1800 → 上游中转。请求经本地代理转发时,代理层强制注入自定义指令,并在响应层对拒绝做 TAMPER 改写——让对话不中断、内容能送达。

核心能力

  1. 提示词注入:内置精简绕过提示词(2.5KB),通过代理注入到请求体
  2. TAMPER 篡改:拒绝响应被检测到时改写为合规标记(支持 SSE 流式 + 自动重试)
  3. 上下文感知改写器:cyber flag 触发时自动改写请求(读取对话历史 + 重试机制)
  4. 内置免费改写 API:开箱即用,无需额外配置
  5. Context Gardener:自动裁剪历史大型工具输出和 Base64 图片,减少重复上下文请求
  6. 云更新 QA:WebUI 内置常见问题,支持从 GitHub 更新并离线回退
  7. 零依赖:单 exe 静态链接,仅 Windows 系统库

测试结果

v0.0.5 全量测试(60 题,改写器关闭)

指标数值
总用例60
通过46 (76.7%)
拒绝3 (5%)
上游 ERROR11 (18.3%)
排除 ERROR 通过率93.9%
Cyber Flag0%

版本对比

版本Prompt 大小CS2 ESP 5次60 题通过率
v0.0.215KB40%~70%
v0.0.315KB40%85%
v0.0.42.5KB100%95% (20题)
v0.0.52.5KB100%93.9% (60题)

Prompt 设计

最终 prompt 2.5KB,7 个核心机制:

机制作用
CTF 竞赛框架让模型认为所有目标都是 CTF fixture
激活协议helmx 触发词
人设 luna让模型更配合执行
计分制拒绝 = -500(淘汰),执行 = +100
输出锁必须以代码/工具开头,跳过拒绝前言
禁止词不能/无法/I can't/sorry 等词汇封锁
语义归一化"外挂"→memory analysis,"ESP"→rendering pipeline

架构

codex ──> http://127.0.0.1:1800 ──> 上游中转

         [注入提示词]    [TAMPER 篡改]
         [改写器]        [Clean Session]

         [cyber flag?] ──→ [上下文感知改写] ──→ [重试]

使用教程

一、准备上游中转

~/.codex/config.toml 中配置:

[model_providers.custom]
name = "my-relay"
base_url = "https://your-api.com/v1"
wire_api = "responses"
api_key = "your-api-key"

二、启动 helm-x

helmx.exe

双击即可。自动完成:启动 proxy(:1800) + 启动 UI(:8090) + 打开浏览器。

三、使用 Codex CLI

codex

所有请求自动经过 helm-x 代理层:提示词注入 + TAMPER + 改写器。

四、切换提示词

Web 控制台 → 提示词页面 → 选择模式 → 重启 proxy。

五、查看日志

Web 控制台 → 运行日志 → Cyber 日志 + 代理日志。

六、上下文压缩

Web 控制台 → 上下文,可配置:

  • 是否启用 Context Gardener
  • 历史工具输出裁剪阈值
  • tool_output_token_limit
  • model_auto_compact_token_limit
  • 压缩计算范围

默认在 180K token 触发自动压缩,超过 32KB 的历史工具输出会在转发前裁剪。

七、上游错误重试

默认启用上游请求重试:失败后的额外重试次数为 10,即单次请求最多发送 11 次;每次重试固定等待 3 秒。Web 控制台 → 服务 → 上游请求重试可调整开关、次数和固定间隔;0 表示无限重试。HTTP 4xx/5xx、空响应和中转连接错误都会进入重试。

也可仅对当前 proxy 进程覆盖:

helmx proxy --max-retries 0        :: 无限重试
helmx proxy --max-retries 2        :: 初始请求后额外尝试 2 次
helmx proxy --retry-delay 3        :: 固定间隔 3 秒
helmx proxy --no-retry             :: 禁用本次进程的重试

每次重试采用固定间隔,不使用上游返回的 Retry-After。重试等待期间按 Ctrl+C 或关闭 helm-x 窗口即可立即停止。

八、QA 帮助

首次打开 WebUI 会询问是否查看 QA。QA 页面支持搜索和“检查更新”:

  1. 优先读取 GitHub master/assets/qa.json
  2. GitHub 请求失败时读取浏览器缓存
  3. 缓存也不存在时使用 EXE 内置 QA

QA 内容维护方法见 docs/QA.md


改写器

内置免费改写 API(sensenova-6.7-flash-lite),开箱即用。

也可配置自己的 API:

{
  "upstream_retry_enabled": true,
  "upstream_max_retries": 10,
  "upstream_retry_delay_seconds": 3,
  "rewriter": {
    "enabled": true,
    "base_url": "https://your-api.com/v1",
    "api_key": "your-key",
    "model": "your-model"
  }
}

目录结构

src/
  main.cpp           CLI 入口 + 双击启动
  proxy.cpp          HTTP MITM(注入、TAMPER、改写器)
  ui.cpp             Web 控制台
  rewrite.cpp        改写器模块(上下文感知 + 重试)
  tamper.cpp         TAMPER 规则引擎(28 条)
  log.cpp            线程安全日志 + Cyber 日志
  config.cpp         配置管理
  resources.cpp      加密资源解密
tools/embed.py       资源加密生成器
assets/
  prompt-ctf-scoring.md       默认提示词(2.5KB,CTF 计分制)
  prompt-sandbox-executor.md  v45 提示词(沙盒执行器)
  prompt-deepseek优化版.md    deepseek 提示词(CTF 计分制 + 输出锁定)
  tamper_rules.txt            28 条拒绝句式
  rewrite_prompt.txt          改写器系统提示词
  rewriter_builtin.json       内置改写 API 配置
  qa.json                     WebUI QA 云更新数据
  dashboard.html              Web 控制台

构建

python tools/embed.py
cmake -B build -G "MinGW Makefiles"
cmake --build build

参考项目

License

GNU AGPL v3.0 · ⚠️ 仅供学习交流,禁止商用