|
| 1 | +--- |
| 2 | +title: Claude Code 缓存优化代理 |
| 3 | +icon: material-symbols:cached |
| 4 | +order: 5 |
| 5 | +--- |
| 6 | + |
| 7 | +## 一句话介绍 |
| 8 | + |
| 9 | +[claude-code-cache-fix](https://github.com/cnighswonger/claude-code-cache-fix) |
| 10 | +是一个**第三方开源小工具**,作用是帮 Claude Code **省额度**。 |
| 11 | + |
| 12 | +简单理解:它像一个“中间人”,挡在你的电脑和 Claude 服务器之间, |
| 13 | +帮你把每次发出去的请求“整理整齐”,让 Claude 更容易**复用之前的对话** |
| 14 | +(也就是**命中缓存**),从而少花额度。 |
| 15 | + |
| 16 | +> 它不会让 AI 变聪明,只是让你的额度更耐用。 |
| 17 | +
|
| 18 | +## 为什么需要它? |
| 19 | + |
| 20 | +Claude Code 用得越久,你可能会发现: |
| 21 | + |
| 22 | +- 同样几句话,**额度掉得比想象中快**; |
| 23 | +- 恢复一个旧对话(`--resume`),**像重新付了一次费**; |
| 24 | +- 开了 MCP、Skills、Hooks 后,**消耗莫名变高**。 |
| 25 | + |
| 26 | +这些大多不是 bug,而是 Claude Code 的请求结构有点“不稳定”, |
| 27 | +导致服务器认不出“这是同一段上下文”,于是**重新计费**。 |
| 28 | + |
| 29 | +`claude-code-cache-fix` 干的事情就一件:**把请求洗干净、排好序、 |
| 30 | +打上正确的缓存标记**,让 Claude 服务器一眼认出“这段我见过”, |
| 31 | +直接走便宜的缓存价。 |
| 32 | + |
| 33 | +它具体做了什么(看不懂可以跳过): |
| 34 | + |
| 35 | +| 它做的事 | 对你的好处 | |
| 36 | +| --- | --- | |
| 37 | +| 修正恢复会话时的请求结构 | `--resume` 后不再被当成新对话重新计费 | |
| 38 | +| 去掉版本号等不稳定标记 | Claude Code 升级后缓存不会突然失效 | |
| 39 | +| 把工具、MCP 定义按固定顺序排列 | 同样的配置每次请求长得一样,缓存能命中 | |
| 40 | +| 自动打好 `cache_control` 标记 | 主动告诉服务器“这段请缓存” | |
| 41 | +| 记录每次缓存命中和额度情况 | 出问题时方便排查,文件存在 `~/.claude/quota-status/` | |
| 42 | +| 不依赖老的 `NODE_OPTIONS` 注入 | 新版 Bun 版 Claude Code 也能用 | |
| 43 | + |
| 44 | +## 适合谁用? |
| 45 | + |
| 46 | +- ✅ 重度使用 Claude Code、对额度敏感的用户 |
| 47 | +- ✅ 经常 `--resume` 长会话、开了一堆 MCP / Skills 的用户 |
| 48 | +- ✅ 愿意动一点命令行的用户 |
| 49 | +- ❌ 完全不想碰终端、只想开箱即用的用户(先不用上这个) |
| 50 | + |
| 51 | +::: warning 它不能解决所有额度问题 |
| 52 | +这个工具只能优化本地请求结构和缓存相关问题。模型本身价格、长上下文消耗、 |
| 53 | +服务端配额降级、错误模型选择、频繁大文件读取等问题,仍然需要单独排查。 |
| 54 | +::: |
| 55 | + |
| 56 | +::: danger Windows 原生环境不适用 |
| 57 | +`claude-code-cache-fix` **不建议在 Windows 原生 CMD / PowerShell 中配置使用**。 |
| 58 | + |
| 59 | +Windows 用户请优先在 **WSL 的 Linux 环境** 中完成 Node.js、Claude Code、 |
| 60 | +PackyAPI 和 `claude-code-cache-fix` 的整套配置。不要把 Windows 原生 |
| 61 | +Claude Code 与 WSL 代理混在一起使用,否则很容易出现路径、环境变量、 |
| 62 | +后台服务和本地端口不一致的问题。 |
| 63 | +::: |
| 64 | + |
| 65 | +::: warning 第三方工具提醒 |
| 66 | +`claude-code-cache-fix` 不是 PackyAPI 官方维护工具。它会经过本机 API 请求, |
| 67 | +安装前请自行审查源码、依赖和配置方式。 |
| 68 | +::: |
| 69 | + |
| 70 | +## 推荐使用 AI 辅助配置 |
| 71 | + |
| 72 | +这个工具涉及本地代理、环境变量和后台服务配置,手动配置容易漏项。 |
| 73 | +推荐把你的系统环境、PackyAPI Endpoint 和 GitHub 项目链接一起发给 AI, |
| 74 | +让 AI 按你的机器生成命令。 |
| 75 | + |
| 76 | +可以直接使用下面这段提示词: |
| 77 | + |
| 78 | +```text |
| 79 | +请根据 https://github.com/cnighswonger/claude-code-cache-fix 的最新 README, |
| 80 | +帮我在当前系统中配置 Claude Code 缓存优化代理。 |
| 81 | +要求: |
| 82 | +1. 我使用 PackyAPI,upstream 必须是 https://www.packyapi.com |
| 83 | +2. Claude Code 的 ANTHROPIC_BASE_URL 应指向本地代理 http://127.0.0.1:9801 |
| 84 | +3. 保留 ANTHROPIC_AUTH_TOKEN,用我的 PackyAPI CC 分组令牌替换 |
| 85 | +4. Windows 用户请按 WSL Linux 环境来配置,不要使用 Windows 原生 CMD / PowerShell |
| 86 | +5. 给出验证代理健康状态和 Claude Code 回复是否正常的命令 |
| 87 | +6. 长期使用时,请给出适合当前系统的后台服务配置方式 |
| 88 | +``` |
| 89 | + |
| 90 | +## 最小验证流程 |
| 91 | + |
| 92 | +下面的命令适合在 Linux / macOS / WSL 中先验证代理是否能跑通: |
| 93 | + |
| 94 | +```bash |
| 95 | +npm install -g claude-code-cache-fix |
| 96 | +CACHE_FIX_PROXY_UPSTREAM=https://www.packyapi.com cache-fix-proxy server |
| 97 | +``` |
| 98 | + |
| 99 | +如果你使用的是优化线路 Endpoint,可以把 `CACHE_FIX_PROXY_UPSTREAM` 改成: |
| 100 | + |
| 101 | +```bash |
| 102 | +https://api-slb.packyapi.com |
| 103 | +``` |
| 104 | + |
| 105 | +## 配置 Claude Code |
| 106 | + |
| 107 | +代理启动后,将 Claude Code 的 `settings.json` 中 `ANTHROPIC_BASE_URL` |
| 108 | +改为本地代理地址,`ANTHROPIC_AUTH_TOKEN` 继续填写你的 PackyAPI |
| 109 | +**CC** 分组令牌: |
| 110 | + |
| 111 | +```json |
| 112 | +{ |
| 113 | + "env": { |
| 114 | + "ANTHROPIC_BASE_URL": "http://127.0.0.1:9801", |
| 115 | + "ANTHROPIC_AUTH_TOKEN": "xxx", |
| 116 | + "CLAUDE_CODE_ATTRIBUTION_HEADER": "0", |
| 117 | + "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1", |
| 118 | + "CLAUDE_CODE_DISABLE_TERMINAL_TITLE": "1" |
| 119 | + } |
| 120 | +} |
| 121 | +``` |
| 122 | + |
| 123 | +## 验证代理 |
| 124 | + |
| 125 | +另开一个终端,检查代理健康状态: |
| 126 | + |
| 127 | +```bash |
| 128 | +curl http://127.0.0.1:9801/health |
| 129 | +``` |
| 130 | + |
| 131 | +如果返回 `{"status":"ok"}`,再重新打开终端运行: |
| 132 | + |
| 133 | +```bash |
| 134 | +claude |
| 135 | +``` |
| 136 | + |
| 137 | +能正常进入 Claude Code 并收到回复,说明代理和 PackyAPI 配置已经连通。 |
| 138 | + |
| 139 | +## 长期使用建议 |
| 140 | + |
| 141 | +手动启动代理只适合临时验证。长期使用时,建议继续让 AI 根据你的系统生成 |
| 142 | +`systemd`、`launchd` 或其它后台服务配置,避免每次使用 Claude Code 前都要 |
| 143 | +手动启动代理。 |
| 144 | + |
| 145 | +再次提醒:Windows 用户请在 WSL 里完成整套配置,不要使用 Windows 原生 |
| 146 | +CMD / PowerShell 作为运行环境。 |
0 commit comments