How it compares
Token waste comes in three kinds. Most tools address one. This page defines each kind and gives a feature-by-feature comparison against the tools most often weighed against Token Optimizer.
Three kinds of token waste
Section titled “Three kinds of token waste”Structural waste is what gets billed before any conversation starts: an oversized CLAUDE.md, unused skills, duplicate system reminders, a stale MEMORY.md with entries past the attention horizon, dead MCP servers. It is often the largest share in high-waste setups, and it compounds, because a leaner prefix means a smaller cache-read bill on every turn that follows.
Runtime waste accumulates mid-session: verbose command output, oversized MCP results, and files re-read into context that were already there. Proxy compressors intercept these on the way in and shrink or evict them.
Behavioral waste is the pattern layer that no single session reveals: letting the cache expire, compacting too late, looping on a failing approach, running a top-tier model where a cheaper one would do, switching models mid-session and killing the cache. Token Coach analyzes 30 days of session history to surface these patterns and distinguishes a model-switch cache drop (expected) from a config-change cache drop (fixable).
For how Token Optimizer audits and scores each kind, see How it works.
Compression coverage
Section titled “Compression coverage”Headroom, RTK, and JFrog Boost all compress bash and command output. Its share of context use depends on the workload. The table below shows the full output stack and what each tool reaches. Status: 🟢 supported, 🟡 partial, 🔴 not supported.
| Compression surface | Token Optimizer | Headroom | RTK | Boost |
|---|---|---|---|---|
| Bash / command output (git, test runners, lint, build, listings, logs) | 🟢 113 commands across 25 pattern families, credential-safe, user-extensible via TOML; 564 → 115 tokens on a pytest run | 🟢 SmartCrusher, CodeCompressor, Kompress-v2, image compression | 🟢 100+ command filters | 🟢 Command-aware filters, user-extensible via TOML |
| Search / grep output | 🟢 Web, grep, and search results condensed to top hits plus a count; 500 lines → 20 | 🔴 | 🔴 | — |
| Tabular and JSON output (jq, yq, csvtool, mlr, CSV, YAML, TOML) | 🟢 Value-preserving columnar compression | 🟢 SmartCrusher | 🔴 | — |
| File re-reads, delta mode (changed files read again this session) | 🟢 Serves only the unified diff; 2,000-token re-read → ~50 tokens | 🔴 | 🔴 | — |
| File re-reads, structure map (large code files read repeatedly) | 🟢 Re-read substitution uses bounded skeletons; first-read retarget keeps the opened file full and maps related files. Extra grammars require tree-sitter opt-in | 🔴 | 🔴 | — |
| Large tool results (Bash/Read/Grep/MCP output over 4K chars) | 🟢 Credential-redacted recovery copy; eligible MCP output replaced by preview/pointer. Agent results stay inline; archives cap at 5MB. expand --search finds stored results | 🔴 | 🔴 | — |
| Model output verbosity (lean-output nudge at high context fill) | 🟢 Cache-safe tiered steering; zero savings at firing, later output comparison when available | 🔴 | 🔴 | 🔴 |
| Structural context (configs, skills, MCP, MEMORY.md, before the session starts) | 🟢 Per-component audit: unused skills, dead MCP, stale memory, each scored | 🔴 | 🔴 | 🔴 |
RTK and Boost reach the first surface. Headroom reaches the first and the third. Token Optimizer covers all eight, and that is before the behavioral and compaction savings the others do not attempt.
Full feature comparison
Section titled “Full feature comparison”The table covers the six tools most often compared to Token Optimizer. Status: 🟢 supported, 🟡 partial, 🔴 not supported.
| Feature | Token Optimizer | Headroom | RTK | Boost | context-mode | /context |
|---|---|---|---|---|---|---|
| Tool output compression | 🟢 113 commands across 25 pattern families, credential-safe, toggleable, user-extensible via TOML | 🟢 SmartCrusher, CodeCompressor, Kompress-v2, image compression | 🟢 100+ command filters | 🟢 Command-aware filters | 🟢 Sandbox + summary | 🔴 |
| No command rewriting required | 🟢 Hook-wired on Bash, Read, Agent, and MCP; fires automatically | 🟢 Transparent proxy | 🟢 Hook-based rewrite | 🟢 boost init wires supported agents; terminal use can be prefixed | 🟡 Automatic on hook-capable platforms | N/A Native command |
| Full original recoverable after compression | 🟡 Capped credential-redacted archive retrievable while retained; no universal byte-exact recovery | 🟢 Reversible retrieval | 🟡 Full output saved on command failure | 🟢 Vendor documents command-output recovery | — | N/A Does not compress |
| Register a custom command filter | 🟢 Custom TOML filters (command-filters.toml, additive + exclude, compose with the 111 built-ins, safety-gated, fail-open) | — | 🟢 Custom TOML filters | 🟢 TOML filters for your own CLIs | — | N/A |
| User-tunable configuration | 🟢 Supported controls with adapter-specific defaults; archive exemptions and .contextignore; internal markers are not user settings | 🟢 Documented configuration | 🟢 config.toml and environment controls | 🟢 Filter TOML | 🟢 Documented configuration | N/A |
| Re-read file skeletons | 🟢 Repeat reads use bounded maps; first-read retarget keeps the target full and maps related files. Reference graph and PageRank; tree-sitter opt-in adds grammars | 🔴 | 🔴 | — | 🔴 | 🔴 |
| Tabular/JSON compression | 🟢 Value-preserving columnar | 🟢 SmartCrusher | 🔴 | — | 🟡 Generic summary | 🔴 |
| Read dedup and delta diffs | 🟢 Re-reads serve diff only | 🔴 | 🔴 | — | 🔴 | 🔴 |
| Session continuity | 🟢 Progressive checkpoints before compaction + restore after, cross-session hints, cold-resume, tool-output digest; measured ~3.9M tokens / ~$19 recovered in a 30-day snapshot (checkpoint restores + lean resumes) | 🔴 | 🔴 | — | 🟡 Session guide only | 🔴 |
| Model routing and behavioral coaching | 🟢 12 detectors, subagent cost breakdown, anti-patterns | 🔴 | 🔴 | — | 🔴 | 🟡 Basic suggestions |
| Per-task model and effort advice | 🟢 route recommends the tier and effort a task needs, before you spend | — | — | — | — | — |
| Historical trend analysis | 🟢 30-day trends, quality/cost/cache/duration correlation, model-switch detection | 🔴 | 🔴 | — | 🔴 | 🔴 |
| Loop and spin detection | 🟢 Warns on repetition/failures; does not guarantee termination | 🔴 | 🔴 | — | 🔴 | 🔴 |
| Context quality scoring | 🟢 7-signal quality score with grades | 🔴 | 🔴 | — | 🔴 | 🟡 Capacity % only |
| Structural waste audit | 🟢 Per-component (CLAUDE.md, skills, MCP, memory) | 🔴 | 🔴 | 🔴 | 🔴 | 🟡 Summary only |
| CLAUDE.md and MEMORY.md health | 🟢 8 auditors + attention-curve scoring | 🔴 | 🔴 | 🔴 | 🔴 | 🔴 |
| Measures if compression helped | 🟢 Local telemetry, before/after tokens, dollar savings | 🔴 | 🟡 rtk gain (token counts only) | 🟡 boost report, vendor-side | 🔴 | 🔴 |
| End-to-end agent task-outcome benchmark | 🟢 Published Terminal-Bench 2 and controlled A/B results; see benchmark pages for cohorts and limitations, not a universal savings guarantee | — | — | 🟢 Vendor reports Terminal-Bench 2.0 with the same pass rate and ~12% lower cost | — | N/A |
| Fleet-level cross-agent analysis | 🟢 | 🔴 | 🔴 | — | 🔴 | 🔴 |
| Cache-safe | 🟢 Never modifies existing context prefix | 🟡 Proxy mode rewrites in-flight | 🟢 Pre-shell only | 🟢 Pre-shell only | 🟡 MCP overhead | 🟢 |
| Zero baseline context overhead | 🟢 No mandatory always-on instruction block; event warnings/restores can inject context | 🔴 Injects instructions | 🟢 Shell-level only | 🟢 Shell-level only | 🔴 MCP server overhead | 🟢 Native |
| Zero runtime dependencies | 🟢 Pure stdlib (Python/TypeScript) | 🟡 Python + Rust + optional model | 🟢 Single Rust binary | 🟢 Single binary | 🟡 SQLite adapter required | 🟢 N/A |
| Zero telemetry | 🟢 No core analytics upload; optional Cowork collector/host refresh has separate network use | 🟡 Anonymous aggregate telemetry, opt-in via HEADROOM_TELEMETRY, off by default | 🟡 Opt-in | 🔴 Beta Agreement §6 covers commands invoked, command arguments, exit codes, duration, CI attributes, IP | 🟡 Varies | 🟢 |
| Signed and checksum-verified install | 🟢 CHECKSUMS.sha256 on every release, verified at install; CI fails a release that cannot be installed | — | — | 🔴 install.sh verifies neither a checksum nor a signature on either download path | — | N/A |
| Multi-platform | 🟢 Claude Code, VS Code, Codex, OpenClaw, OpenCode; beta Hermes/Copilot/Cursor/Antigravity/Grok and experimental Pi/Cowork | 🟢 Claude Code, Cursor, Codex, Aider, Copilot | 🟢 15 integrations | 🟡 Cursor, Claude Code, Copilot, Codex CLI | 🟢 17 integrations | 🔴 Claude Code only |
What /context shows versus what Token Optimizer does
Section titled “What /context shows versus what Token Optimizer does”/context reports that your context is 73% full. Token Optimizer reports which 12K tokens are spent on skills you never use, flags orphaned MEMORY.md topic files past the attention horizon, checkpoints decisions before compaction destroys them, and gives a quality score that tracks how much the session degrades as context fills. The built-in command shows the problem; Token Optimizer fixes it and measures the result.
