kendreaditya/claude-code-x

GitHub: kendreaditya/claude-code-x

ccx 是一个版本无关的 Claude Code CLI 二进制文件修补工具,通过社区维护的等长字节补丁安全、可逆地定制 Claude Code 的行为、界面和性能。

Stars: 0 | Forks: 0

ccx

claude-code-x

一个通用的、尊重来源的 Claude Code CLI 二进制文件修补工具。

`ccx` 是一个与版本无关的 [Claude Code](https://claude.com/claude-code) Bun 编译二进制文件修补工具。补丁是 纯数据(`registry//*.ccxpatch.json`);引擎通过一个与版本无关的 **landmark anchor** 解析每个补丁,应用 **等长字节编辑**, 重新签名,并验证二进制文件是否仍能启动 —— 同时提供干净的还原功能和记录所有修改内容的清单。它不是一个分支(fork),也不是重新构建。 ## 安装 ``` pip install -e . # exposes the `ccx` entry point # 或不安装直接运行: ./bin/ccx ``` 环境要求: - Python ≥ 3.10(等长引擎仅使用标准库;无第三方依赖) - macOS 或 Linux,运行于 Bun 编译的 Mach-O / ELF 二进制文件上 - 已正式安装 [Claude Code](https://claude.com/claude-code)(该修补工具会 编辑*你*已安装的二进制文件——它不会提供二进制文件) ## 使用方法 | 命令 | 功能说明 | |---------|--------------| | `ccx latest` | 查看已安装版本与最新发布的 Claude Code 版本 | | `ccx detect` | 探测目标环境的容器 / 版本 / Bun 尾部信息 / 签名情况 | | `ccx list [--archived]` | 查看补丁目录,按组分类,并显示实时适用性 | | `ccx apply … \| --group \| --all-applicable` | 应用补丁(引用 → 备份 → 编辑 → 重新签名 → 冒烟测试 → 生成清单) | | `ccx status` | 查看已应用的补丁,并根据二进制文件进行实时二次验证 | | `ccx validate-all` | 将每个补丁应用到一个临时副本上并进行启动测试 | | `ccx revert … \| --group \| --all` | 根据清单进行精准撤销 | | `ccx verify-effect …` | 分类评估补丁的*运行时*效果 (M2) | | `ccx hook install` | 安装 SessionStart hook,用于在自动更新后重新应用补丁 | `apply` 命令还支持 `--dry-run`、`--yes/-y` 和 `--from-manifest`(由修复 hook 使用)。完整的交互式选择器(`-i`)正在开发计划中。补丁可通过 id、 `--group` 或 `--all-applicable` 进行选择;系统会检测冲突的补丁(重叠的字节范围),并跳过后应用的那一个。 ``` $ ccx detect path: /Users/you/.local/share/claude/versions/2.1.158/claude version: 2.1.158 container: macho-arm64-bun format: macho bun: trailer @ 102,432,768 signed: adhoc size: 128,401,232 bytes $ ccx apply fifo-steering-queue [cite] FIFO Steering and Queue Bundling — kendreaditya/claude-code-x Apply 1 patch(es) to 2.1.158? [y/N] y ✓ fifo-steering-queue: applied 3 edit(s); launch=True ``` ## 补丁 补丁按意图分组发布。每个定义都引用了其来源仓库;所有处于激活状态的 补丁均为 `binary`(二进制)级别的**等长**编辑(无偏移量移动)。运行 `ccx list` 可查看针对你所安装版本的实时适用性。 ### 行为 | id | 功能说明 | 来源 | |----|--------------|--------| | `fifo-steering-queue` | 将排队输入变为纯 FIFO:无回合中途的 `` 引导,无按模式捆绑 —— 每条消息均作为一个独立回合处理完毕 | `kendreaditya/claude-code-x` | | `denerf-system-prompt` | 将系统提示词中“responses should be short and concise”(回复应简短扼要)的简短指令改写为“thorough and clear”(详尽且清晰) | `roman01la/patch-claude-code` | | `expand-thinking-traces` | 强制使 `shouldShowFullThinking` 门控始终开启,从而无需 `ctrl+o` 即可展开渲染思考块 | `aleks-apostle/claude-code-patches` | | `inline-files-thinking` | `patch-claude-display` 的等长子集:中和思考折叠门控,使完整的思考过程在行内流式输出 | `a-connoisseur/patch-claude-code` | ### 界面外观 | id | 功能说明 | 来源 | |----|--------------|--------| | `plain-thinking-words` | 将 187 个词的奇特加载动画动词池("Flibbertigibbeting"…)替换为单一的普通词汇 "Thinking" | `ominiverdi/claude-depester` | | `terminal-title-update` | 翻转一次性守卫,使得自动生成的终端标题在每次符合条件的消息时重新生成 | `antonioacg/claude-code-title-patch` | | `user-message-color` | 将深色主题下用户消息的背景色从灰色更改为 blue-600(包括标准版和色盲友好版变体) | `gabinfay/claude-code-color-patch` | ### 限制 | id | 功能说明 | 来源 | |----|--------------|--------| | `context-limits-compaction` | 将上下文窗口从 200000 提升至 272000 tokens,并将自动压缩缓冲区从 13000 提升至 13600 | `InDreamer/claude-context-patch` | | `unlock-limits-skills` | 将每个技能列表的描述上限从 1536 提升至 9999 字符,使更详尽的技能描述能够传达给模型 | `huybuidac/claude-code-patchkit` | ### 性能 | id | 功能说明 | 来源 | |----|--------------|--------| | `cpu-perf-patches` | 中和无条件每秒一次的强制 `Bun.gc`(1000ms → 1e15),消除持续不断的堆标记工作 | `denysvitali/claude-code-patches` | ### 隐私 | id | 功能说明 | 来源 | |----|--------------|--------| | `channels-no-oauth` | 强制将 `isChannelsEnabled()` / `tengu_harbor` 门控默认值设为 true,使得 `--channels` 在无需 claude.ai OAuth 的情况下即可工作 | `genusdryasnizhninovgorod936/claude-channels-patch` | **已归档补丁**位于 [`registry/_archived/`](./registry/_archived/)(可通过 `ccx list --archived` 查看)。当一个补丁对于等长字节引擎而言*超出了处理范围*(例如代理、备用构建、提示词级别的规则集、 修补框架、纯源代码补丁),或者当它*在新版本中失效*时,该补丁即被归档 —— 每日发布监控 CI 会自动归档任何其锚点在新版本发布时停止解析(或停止启动)的补丁,并在 [`compat/`](./compat/) 下记录 `archive_reason` 及兼容性报告。 ## 工作原理 每次执行 `ccx apply` 都是一系列硬门控的链条 —— 在修改任何一个字节之前解析所有内容,然后一次性写入并原子化替换: ``` DETECT → LOCATE → VERIFY → [confirm] → BACKUP → APPLY → RE-SIGN → SMOKE-TEST → MANIFEST ``` - **锚定而非偏移量** —— 定位器是对内嵌明文 JS 进行匹配的正则表达式, 受限于所属的 Bun CJS 模块,且要求完全匹配一次,因此 发布版本之间常规的压缩器标识符更迭会被自动处理。 - **等长编辑** —— 等字节替换无需 Mach-O 修复,仅需进行 临时重新签名;变长(LIEF)方式在实现之前受到门控限制。 - **所属模块门控** —— `in_bun_region` 将匹配限制在正确的 内嵌模块中,避免在二进制文件的其他位置发生意外命中。 - **基于清单的还原** —— 清单存储了原始/已修补的字节,用于进行精准的 `revert`;`.unpatched` 是原始纯净的备用文件。 - **冲突检测** —— 捕获选定补丁中重叠的字节范围, 并丢弃后应用的补丁。 - **SessionStart 自动修复** —— Claude Code 自动更新会写入一个全新的、 *未修补的* 二进制文件;已安装的 hook 会幂等地将你的清单中的 补丁集重新应用到新版本上(带有递归保护、针对无操作有快速路径,以及针对单个二进制文件的尝试次数上限)。 - **可靠的验证** —— 检查标记是否存在、稳定的 Bun 尾部偏移量、 `codesign --verify` 以及启动冒烟测试(从不依赖文件大小是否相等,因为每次运行重新签名都会改变文件大小)。 深入了解:[docs/M2-bytecode-finding.md](./docs/M2-bytecode-finding.md) (提供经验证明:明文 JS 编辑会改变运行时行为), [docs/engine-design.md](./docs/engine-design.md), [docs/cli-design.md](./docs/cli-design.md),以及 [GOAL.md](./GOAL.md) 了解 设计和里程碑。 ## 版权归属与许可 MIT [LICENSE](./LICENSE) 仅涵盖**这些脚本和 `*.ccxpatch.json` 定义** —— **不包括**修补后的 Claude Code 二进制文件,该文件仍属于 Anthropic 的版权作品。请修补你自己的安装;请勿分发已修补的二进制文件。
标签:文档结构分析, 逆向工具