kendreaditya/claude-code-x
GitHub: kendreaditya/claude-code-x
ccx 是一个版本无关的 Claude Code CLI 二进制文件修补工具,通过社区维护的等长字节补丁安全、可逆地定制 Claude Code 的行为、界面和性能。
Stars: 0 | Forks: 0
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 的版权作品。请修补你自己的安装;请勿分发已修补的二进制文件。标签:文档结构分析, 逆向工具