关于 Sipcode
Sipcode 是面向 Claude Code 用户的开源命令行工具,通过 PreToolUse 钩子监测并整理会话上下文,也提供可衡量的使用与成本数据。它还可分析 OpenAI Codex 的会话用量,但不修改 Codex 行为。
主要功能
- 01监测上下文膨胀与偏移
- 02拦截重复文件读取
- 03限制冗长工具输出
- 04查看用量、支出与预测
- 05检查 Codex 使用限额
适用场景
- 01发现 Claude Code 会话中的上下文偏移
- 02减少同一会话重复读取文件
- 03查看每日支出和月末成本预测
- 04追踪 Codex 计划限额的使用情况
MCP 相关
Sipcode 提供 MCP 服务,供客户端查询会话统计、上下文状态及 Codex 限额等信息。README 提到 MCP 工具支持 Claude Code 会话分析,也可通过可选参数读取 Codex 会话。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
16收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
Sipcode
自动保持 Claude Code 的上下文整洁,让回答更精准、成本更低。
30 秒内完成安装
npm i -g sipcode
sipcode init
就这么简单。下一次启动 Claude Code 会话时,Sipcode 就会自动运行。几分钟后可验证:
sipcode drift
如果输出显示 no drift, context health stable,说明 Sipcode 正在发挥作用。
已经安装?请保持更新。 Sipcode 不会发起任何网络请求,因此无法弹出“有可用更新”的通知。养成每周更新的习惯:运行
sipcode update(或npm i -g sipcode@latest)以获取最新修复。详情请参阅更新 Sipcode。
什么是 Sipcode?
Sipcode 是一款免费的命令行工具,位于你和 Claude Code 之间。它可以完成三件事:
- 监控 Claude Code 的上下文窗口,并在上下文开始膨胀时发出警告(我们称之为“上下文腐化”)
- 在重复读取文件及其他浪费行为传给 Claude 之前将其拦截,让你以更低成本获得相同的回答
- 提供可核验的数据。每项节省都能在终端中量化。
它采用 MIT 许可证开源。正常使用时不会发起任何网络请求。你的数据不会离开笔记本电脑。
Sipcode 对比
| Sipcode | Tool A | Tool B | Tool C | |
|---|---|---|---|---|
| 工作方式 | 实时 PreToolUse 钩子 | 跨会话记忆存储 | 静态方法论 | RAG 检索服务 |
| 限制冗长的工具输出 | ✓ | ✗ | 仅文档 | ✗ |
| 去重同一会话中的重复读取 | ✓ | ✗ | 仅文档 | ✗ |
| 支持会话中途安装 | ✓ 已验证的预热填充 | n/a | n/a | n/a |
| 从设计上杜绝误去重 | ✓ | n/a | n/a | n/a |
| 在锁定语料库上进行可复现的基准测试 | ✓ 中位数 62.6%(20 个合成任务) | ✗ | ✗ | ✗ |
| 自省 MCP 工具 | ✓ 16 个工具 | ✗ | ✗ | 部分支持 |
| 支持的 Agent | Claude Code(全部功能);OpenAI Codex(支出分析和使用限额,不支持钩子) | 未比较 | 未比较 | 未比较 |
| 正常使用时不发起网络请求 | ✓ | ✓ | n/a | ✗ |
| 采用 MIT 许可证 | ✓ | ✓ | ✓ | ✓ |
Sipcode 可与记忆工具搭配使用,这类工具会在会话之间持久保存上下文(表格中的 Tool A)。Sipcode 则让每个单独的会话保持整洁。它们解决的是不同问题。两者同时运行,效果最佳。
查看按功能逐项对比及工具名称:anuj7411.github.io/sipcode/compare
你可能会需要它的原因
如果你用 Claude Code 处理实际工作,应该已经体会过:
- 长时间会话的费用很快就会变高。使用 Claude Max 进行两小时的会话,可能就会耗尽当天的套餐额度
- 上下文窗口越满,质量就越差。Claude 会开始重新读取文件、重复自己说过的话,也会忘记你的要求
- 你无法分辨哪些是冗余内容,哪些是真正重要的信息
Sipcode 会测量冗余内容,然后移除 Claude 不需要的部分。在任何机器上运行 sipcode benchmark,都能看到锁定的 20 项任务语料库中位数减少 62.6%。该语料库是合成的:由脚本生成的 Claude Code 对话记录配对组成(不使用 Sipcode 和使用 Sipcode),并非来自实时会话的录制内容。它展示了 Sipcode 的机制如何移除模拟会话中的内容。你的实际数值取决于工作负载,可通过 sipcode impact 在真实会话中测量。
两分钟速览
安装后,以下五条命令可以展示 Sipcode 的运行情况。
1. sipcode drift
检查当前 Claude Code 会话是否偏离了你的常规使用模式。这里会标记臃肿的上下文、重复读取和过时信号。
✓ Sipcode drift: no drift, context health stable vs your recent baseline.
默认情况下,它会检查 Claude Code 和 Codex 中最近的会话。--session <id> 用于检查特定会话,--here 将范围限制为当前文件夹中的会话,--agent claude-code 或 --agent codex 用于选择工具。
2. sipcode proxy --stats
按重写器分类,显示 Sipcode 在当前会话中拦截的内容。
Sipcode proxy, rewrite stats
total rewrites: 144
est. tokens saved: ~288,685 (heuristic)
signal kept: 67% (med), weighted across all rewrites
3. sipcode benchmark
运行锁定的 20 项任务语料库,并生成可复现的节省量数据。任何人都可以在任何地方运行此命令,得到 62.6% 的结果。对话记录由脚本生成,并非来自实时会话的录制内容,因此应将其视为 Sipcode 机制的模型,而非实际费用的测量结果(请参阅 METHODOLOGY)。
62.6% median savings on a locked 20-task corpus
range 37.4% to 80.6% 3,567,170 tokens $22.48
4. sipcode today
每日支出摘要。包含已使用的 token 数、会话数、输出比例,以及与 30 天中位数的对比。
spend so far $1.20 across 4 sessions
tokens so far 943.8K output ratio 3.7%
5. sipcode forecast
根据过去 14 天的数据预测月底情况。
projected month-end $17,674 (range $14,139 to $21,208)
Codex
Sipcode 也会读取 OpenAI Codex CLI 会话日志(~/.codex/sessions 和 ~/.codex/archived_sessions,或 CODEX_HOME 指向的文件夹)。对于 Codex,Sipcode 提供费用分析和用量限制信息:它会报告 Codex 会话使用了什么、令牌花在了哪里,以及距离计划限制还有多远。它不会改变 Codex 的行为。
会读取 Codex 的命令: stats、today、forecast、trend、impact、why、receipt、drift、regress 和 limits(仅限 Codex),以及 MCP 服务中的会话工具(这些工具接受可选的 agent 输入:"claude-code" 或 "codex")和 get_codex_limits。
-
--agent codex仅显示 Codex 数据。--agent claude-code仅显示 Claude Code 数据。 -
如果没有
--agent标志且两个工具都已安装,stats、today、forecast、trend和impact会为每个工具分别打印一个部分。stats、today和forecast会以一行汇总信息结尾,格式如下:Both tools: <total tokens> tokens · ~$<Claude Code> + ~$<Codex> -
why、receipt和drift会报告两个工具中最近的会话。如果另一个工具也有最近的会话,则会显示一行提示,指出该会话及用于查看它的标志。 -
--here对 Codex 也有效:它会匹配 Codex 为每个会话记录的工作文件夹。 -
每次调用的
--json只涵盖一个工具。没有--agent时,它涵盖 Claude Code;如果也存在 Codex 日志,则会在 stderr 上打印提示。添加--agent codex可获取 Codex JSON。 -
在同时安装了 Cursor 和 Codex 的机器上,如果没有
--agent标志,Sipcode 会显示 Codex 数据(不会读取 Cursor 的会话日志)。
Codex 令牌的统计方式。 Sipcode 会读取 Codex 的逐请求用量记录;对于较旧版本 Codex 的日志,则读取 Codex 在每次请求后记录的累计总量变化。缓存输入计入 Codex 的输入总量,因此 Sipcode 不会对缓存令牌重复计费。复制到续接或分支会话文件中的请求只会统计一次。在维护者的机器上,Sipcode 的逐文件总量与 Codex 自身在全部 15 份真实会话日志中的最终 total_token_usage 相符;一个与 Sipcode 不共用任何代码的独立计数器(scripts/verify-counts.mjs)也会针对同一批日志交叉核对每个周期命令。
价格。 Codex 模型的定价取自 OpenAI API 价格表(developers.openai.com/api/docs/pricing,以及 developers.openai.com/api/docs/models 下各 Codex 模型的页面;截至 2026-10-09),包括输入令牌超过 272,000 个时适用的长上下文费率。没有已知价格的模型会标记为未定价:其令牌仍会计数,费用下方会显示有多少令牌未计入费用,并且绝不会显示为 $0。
Codex 暂不支持: 将规则写入 AGENTS.md(rules 以及 init 中的规则步骤)、在 Codex 中注册 MCP 服务、代理和钩子(proxy、hygiene)、estimate 和 benchmark。rules --agent codex 和 estimate --agent codex 会以错误 E009 终止,而不是显示 Claude Code 数据。
压缩的 Codex 日志。 Codex 会将较旧的会话日志压缩为 .jsonl.zst。在 Node.js 22.15 或更高版本上,Sipcode 会像读取普通日志一样读取这些文件。在较旧版本的 Node.js 上,Sipcode 会跳过它们,并且每份报告开头都会显示警告,说明无法读取的文件数量,以及读取这些文件需要 Node.js 22.15 或更高版本。损坏或无法读取的日志也会触发同类警告。使用 --json 时,警告会作为提示写入 stderr,JSON 内容保持不变。
Codex 限额:sipcode limits
Codex 会在每次请求后,将你计划的用量限额读数写入自己的日志。sipcode limits 会读取这些日志,无需进行任何网络调用,并回答三个问题:我什么时候会达到限额?是什么消耗了限额?限额是否缩减了?
sipcode limits --since all 的输出示例(此处每 1% 对应的 token 数历史记录比默认的 90 天更久):
sipcode limits · Codex · plan: go · as of 2h ago (your last Codex request)
Weekly limit 62% used resets Wed 14 Oct 14:00 at this pace: runs out Tue 13 Oct ~18:00
30-day limit 22% used resets Mon 2 Nov at this pace: lasts until reset
What used your weekly limit (since Wed 7 Oct)
0199a1b2-c3d4-7a11 sipcode 31% 3.1M tokens
0199a0f7-11aa-7b02 my-app 17% 1.4M tokens
codex-auto-review (9 requests) 6%
unattributed (no Codex requests on this computer) 8%
Tokens per 1% of your weekly limit (gpt-5.4)
Mar 28: 425K Apr 1: 357K Apr 13: 77K
Possible limit cut around Apr 13: 5.1x fewer tokens per 1%.
Limits cover your whole account. Codex use on other devices or in the cloud
is not in these logs and can look like a cut.
- 日志报告的每个限额周期(5 小时、每周、30 天):已用百分比、重置时间,以及按当前速度何时会用完。速度是已用百分比除以周期开始至今的时间,因此在你不使用 Codex 时,预计用完时间会不断推后。“截至”时间是你最后一次 Codex 请求的时间:百分比数据的时效性仅到该时刻为止。
- **消耗来源:**当前周期排名前 5 的会话和项目(仅显示文件夹名称),以及 Codex 自动审查的汇总行。每次百分比上升,都会按各请求的 token 数占比,分摊给上次上升后发出的请求。如果百分比上升时这台电脑上没有任何请求记录,则会显示为
unattributed,因为限额会与其他设备和 Codex 云端共享。 - **是否缩减:**在每个已结束且用量至少达到 20% 的周期中,计算 1% 限额对应的 token 数,并仅在同一模型内进行比较(当某周期至少 90% 的 token 来自同一模型时,该周期才会计入)。同一天开始的周期还会显示其开始时间(
Jul 5 16:39)。当某周期对应的 token 数不超过至少两个更早周期中位数的一半时,会显示Possible limit cut。此提示始终带有“可能”,因为在其他设备上使用 Codex 会提高百分比,但不会在本地留下 token 记录。 - 选项:
--json;--since <window>(默认值为90d),指定每 1% 对应 token 数的历史记录回溯范围;--here仅将“消耗来源”列表限制为当前文件夹中的会话(限额适用于整个账户)。 - 当 Codex 记录了限额读数时,
sipcode today会额外显示一行,指出最接近耗尽的 Codex 限额。today --json不变。 - MCP:
get_codex_limits(可选参数since)会返回与sipcode limits --json相同的 JSON。 - Claude Code 的日志不会记录限额,因此
limits --agent claude-code会以错误 E009 终止。
更新后变差了吗?sipcode regress
sipcode regress 会检查你自己的 Claude Code 和 Codex 日志,查找随更新而来的回归问题,并指出引入每个问题的版本。它会将各个版本与其他版本进行比较,因此无需外部基准,且不会有任何数据离开你的设备。
输出示例(某台设备的日志;你的数据会有所不同):
sipcode regress · local only, no network
Claude Code: 27,671 interactive requests in 42 sessions (710 subagent and Agent SDK requests left out of the comparison), 2026-05-04 to 2026-10-12, versions 2.1.121 to 2.1.295
Known-regression windows your logs cover: R1, R4, R5
Codex: 930 requests in 15 sessions, 2026-03-28 to 2026-10-08, versions 0.118.0 to 0.162.0, 3 version/model groups with enough limit data
No regressions detected in your logs.
| 检查项 | 检查内容 | 能捕获的已确认回归问题 |
|---|---|---|
warm-cache-miss | 连续请求(间隔不足 5 分钟)重写了大部分上下文 | R2:--resume 提示词缓存未命中(2.1.69 到 2.1.89) |
post-idle-cold | 间隔一小时或更久后,后续请求的缓存仍处于冷状态 | R3:空闲一小时后思考历史记录被清除(2.1.85 到 2.1.100) |
ttl-5m | 主对话缓存使用 5 分钟 TTL 写入,而非 1 小时 | R4:1 小时缓存 TTL 降至 5 分钟(已在 2.1.129 修复) |
uncached-input | 工具结果之后的请求中出现大量未缓存输入 | R1:Fable 5.1 工具上下文未经缓存便重新发送(2.1.257 到 2.1.259) |
hourly-rebuild | 整个提示词缓存大约每小时重建一次 | R5:OAuth 刷新导致缓存每小时重建(已在 2.1.248 修复) |
codex-limit-burn | 某个 Codex 版本在相同套餐和时间窗口内,每个令牌消耗的限额高于你的其他版本 | 目录中暂无 |
- 目录之外的发现是值得报告的信号,并非存在错误的证明。Codex 的发现也可能是同期套餐限额变更所致,而且你其他设备或云端的 Codex 也共用同一限额。
- 子 Agent 和 Agent SDK 请求不纳入检查:它们的缓存策略本来就有所不同。
--bug-report会添加一段可粘贴到 GitHub 问题中的内容:仅包含令牌数量、版本、日期和简短会话 ID。发布前请先检查。--json供脚本使用;--agent claude-code或--agent codex用于指定单个工具;--min-n <n>用于设置检查所需的每个版本的最少请求数(默认值为 20)。- 如果无法读取日志(例如沙盒阻止访问相关文件夹),程序会打印“Nothing to analyse ... This is NOT a clean result.”并以代码 2 退出。数据不足时会提示“Not enough data to compare versions yet”。如果已比较一个工具,而另一个工具的日志已读取但数据不足,程序会指出该工具(“Not enough data to compare Codex versions yet”),因此没有发现该工具的问题并不代表结果正常。
- 一个独立的计数器不与 Sipcode 共用任何代码(
scripts/verify-counts.mjs),它会根据相同的日志重新计算覆盖率、每项检查的表格以及regress --json的发现结果。
在 Codex 中使用 Sipcode
Sipcode 插件可让你用日常语言向 Codex 查询自己的使用情况,支持在 ChatGPT 桌面应用或 Codex CLI 中使用。每个回答都来自你电脑上的 sipcode 命令,该命令会读取本地日志。
步骤 1. 安装一次 Sipcode(Node.js 20 或更高版本),在终端中运行:
npm i -g sipcode
插件会运行已安装的 sipcode。它不会使用 npx,因为 Codex 沙盒通常会阻止下载。
步骤 2. 添加插件。 根据你使用 Codex 的方式选择对应路径。
如果你只在 ChatGPT 桌面应用中使用 Codex(在终端中输入 codex 会提示无法识别):
-
打开终端(Windows 上使用 PowerShell,macOS 上使用 Terminal),运行以下两条命令:
npx -y @openai/codex plugin marketplace add Anuj7411/sipcode npx -y @openai/codex plugin add sipcode@sipcodenpx会运行 OpenAI 的 Codex CLI(npm 包@openai/codex),但不会安装它;首次运行时会下载该工具,可能需要一分钟。第一条命令会将此仓库添加为名为sipcode的插件市场,第二条命令会从该市场安装 Sipcode 插件。两条命令都会写入~/.codex,这是桌面应用读取插件的文件夹。 -
完全退出 ChatGPT 桌面应用,然后重新打开。
-
打开 Plugins,确认其中有 Sipcode(如果列表中没有显示,请选择
sipcode市场作为来源)。如果它未标记为已安装,请从此处安装。 -
开始新聊天。
OpenAI 的文档没有说明个人账户如何在桌面应用中通过按钮添加来自 GitHub 的市场,因此此路径需要使用一次 CLI 命令。你不必一直安装 CLI。
如果你已安装 Codex CLI(codex --version 可以正常运行):
- 运行
codex plugin marketplace add Anuj7411/sipcode。 - 运行
codex plugin add sipcode@sipcode,或者在 Codex 中打开/plugins,选择sipcode市场并安装 Sipcode。 - 开始新的 Codex 会话。如果你也使用桌面应用,请退出后重新打开。
步骤 3. 提问:
| 提问 | Sipcode 运行的命令 |
|---|---|
| “我这个月在 Codex 上花了多少钱?” | sipcode forecast --agent codex --json(也可以使用 today 和 stats) |
| “我离 Codex 限额还有多远?限额变少了吗?” | sipcode limits(其终端输出采用本地时间) |
| “为什么我上一次 Codex 会话花费这么高?” | sipcode why --agent codex --json |
| “更新后 Codex 或 Claude Code 是否变差了?” | sipcode regress --bug-report |
- 如果 Codex 沙盒阻止访问
~/.codex或~/.claude,插件会请求权限,以只读方式运行命令,而不是报告空结果。 - 美元金额按 API 价格计算;如果你使用 ChatGPT 套餐,则不会按 token 计费。
- 回答中的数字格式与
sipcode终端输出一致:美元精确到美分,百分比取整数,时间采用你的本地时区,不会显示原始 JSON 值。 - 该插件只有说明(四个技能):没有钩子、MCP 服务或网络调用。
- 请在新的短聊天中提问。Codex 会在每次请求时重新发送整个对话,因此在长工作聊天末尾提出相同问题,比在新聊天中提问消耗更多限额。每个回答都会运行一条 Sipcode 命令,不会先做额外检查。
- 如需稍后更新插件,请运行
npx -y @openai/codex plugin marketplace upgrade sipcode(或codex plugin marketplace upgrade sipcode),然后重启桌面应用并开始新聊天(聊天会保留开始时使用的技能说明)。使用npm i -g sipcode@latest更新sipcode命令本身。
如何安装(详细说明)
Sipcode 可在 Mac、Linux 和 Windows 上运行。你需要 Node.js 20 或更高版本;如需读取 Codex 压缩的会话日志(.jsonl.zst),则需要 Node.js 22.15 或更高版本。
第 1 步:安装 Node.js
如果你已经安装了 Node.js,请跳过此步骤。否则:
- Mac:
brew install node - Linux: 打开 nodejs.org/en/download,选择 LTS 版本、Linux 和 nvm,然后运行页面上显示的命令。(Ubuntu 和 Debian 自有软件源中的
nodejs软件包通常比 Node 20 旧。) - Windows: 从 nodejs.org 下载。
验证安装是否成功:
node --version
你应该会看到 v20.0.0 或更高版本。
第 2 步:全局安装 Sipcode
npm i -g sipcode
此操作会从 npm 下载 Sipcode,并让你可以在任何位置使用 sipcode 命令。
如果在 Mac 或 Linux 上遇到权限错误,请尝试:
sudo npm i -g sipcode
验证是否已安装:
sipcode --version
你应该会看到 1.7.2 或更高版本。
第 3 步:运行 sipcode init,将其接入 Claude Code
sipcode init
此命令会执行以下四项操作:
- 在当前项目中创建一个简短的
.sipcode/manifest.md文件,让 Claude 了解项目的内容 - 在你的
CLAUDE.md中添加一个简短的代码块(如果文件不存在,则创建该文件),其中包含让 Claude 回复简洁的规则 - 将 Sipcode 钩子安装到 Claude Code 中,真正节省 token 的就是这个钩子
- 记录日期,以便之后通过
sipcode impact查看前后节省情况
运行时你会看到一个清单。每完成一步,都会显示一个勾号。
它会询问的两个问题(以及应该如何选择):
1. 清单预算。 Sipcode 注入的项目摘要需要保持多精简。
- tighten(推荐):自动删减信号较弱的部分,让摘要保持精简,并且绝不会阻止你操作。
- strict:将清单严格限制在 2k token 以内,超出时会拒绝。
- off:不设上限,清单可以增长到任意大小。
2. 输出压缩规则。 Claude 在此项目中的回复需要多简洁。
- default(推荐):采用 diff 风格编辑,不加“这是我做的事情”之类的开场白。
- strict:使用电报式的精简回复,适合希望尽可能简洁的高级用户。
- verbose:提供更多背景信息和说明,适合仍在熟悉工具的用户。
- skip:完全不安装回复规则。
不确定怎么选?每项都选择推荐选项即可。之后可以更改任一选项:运行 sipcode rules --mode <default|strict|verbose> 设置回复风格,或重新运行 sipcode manifest 重新生成摘要。
第 4 步:打开新的 Claude Code 会话
Claude 下次调用工具时,Sipcode 会自动启用。大多数情况下无需重启。为确保万无一失,你可以关闭所有现有的 Claude Code 窗口,再打开一个新的窗口。
现在 Claude Code 将在后台使用 Sipcode。
第 5 步:工作约一小时后,检查效果
sipcode drift
sipcode proxy --stats
如果 drift 显示“no drift”,且 proxy --stats 显示有几十次重写并节省了用量,就说明一切正常。
更新 Sipcode
Sipcode 不会自行检查更新。那需要进行网络调用,而正常使用时零网络调用是代码库保证具备的特性(否则测试会导致构建失败)。更新始终需要手动明确执行。
要更新到最新版本:
npm i -g sipcode@latest
也可以使用内置助手:
sipcode update # prints your current version + the update command
sipcode update --run # runs the update in place for you
更新后,通过 sipcode --version 确认版本,并在 CHANGELOG 中查看更改。MCP 配置无需重新粘贴;Claude 每次重新连接时都会向服务请求可用工具,因此新工具会自动出现。
发布节奏: 修复或改进准备就绪后就会发布补丁版本,通常在问题报告后的一两天内发布。由于 Sipcode 无法通知你(零网络调用),建议养成每周左右运行一次 sipcode update 的习惯。这只需一秒钟检查;如果有新版本,--run 会立即升级。你也可以关注或为 repo 点星,及时了解版本发布。
你将获得什么
| 功能 | 对你的作用 |
|---|---|
| 上下文腐化检测 | 当你的 Claude Code 会话开始表现得比平时更差时发出警告 |
| 重复读取去重 | 检测并跳过重复的文件读取,节省令牌和时间 |
| 压缩完整性评分 | 每次节省后,告知你保留了原始信号的百分之几 |
| 支出遥测 | 按日、按月统计并预测支出。数据全部来自你自己的记录(Claude Code 和 Codex),不会上传到云端 |
| Codex 限额 | 告诉你何时会达到 Codex 限额、哪些操作消耗了限额,以及限额是否可能缩减 |
| 回归检查 | 检查 Claude Code 或 Codex 更新是否改变了缓存或限额行为,并标记对应版本 |
| Codex 插件 | 用日常语言向 Codex 询问支出、限额和回归问题 |
| 任务成本估算 | 在运行编码任务前,预测其在 Opus、Sonnet 和 Haiku 上的成本 |
| 代码库健康评分 | 按 AI Agent 在代码库中工作的难易程度为你的仓库打分,范围为 0 到 100 |
| MCP 服务 | 为 Claude Desktop 注册了 16 个工具,让你可以直接向 Claude 询问自己的使用情况 |
| 可复现基准测试 | 一个锁定的 20 项任务语料库,任何人都可以运行并验证 |
常见问题
真的免费吗?
是的。采用 MIT 许可证。不跟踪用户。不会向我们发送遥测数据。没有付费套餐。你可以在 GitHub 上查看每一行源代码。
它会把我的代码发送到别处吗?
不会。Sipcode 在正常使用期间不会进行任何网络调用。所有操作都在你的设备本地运行。我们有一项隐私测试,如果源代码中导入了任何网络代码,测试就会失败。
为了加快重复运行的速度,Sipcode 会在你自己的磁盘 ~/.sipcode/ 下保留少量缓存(today 和 forecast 的每个会话日志令牌计数,以及 drift 的每会话指标)。这些缓存不会保存消息文本,也不会上传;如果你删除了它们,系统会自动重建。PRIVACY.md 列出了具体存储的内容及其位置。
它与其他上下文工具有什么不同?
请参阅对比页面。简而言之:Sipcode 是唯一拥有已发布的可复现基准测试、通过架构设计杜绝错误去重,并支持会话中途安装的工具。
什么是“上下文腐化”?
当 Claude 的上下文窗口被过时、重复或偏题的信息填满时,它的回答质量就会下降。Sipcode 会通过 sipcode drift 衡量这种情况,并通过代理钩子去除大部分冗余内容。
它能与 Cursor 或其他 AI 工具配合使用吗?
代理、钩子和规则适用于 Claude Code。Sipcode 也会读取 OpenAI Codex 会话日志以进行支出分析(stats、today、forecast、trend、impact、why、receipt、drift);关于哪些功能可用以及 Codex 目前不支持哪些功能,请参阅 Codex。在 Codex 中,Sipcode 插件可以回答有关支出、限额和回归的问题(请参阅在 Codex 中使用 Sipcode)。对于 Cursor,sipcode rules --agent cursor 会将输出压缩规则写入 Cursor 的规则文件;Sipcode 不会读取 Cursor 的会话日志。
如何更新?
npm i -g sipcode@latest
也可以运行 sipcode update 查看当前版本和更新命令,或运行 sipcode update --run 原地更新。Sipcode 不会自动检查更新(不会进行任何网络调用),因此更新始终需要你明确操作。请参阅 CHANGELOG 了解变更内容。
如何卸载?
sipcode proxy --uninstall
npm uninstall -g sipcode
命令
| 命令 | 功能 |
|---|---|
sipcode init | 在项目中设置 Sipcode(清单 + CLAUDE.md + 代理钩子) |
sipcode update | 显示如何更新到最新版本(或使用 --run 立即更新) |
sipcode hygiene | 安装会话卫生功能:仅读取一次规则 + 上下文压力钩子 |
sipcode rules | 安装、切换或检查 CLAUDE.md 中的输出压缩规则 |
sipcode manifest | 生成或刷新项目清单 |
sipcode drift | 检查当前会话是否偏离你的常规情况(--session、--here、--agent) |
sipcode proxy --stats | 查看代理在本次会话中捕获的内容(也可使用 --install / --uninstall) |
sipcode benchmark | 运行锁定的 20 项任务语料,得出可验证的节省量 |
sipcode estimate | 运行任务前,预测该任务在不同模型上的成本 |
sipcode today | 今日支出摘要与 30 天中位数对比 |
sipcode stats | 所有会话累计节省的令牌数(--html 会为 Claude Code 写入 .sipcode/stats.html,为 Codex 写入 .sipcode/stats-codex.html) |
sipcode forecast | 根据过去 14 天的数据预测月底支出 |
sipcode limits | Codex 使用限额:按当前速度何时会耗尽、是什么用掉了额度,以及每 1% 使用量随时间消耗的令牌数 |
sipcode regress | Claude Code 或 Codex 是否在更新后变差?逐个版本与其他版本对比 |
sipcode trend | 随时间跟踪一项指标,查看它是否在改善 |
sipcode why | 按会话进行分析:令牌都耗在哪里了 |
sipcode impact | 对比使用 Sipcode 前后的支出 |
sipcode score | 审查代码仓库对 AI 的友好程度(0-100,分级徽章) |
sipcode receipt | 生成可分享的会话 PNG 收据 |
使用 --help 运行任意命令,可查看完整选项。
提示:这些命令会报告哪些会话? 默认情况下,why、stats、today、forecast、trend、impact、receipt 和 drift 会查看你所有项目中的数据,而不只是当前所在文件夹中的项目。因此,如果你在项目 A 中运行 sipcode why,但项目 B 最近有活动,你会看到项目 B 的数据。若要将范围限定为当前项目,请添加 --here(例如 sipcode why --here 或 sipcode today --here)。Codex 会话也是如此。使用 sipcode why --list 查看所有会话,并通过 --session <id> 选择特定会话。
要求
- Node.js 20 或更高版本。要读取 Codex 压缩的会话日志(
.jsonl.zst),需要 Node.js 22.15 或更高版本;较旧的 Node.js 会跳过这些日志,并在每份报告顶部显示警告。 - 已安装 Claude Code(用于代理钩子)。即使未安装 Claude Code,Sipcode 也可作为独立的命令行工具使用(benchmark、score 等)。
- 可选:OpenAI Codex CLI,用于 Codex 支出分析。
许可证
MIT。详见 LICENSE。
致谢
谨以此项目献给那些两小时就耗尽 Claude Max 方案额度的独立开发者。62.6% 基准测试的方法记录在 benchmark/METHODOLOGY.md 中。Anthropic 发布的上下文窗口质量研究为完整性评分方法提供了参考。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。