/honey-ccr
Compress-Cache-Retrieve for huge, repetitive array tool output (logs, scan results, time series, event streams) before it enters context. Keeps an informative sample — endpoints, anomalies/change-points, head/tail — drops the redundant rest to a local cache, and leaves a
Claude Code
$ npx -y skills add Green-PT/honey-for-devs --skill honey-ccr --agent claude-code
Codex
$ npx skills add Green-PT/honey-for-devs --skill honey-ccr -a codex -y
Cursor
$ npx skills add Green-PT/honey-for-devs --skill honey-ccr -a cursor -y
Gemini CLI
$ npx skills add Green-PT/honey-for-devs --skill honey-ccr -a gemini-cli -y
GitHub Copilot
$ npx skills add Green-PT/honey-for-devs --skill honey-ccr -a github-copilot -y
OpenCode
$ npx skills add Green-PT/honey-for-devs --skill honey-ccr -a opencode -y
Windsurf
$ npx skills add Green-PT/honey-for-devs --skill honey-ccr -a windsurf -y
SKILL.md
honey-ccr.SKILL.mdname: honey-ccr
description: >-
Compress-Cache-Retrieve for huge, repetitive array tool output (logs, scan
results, time series, event streams) before it enters context. Keeps an
informative sample — endpoints, anomalies/change-points, head/tail — drops the
redundant rest to a local cache, and leaves a retrievable hash. Use when a
tool returns a long uniform JSON array you must read but mostly skim, and the
full set is one command away if needed. Lossy-but-recoverable.
license: MIT
Honey CCR
The cheapest token is the one not sent. A 500-row log read for one error line costs 500 rows of context. CCR keeps the rows that carry signal and caches the rest — recoverable by hash, so nothing is lost.
Borrowed from headroom's SmartCrusher. **Lossy by design** — only for data you skim, never for payloads where every row matters (e.g. a code-review handoff where the implementer needs all findings; use `eson encode` losslessly there).
When to use
- A tool returns a **uniform JSON array** of many records (≥ ~5 items, redundant).
- You need to read it but mostly skim — logs, search hits, metrics, events.
- The full data stays reachable, so dropping the boring middle is safe.
Don't use
- Small arrays (passes through untouched anyway) or non-array data.
- Any array where every element is load-bearing — encode it, don't crush it.
How
tool-that-spews-json | eson crush # → sampled view + sentinel; originals cached
eson retrieve <hash> # → the full original array, verbatim
`crush` prints the kept sample plus a sentinel `{"_ccr":"<<ccr:HASH N_rows_offloaded>>"}`. When you need a dropped row, read the hash from the sentinel and run `eson retrieve <hash>`.
- Cache dir: `.honey-ccr/` (override with `HONEY_CCR_DIR`).
- Below the size gate, `crush` returns the array unchanged with no sentinel — safe to pipe anything.
Always-on hook (entry-time GC)
While Honey is active, a registered PostToolUse hook applies this automatically to Bash output — no opt-in per call. Big uniform JSON arrays (≥20 items, ≥2k chars) are crushed; repetitive text (≥25 lines) gets consecutive repeats collapsed to `⟨×N⟩`. The original is always stashed first, and the rewritten result ends with the exact `eson retrieve <hash>` command that restores it. `/honey off` disables the hook; history already in context is immutable — this fires at entry, the only place a hook can act.
Caveat: the hook needs Claude Code 2.1.121+; older builds can't rewrite Bash output (a session-start warning tells you). Manual `some-tool | eson crush` piping works on any version — prefer it there.
Read more
name: honey-ccr description: >- Compress-Cache-Retrieve for huge, repetitive array tool output (logs, scan results, time series, event streams) before it enters context. Keeps an informative sample — endpoints, anomalies/change-points, head/tail — drops the redundant rest to a local cache, and leaves a retrievable hash. Use when a tool returns a long uniform JSON array you must read but mostly skim, and the full set is one command away if needed. Lossy-but-recoverable. license: MIT
Honey CCR
The cheapest token is the one not sent. A 500-row log read for one error line costs 500 rows of context. CCR keeps the rows that carry signal and caches the rest — recoverable by hash, so nothing is lost.
Borrowed from headroom's SmartCrusher. **Lossy by design** — only for data you skim, never for payloads where every row matters (e.g. a code-review handoff where the implementer needs all findings; use `eson encode` losslessly there).
When to use
- A tool returns a **uniform JSON array** of many records (≥ ~5 items, redundant).
- You need to read it but mostly skim — logs, search hits, metrics, events.
- The full data stays reachable, so dropping the boring middle is safe.
Don't use
- Small arrays (passes through untouched anyway) or non-array data.
- Any array where every element is load-bearing — encode it, don't crush it.
How
tool-that-spews-json | eson crush # → sampled view + sentinel; originals cached eson retrieve <hash> # → the full original array, verbatim
`crush` prints the kept sample plus a sentinel `{"_ccr":"<<ccr:HASH N_rows_offloaded>>"}`. When you need a dropped row, read the hash from the sentinel and run `eson retrieve <hash>`.
- Cache dir: `.honey-ccr/` (override with `HONEY_CCR_DIR`).
- Below the size gate, `crush` returns the array unchanged with no sentinel — safe to pipe anything.
Always-on hook (entry-time GC)
While Honey is active, a registered PostToolUse hook applies this automatically to Bash output — no opt-in per call. Big uniform JSON arrays (≥20 items, ≥2k chars) are crushed; repetitive text (≥25 lines) gets consecutive repeats collapsed to `⟨×N⟩`. The original is always stashed first, and the rewritten result ends with the exact `eson retrieve <hash>` command that restores it. `/honey off` disables the hook; history already in context is immutable — this fires at entry, the only place a hook can act.
Caveat: the hook needs Claude Code 2.1.121+; older builds can't rewrite Bash output (a session-start warning tells you). Manual `some-tool | eson crush` piping works on any version — prefer it there.
Write less code and say less about it. Honey (I Shrunk the AI) by GreenPT is a cross-tool coding skill that cuts the output tokens AI coding agents spend — making them emit less code and less prose without losing correctness.
Other skills on honey.
More skills from other plugins.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
ask-matt
Ask which skill or flow fits your situation. A router over the skills in this repo.
Questions about honey-ccr.
- Which coding agents can use honey-ccr?
- honey-ccr installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

