关于 honey-ccr
honey-ccr 是一项技能,用于检查冗余 JSON 数组和重复的 Bash 输出时减少上下文占用。它保留样本并缓存原始内容,便于之后取回。
主要功能
- 01抽样精简大型同质 JSON 数组
- 02缓存原文并按哈希取回
- 03折叠连续重复的文本行
- 04通过钩子自动处理 Bash 输出
适用场景
- 01浏览日志、搜索结果、指标或事件
- 02减少 Claude Code 中重复的 Bash 输出
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ green-pt/ honey-for-devs --skill honey-ccr安装后在 Claude Code 中输入/honey-ccr确认已加载。
详细介绍
Honey CCR
最便宜的 token,就是不发送的 token。读取 500 行日志,只为查找一行错误, 就要消耗 500 行上下文。CCR 保留有用信息所在的行,并缓存其余内容——可通过哈希恢复,因此不会丢失任何内容。
借鉴自 headroom 的 SmartCrusher。有意采用有损处理——仅适用于快速浏览的数据,绝不适用于每一行都至关重要的负载(例如,交接代码审查结果时,实现者需要查看所有发现;这种情况请使用 eson encode 进行无损编码)。
适用场景
- 工具返回包含许多记录(≥ ~5 项)且内容冗余的统一 JSON 数组。
- 你需要读取数据,但大多只需快速浏览——例如日志、搜索结果、指标和事件。
- 完整数据仍可访问,因此丢弃中间无关内容是安全的。
不适用场景
- 小型数组(会原样传递,不作处理)或非数组数据。
- 每个元素都至关重要的数组——应对其编码,而非压缩。
用法
tool-that-spews-json | eson crush # → sampled view + sentinel; originals cached
eson retrieve <hash> # → the full original array, verbatim
crush 会输出保留的样本以及一个哨兵值
{"_ccr":"<<ccr:HASH N_rows_offloaded>>"}。需要被丢弃的行时,从哨兵值中读取
哈希,然后运行 eson retrieve <hash>。
- 缓存目录:
.honey-ccr/(可通过HONEY_CCR_DIR覆盖)。 - 低于大小阈值时,
crush会原样返回数组,不添加哨兵值——可安全地通过管道传递任何内容。
始终启用的钩子(进入时 GC)
Honey 处于启用状态时,已注册的 PostToolUse 钩子会自动处理 Bash 输出——
无需针对每次调用单独选择启用。大型统一 JSON 数组(≥20 项、≥2k 字符)会被压缩;重复文本(≥25 行)中的连续重复内容会合并为 ⟨×N⟩。
原始内容始终会先存入缓存,改写后的结果末尾会附上可用于恢复原始内容的确切命令
eson retrieve <hash>。/honey off 会禁用此钩子;
已进入上下文的历史记录不可更改——钩子在入口处触发,这是它唯一能够发挥作用的时机。
注意:此钩子需要 Claude Code 2.1.121+;较旧版本无法改写 Bash 输出
(会话启动时会显示警告)。手动使用 some-tool | eson crush 管道在任何版本上都可用——在旧版本中请优先使用这种方式。