Headroom — Context Compression Layer
SkillSearchSmartCrusher + CCR context compression — crunch large JSON arrays, tool outputs, and search results to save tokens. Use when context is bloated or approaching token limits.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Headroom — Context Compression Layer skill
What this skill tells your AI
The instructions your AI receives, as published by momori777/artemis in skills/headroom/SKILL.md and read by ahel’s review.
SmartCrusher + CCR (Compress-Cache-Retrieve) for token-saving context compression. Portable Python module — no external dependencies beyond stdlib.
When to Use
- Large tool output (grep results, JSON arrays, file listings) approaching context limit
- Before sending a long context to a model with token cap
- Need to preserve essential items while dropping noise
Quick Start
from skills.headroom import SmartCrusher, CCRStore
# Compress a JSON array (keep most important items)
crusher = SmartCrusher()
result = crusher.crush(large_json, query="relevant keywords")
# result.compressed → compressed JSON string
# result.items_kept / items_total → retention ratio
# result.compression_ratio → e.g. 0.3 means 70% tokens saved
SmartCrusher — 5-Dimensional Scoring
Keeps items by:
- First/Last items — pagination context + latest data (30% head + 15% tail)
- Error items — 100% preserved
- Statistical outliers — > 2 std from mean
- Query-relevant — BM25 match against user query
- Change points — significant transitions in data
Config overrides:
crusher = SmartCrusher(config={
"max_items_after_crush": 15,
"first_fraction": 0.3,
"variance_threshold": 2.0,
})
CCR Store — Compress-Cache-Retrieve
store = CCRStore(max_entries=1000, ttl_seconds=3600)
# Cache original when crushing
store.put(hash_key, original_text)
# Retrieve if LLM needs more detail
full_text = store.get(hash_key)
Token Estimation
from skills.headroom import estimate_tokens
tokens = estimate_tokens("some text — CJK-aware counting")
Integration Notes
- This module is already imported by
skills/shared/context_trimming.py(SmartCrusher layer) - CCR background worker in
skills/sakura/app/agent/memory_curator.pywrites to Qdrant - For roleplay context trimming: the context_trimming module wraps SmartCrusher with 24msg/40K char cap
Signals
- GitHub stars
- 324
- Forks
- 19
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
headroom- Source
- github.com/momori777/artemis