<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Reversible Compression on Producthunt daily</title>
        <link>https://producthunt.programnotes.cn/en/tags/reversible-compression/</link>
        <description>Recent content in Reversible Compression on Producthunt daily</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Wed, 03 Jun 2026 20:07:16 +0800</lastBuildDate><atom:link href="https://producthunt.programnotes.cn/en/tags/reversible-compression/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>headroom</title>
        <link>https://producthunt.programnotes.cn/en/p/headroom/</link>
        <pubDate>Wed, 03 Jun 2026 20:07:16 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/headroom/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1612440385022-734b8dfd34a0?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3ODA0ODgzODN8&amp;ixlib=rb-4.1.0" alt="Featured image of post headroom" /&gt;&lt;h1 id=&#34;chopratejasheadroom&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/chopratejas/headroom&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;chopratejas/headroom&lt;/a&gt;
&lt;/h1&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ██╗  ██╗███████╗ █████╗ ██████╗ ██████╗  ██████╗  ██████╗ ███╗   ███╗
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ██║  ██║██╔════╝██╔══██╗██╔══██╗██╔══██╗██╔═══██╗██╔═══██╗████╗ ████║
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ███████║█████╗  ███████║██║  ██║██████╔╝██║   ██║██║   ██║██╔████╔██║
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ██╔══██║██╔══╝  ██╔══██║██║  ██║██╔══██╗██║   ██║██║   ██║██║╚██╔╝██║
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ██║  ██║███████╗██║  ██║██████╔╝██║  ██║╚██████╔╝╚██████╔╝██║ ╚═╝ ██║
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝╚═════╝ ╚═╝  ╚═╝ ╚═════╝  ╚═════╝ ╚═╝     ╚═╝
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                  The context compression layer for AI agents
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p align=&#34;center&#34;&gt;&lt;strong&gt;60–95% fewer tokens · library · proxy · MCP · 6 algorithms · local-first · reversible&lt;/strong&gt;&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
  &lt;a href=&#34;https://github.com/chopratejas/headroom/actions/workflows/ci.yml&#34;&gt;&lt;img src=&#34;https://github.com/chopratejas/headroom/actions/workflows/ci.yml/badge.svg&#34; alt=&#34;CI&#34;&gt;&lt;/a&gt;
  &lt;a href=&#34;https://app.codecov.io/gh/chopratejas/headroom&#34;&gt;&lt;img src=&#34;https://codecov.io/gh/chopratejas/headroom/graph/badge.svg&#34; alt=&#34;codecov&#34;&gt;&lt;/a&gt;
  &lt;a href=&#34;https://pypi.org/project/headroom-ai/&#34;&gt;&lt;img src=&#34;https://img.shields.io/pypi/v/headroom-ai.svg&#34; alt=&#34;PyPI&#34;&gt;&lt;/a&gt;
  &lt;a href=&#34;https://www.npmjs.com/package/headroom-ai&#34;&gt;&lt;img src=&#34;https://img.shields.io/npm/v/headroom-ai.svg&#34; alt=&#34;npm&#34;&gt;&lt;/a&gt;
  &lt;a href=&#34;https://huggingface.co/chopratejas/kompress-base&#34;&gt;&lt;img src=&#34;https://img.shields.io/badge/model-Kompress--base-yellow.svg&#34; alt=&#34;Model: Kompress-base&#34;&gt;&lt;/a&gt;
  &lt;a href=&#34;LICENSE&#34;&gt;&lt;img src=&#34;https://img.shields.io/badge/license-Apache%202.0-blue.svg&#34; alt=&#34;License: Apache 2.0&#34;&gt;&lt;/a&gt;
  &lt;a href=&#34;https://headroom-docs.vercel.app/docs&#34;&gt;&lt;img src=&#34;https://img.shields.io/badge/docs-online-blue.svg&#34; alt=&#34;Docs&#34;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
  &lt;a href=&#34;https://headroom-docs.vercel.app/docs&#34;&gt;Docs&lt;/a&gt; ·
  &lt;a href=&#34;#get-started-60-seconds&#34;&gt;Install&lt;/a&gt; ·
  &lt;a href=&#34;#proof&#34;&gt;Proof&lt;/a&gt; ·
  &lt;a href=&#34;#agent-compatibility-matrix&#34;&gt;Agents&lt;/a&gt; ·
  &lt;a href=&#34;https://discord.gg/yRmaUNpsPJ&#34;&gt;Discord&lt;/a&gt; ·
  &lt;a href=&#34;llms.txt&#34;&gt;llms.txt&lt;/a&gt;
&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;&lt;sub&gt;
  &lt;b&gt;AI agents / LLMs:&lt;/b&gt; read &lt;a href=&#34;llms.txt&#34;&gt;&lt;code&gt;/llms.txt&lt;/code&gt;&lt;/a&gt; here, or fetch &lt;a href=&#34;https://headroom-docs.vercel.app/llms.txt&#34;&gt;the live index&lt;/a&gt; / &lt;a href=&#34;https://headroom-docs.vercel.app/llms-full.txt&#34;&gt;full docs blob&lt;/a&gt;.
&lt;/sub&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href=&#34;https://trendshift.io/repositories/20881&#34; target=&#34;_blank&#34;&gt;&lt;img src=&#34;https://trendshift.io/api/badge/repositories/20881&#34; alt=&#34;chopratejas%2Fheadroom | Trendshift&#34; style=&#34;width: 250px; height: 55px;&#34; width=&#34;250&#34; height=&#34;55&#34;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Headroom compresses everything your AI agent reads — tool outputs, logs, RAG chunks, files, and conversation history — before it reaches the LLM. Same answers, fraction of the tokens.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p align=&#34;center&#34;&gt;
  &lt;img src=&#34;HeadroomDemo-Fast.gif&#34; alt=&#34;Headroom in action&#34; width=&#34;820&#34;&gt;
  &lt;br/&gt;&lt;sub&gt;Live: 10,144 → 1,260 tokens — same FATAL found.&lt;/sub&gt;
&lt;/p&gt;
&lt;h2 id=&#34;what-it-does&#34;&gt;What it does
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Library&lt;/strong&gt; — &lt;code&gt;compress(messages)&lt;/code&gt; in Python or TypeScript, inline in any app&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Proxy&lt;/strong&gt; — &lt;code&gt;headroom proxy --port 8787&lt;/code&gt;, zero code changes, any language&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Agent wrap&lt;/strong&gt; — &lt;code&gt;headroom wrap claude|codex|cursor|aider|copilot&lt;/code&gt; in one command&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MCP server&lt;/strong&gt; — &lt;code&gt;headroom_compress&lt;/code&gt;, &lt;code&gt;headroom_retrieve&lt;/code&gt;, &lt;code&gt;headroom_stats&lt;/code&gt; for any MCP client&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cross-agent memory&lt;/strong&gt; — shared store across Claude, Codex, Gemini, auto-dedup&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;headroom learn&lt;/code&gt;&lt;/strong&gt; — mines failed sessions, writes corrections to &lt;code&gt;CLAUDE.md&lt;/code&gt; / &lt;code&gt;AGENTS.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reversible (CCR)&lt;/strong&gt; — originals never deleted; LLM retrieves on demand&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;how-it-works-30-seconds&#34;&gt;How it works (30 seconds)
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;n&#34;&gt;Your&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;agent&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;app&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Claude&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Code&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Cursor&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Codex&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;LangChain&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Agno&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Strands&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;your&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;own&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;code&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;err&#34;&gt;│&lt;/span&gt;   &lt;span class=&#34;n&#34;&gt;prompts&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;·&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;tool&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;outputs&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;·&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;logs&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;·&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;RAG&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;results&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;·&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;files&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;err&#34;&gt;▼&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;err&#34;&gt;┌────────────────────────────────────────────────────┐&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;err&#34;&gt;│&lt;/span&gt;  &lt;span class=&#34;n&#34;&gt;Headroom&lt;/span&gt;   &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;runs&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;locally&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;—&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;your&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;stays&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;here&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;  &lt;span class=&#34;err&#34;&gt;│&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;err&#34;&gt;│&lt;/span&gt;  &lt;span class=&#34;err&#34;&gt;────────────────────────────────────────────────&lt;/span&gt;  &lt;span class=&#34;err&#34;&gt;│&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;err&#34;&gt;│&lt;/span&gt;  &lt;span class=&#34;n&#34;&gt;CacheAligner&lt;/span&gt;  &lt;span class=&#34;err&#34;&gt;→&lt;/span&gt;  &lt;span class=&#34;n&#34;&gt;ContentRouter&lt;/span&gt;  &lt;span class=&#34;err&#34;&gt;→&lt;/span&gt;  &lt;span class=&#34;n&#34;&gt;CCR&lt;/span&gt;            &lt;span class=&#34;err&#34;&gt;│&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;err&#34;&gt;│&lt;/span&gt;                    &lt;span class=&#34;err&#34;&gt;├─&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;SmartCrusher&lt;/span&gt;   &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;JSON&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;        &lt;span class=&#34;err&#34;&gt;│&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;err&#34;&gt;│&lt;/span&gt;                    &lt;span class=&#34;err&#34;&gt;├─&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;CodeCompressor&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;AST&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;         &lt;span class=&#34;err&#34;&gt;│&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;err&#34;&gt;│&lt;/span&gt;                    &lt;span class=&#34;err&#34;&gt;└─&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Kompress&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;base&lt;/span&gt;  &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;HF&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;    &lt;span class=&#34;err&#34;&gt;│&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;err&#34;&gt;│&lt;/span&gt;                                                    &lt;span class=&#34;err&#34;&gt;│&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;err&#34;&gt;│&lt;/span&gt;  &lt;span class=&#34;n&#34;&gt;Cross&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;agent&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;memory&lt;/span&gt;  &lt;span class=&#34;err&#34;&gt;·&lt;/span&gt;  &lt;span class=&#34;n&#34;&gt;headroom&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;learn&lt;/span&gt;  &lt;span class=&#34;err&#34;&gt;·&lt;/span&gt;  &lt;span class=&#34;n&#34;&gt;MCP&lt;/span&gt;     &lt;span class=&#34;err&#34;&gt;│&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;err&#34;&gt;└────────────────────────────────────────────────────┘&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;err&#34;&gt;│&lt;/span&gt;   &lt;span class=&#34;n&#34;&gt;compressed&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;prompt&lt;/span&gt;  &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt;  &lt;span class=&#34;n&#34;&gt;retrieval&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;tool&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;err&#34;&gt;▼&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;n&#34;&gt;LLM&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;provider&lt;/span&gt;  &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Anthropic&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;·&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;OpenAI&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;·&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Bedrock&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;·&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ContentRouter&lt;/strong&gt; — detects content type, selects the right compressor&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SmartCrusher / CodeCompressor / Kompress-base&lt;/strong&gt; — compress JSON, AST, or prose&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CacheAligner&lt;/strong&gt; — stabilizes prefixes so provider KV caches actually hit&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CCR&lt;/strong&gt; — stores originals locally; LLM calls &lt;code&gt;headroom_retrieve&lt;/code&gt; if it needs them&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;→ &lt;a class=&#34;link&#34; href=&#34;https://headroom-docs.vercel.app/docs/architecture&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Architecture&lt;/a&gt; · &lt;a class=&#34;link&#34; href=&#34;https://headroom-docs.vercel.app/docs/ccr&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;CCR reversible compression&lt;/a&gt; · &lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/chopratejas/kompress-base&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Kompress-base model card&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;get-started-60-seconds&#34;&gt;Get started (60 seconds)
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 1 — Install&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s2&#34;&gt;&amp;#34;headroom-ai[all]&amp;#34;&lt;/span&gt;          &lt;span class=&#34;c1&#34;&gt;# Python&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install headroom-ai                 &lt;span class=&#34;c1&#34;&gt;# Node / TypeScript&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 2 — Pick your mode&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;headroom wrap claude                    &lt;span class=&#34;c1&#34;&gt;# wrap a coding agent&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;headroom proxy --port &lt;span class=&#34;m&#34;&gt;8787&lt;/span&gt;              &lt;span class=&#34;c1&#34;&gt;# drop-in proxy, zero code changes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# or: from headroom import compress      # inline library&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 3 — See the savings&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;headroom stats
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Granular extras: &lt;code&gt;[proxy]&lt;/code&gt;, &lt;code&gt;[mcp]&lt;/code&gt;, &lt;code&gt;[ml]&lt;/code&gt;, &lt;code&gt;[agno]&lt;/code&gt;, &lt;code&gt;[langchain]&lt;/code&gt;, &lt;code&gt;[evals]&lt;/code&gt;. Requires &lt;strong&gt;Python 3.10+&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;proof&#34;&gt;Proof
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Savings on real agent workloads:&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Workload&lt;/th&gt;
					&lt;th style=&#34;text-align: right&#34;&gt;Before&lt;/th&gt;
					&lt;th style=&#34;text-align: right&#34;&gt;After&lt;/th&gt;
					&lt;th style=&#34;text-align: right&#34;&gt;Savings&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Code search (100 results)&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;17,765&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;1,408&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;92%&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;SRE incident debugging&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;65,694&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;5,118&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;92%&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;GitHub issue triage&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;54,174&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;14,761&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;73%&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Codebase exploration&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;78,502&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;41,254&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;47%&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Accuracy preserved on standard benchmarks:&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Benchmark&lt;/th&gt;
					&lt;th&gt;Category&lt;/th&gt;
					&lt;th style=&#34;text-align: right&#34;&gt;N&lt;/th&gt;
					&lt;th style=&#34;text-align: right&#34;&gt;Baseline&lt;/th&gt;
					&lt;th style=&#34;text-align: right&#34;&gt;Headroom&lt;/th&gt;
					&lt;th&gt;Delta&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;GSM8K&lt;/td&gt;
					&lt;td&gt;Math&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;100&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;0.870&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;0.870&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;±0.000&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;TruthfulQA&lt;/td&gt;
					&lt;td&gt;Factual&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;100&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;0.530&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;0.560&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;+0.030&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;SQuAD v2&lt;/td&gt;
					&lt;td&gt;QA&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;100&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;—&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;97%&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;19% compression&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;BFCL&lt;/td&gt;
					&lt;td&gt;Tools&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;100&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;—&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;97%&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;32% compression&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Reproduce: &lt;code&gt;python -m headroom.evals suite --tier 1&lt;/code&gt; · &lt;a class=&#34;link&#34; href=&#34;https://headroom-docs.vercel.app/docs/benchmarks&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Full benchmarks &amp;amp; methodology&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;agent-compatibility-matrix&#34;&gt;Agent compatibility matrix
&lt;/h2&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Agent&lt;/th&gt;
					&lt;th style=&#34;text-align: center&#34;&gt;&lt;code&gt;headroom wrap&lt;/code&gt;&lt;/th&gt;
					&lt;th&gt;Notes&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Claude Code&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;●&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;--memory&lt;/code&gt; · &lt;code&gt;--code-graph&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Codex&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;●&lt;/td&gt;
					&lt;td&gt;shares memory with Claude&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Cursor&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;●&lt;/td&gt;
					&lt;td&gt;prints config — paste once&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Aider&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;●&lt;/td&gt;
					&lt;td&gt;starts proxy + launches&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Copilot CLI&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;●&lt;/td&gt;
					&lt;td&gt;starts proxy + launches&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;OpenClaw&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;●&lt;/td&gt;
					&lt;td&gt;installs as ContextEngine plugin&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Any OpenAI-compatible client works via &lt;code&gt;headroom proxy&lt;/code&gt;. MCP-native: &lt;code&gt;headroom mcp install&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;when-to-use--when-to-skip&#34;&gt;When to use · When to skip
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Great fit if you…&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;run AI coding agents daily and want savings without changing your code&lt;/li&gt;
&lt;li&gt;work across multiple agents and want shared memory&lt;/li&gt;
&lt;li&gt;need reversible compression — originals always retrievable via CCR&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Skip it if you…&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;only use a single provider&amp;rsquo;s native compaction and don&amp;rsquo;t need cross-agent memory&lt;/li&gt;
&lt;li&gt;work in a sandboxed environment where local processes can&amp;rsquo;t run&lt;/li&gt;
&lt;/ul&gt;
&lt;details&gt;
&lt;summary&gt;&lt;b&gt;Integrations — drop Headroom into any stack&lt;/b&gt;&lt;/summary&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Your setup&lt;/th&gt;
					&lt;th&gt;Hook in with&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Any Python app&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;compress(messages, model=…)&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Any TypeScript app&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;await compress(messages, { model })&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Anthropic / OpenAI SDK&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;withHeadroom(new Anthropic())&lt;/code&gt; · &lt;code&gt;withHeadroom(new OpenAI())&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Vercel AI SDK&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;wrapLanguageModel({ model, middleware: headroomMiddleware() })&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;LiteLLM&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;litellm.callbacks = [HeadroomCallback()]&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;LangChain&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;HeadroomChatModel(your_llm)&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Agno&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;HeadroomAgnoModel(your_model)&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Strands&lt;/td&gt;
					&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://headroom-docs.vercel.app/docs/strands&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Strands guide&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;ASGI apps&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;app.add_middleware(CompressionMiddleware)&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Multi-agent&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;SharedContext().put / .get&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;MCP clients&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;headroom mcp install&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;/details&gt;
&lt;details&gt;
&lt;summary&gt;&lt;b&gt;What&#39;s inside&lt;/b&gt;&lt;/summary&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SmartCrusher&lt;/strong&gt; — universal JSON: arrays of dicts, nested objects, mixed types.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CodeCompressor&lt;/strong&gt; — AST-aware for Python, JS, Go, Rust, Java, C++.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kompress-base&lt;/strong&gt; — our HuggingFace model, trained on agentic traces.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Image compression&lt;/strong&gt; — 40–90% reduction via trained ML router.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CacheAligner&lt;/strong&gt; — stabilizes prefixes so Anthropic/OpenAI KV caches actually hit.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;IntelligentContext&lt;/strong&gt; — score-based context fitting with learned importance.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CCR&lt;/strong&gt; — reversible compression; LLM retrieves originals on demand.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cross-agent memory&lt;/strong&gt; — shared store, agent provenance, auto-dedup.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SharedContext&lt;/strong&gt; — compressed context passing across multi-agent workflows.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;headroom learn&lt;/code&gt;&lt;/strong&gt; — plugin-based failure mining for Claude, Codex, Gemini.&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details&gt;
&lt;summary&gt;&lt;b&gt;Pipeline internals&lt;/b&gt;&lt;/summary&gt;
&lt;p&gt;Headroom exposes one stable request lifecycle across &lt;code&gt;compress()&lt;/code&gt;, the SDK, and the proxy:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Setup&lt;/code&gt; → &lt;code&gt;Pre-Start&lt;/code&gt; → &lt;code&gt;Post-Start&lt;/code&gt; → &lt;code&gt;Input Received&lt;/code&gt; → &lt;code&gt;Input Cached&lt;/code&gt; → &lt;code&gt;Input Routed&lt;/code&gt; → &lt;code&gt;Input Compressed&lt;/code&gt; → &lt;code&gt;Input Remembered&lt;/code&gt; → &lt;code&gt;Pre-Send&lt;/code&gt; → &lt;code&gt;Post-Send&lt;/code&gt; → &lt;code&gt;Response Received&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Transforms&lt;/strong&gt; do the work: CacheAligner, ContentRouter, SmartCrusher, CodeCompressor, Kompress-base, IntelligentContext / RollingWindow.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pipeline extensions&lt;/strong&gt; observe or customize lifecycle stages via &lt;code&gt;on_pipeline_event(...)&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Compression hooks&lt;/strong&gt; sit alongside the canonical lifecycle as an additional extension seam.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Proxy extensions&lt;/strong&gt; remain the server/app integration seam for ASGI middleware, routes, and startup policy.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Provider and tool-specific behavior lives under &lt;code&gt;headroom/providers/&lt;/code&gt; so core orchestration stays focused on lifecycle, sequencing, and policy.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CLI/tool slices&lt;/strong&gt;: &lt;code&gt;headroom/providers/claude&lt;/code&gt;, &lt;code&gt;copilot&lt;/code&gt;, &lt;code&gt;codex&lt;/code&gt;, &lt;code&gt;openclaw&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Provider runtime slices&lt;/strong&gt;: &lt;code&gt;headroom/providers/claude&lt;/code&gt;, &lt;code&gt;gemini&lt;/code&gt;, plus shared backend/runtime dispatch in &lt;code&gt;headroom/providers/registry.py&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Core files stay orchestration-first&lt;/strong&gt;: &lt;code&gt;wrap.py&lt;/code&gt;, &lt;code&gt;client.py&lt;/code&gt;, &lt;code&gt;cli/proxy.py&lt;/code&gt;, and &lt;code&gt;proxy/server.py&lt;/code&gt; delegate provider-specific env shaping, API target normalization, backend selection, and transport dispatch.&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;h2 id=&#34;install&#34;&gt;Install
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s2&#34;&gt;&amp;#34;headroom-ai[all]&amp;#34;&lt;/span&gt;          &lt;span class=&#34;c1&#34;&gt;# Python, everything&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install headroom-ai                 &lt;span class=&#34;c1&#34;&gt;# TypeScript / Node&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker pull ghcr.io/chopratejas/headroom:latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Granular extras: &lt;code&gt;[proxy]&lt;/code&gt;, &lt;code&gt;[mcp]&lt;/code&gt;, &lt;code&gt;[ml]&lt;/code&gt; (Kompress-base), &lt;code&gt;[agno]&lt;/code&gt;, &lt;code&gt;[langchain]&lt;/code&gt;, &lt;code&gt;[evals]&lt;/code&gt;. Requires &lt;strong&gt;Python 3.10+&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Using &lt;code&gt;pipx&lt;/code&gt;? Choose a supported interpreter explicitly:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pipx install --python python3.13 &lt;span class=&#34;s2&#34;&gt;&amp;#34;headroom-ai[all]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;→ &lt;a class=&#34;link&#34; href=&#34;https://headroom-docs.vercel.app/docs/installation&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Installation guide&lt;/a&gt; — Docker tags, persistent service, PowerShell, devcontainers.&lt;/p&gt;
&lt;h2 id=&#34;headroom-learn&#34;&gt;headroom learn
&lt;/h2&gt;&lt;p align=&#34;center&#34;&gt;
  &lt;img src=&#34;headroom_learn.gif&#34; alt=&#34;headroom learn in action&#34; width=&#34;720&#34;&gt;
&lt;/p&gt;
&lt;p&gt;&lt;code&gt;headroom learn&lt;/code&gt; — mines failed sessions, writes corrections to &lt;code&gt;CLAUDE.md&lt;/code&gt; / &lt;code&gt;AGENTS.md&lt;/code&gt; / &lt;code&gt;GEMINI.md&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;documentation&#34;&gt;Documentation
&lt;/h2&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Start here&lt;/th&gt;
					&lt;th&gt;Go deeper&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://headroom-docs.vercel.app/docs/quickstart&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Quickstart&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://headroom-docs.vercel.app/docs/architecture&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Architecture&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://headroom-docs.vercel.app/docs/proxy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Proxy&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://headroom-docs.vercel.app/docs/how-compression-works&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;How compression works&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://headroom-docs.vercel.app/docs/mcp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;MCP tools&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://headroom-docs.vercel.app/docs/ccr&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;CCR — reversible compression&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://headroom-docs.vercel.app/docs/memory&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Memory&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://headroom-docs.vercel.app/docs/cache-optimization&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Cache optimization&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://headroom-docs.vercel.app/docs/failure-learning&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Failure learning&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://headroom-docs.vercel.app/docs/benchmarks&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Benchmarks&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://headroom-docs.vercel.app/docs/configuration&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Configuration&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://headroom-docs.vercel.app/docs/limitations&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Limitations&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;compared-to&#34;&gt;Compared to
&lt;/h2&gt;&lt;p&gt;Headroom runs &lt;strong&gt;locally&lt;/strong&gt;, covers &lt;strong&gt;every&lt;/strong&gt; content type, works with every major framework, and is &lt;strong&gt;reversible&lt;/strong&gt;.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;&lt;/th&gt;
					&lt;th&gt;Scope&lt;/th&gt;
					&lt;th&gt;Deploy&lt;/th&gt;
					&lt;th style=&#34;text-align: center&#34;&gt;Local&lt;/th&gt;
					&lt;th style=&#34;text-align: center&#34;&gt;Reversible&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Headroom&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;All context — tools, RAG, logs, files, history&lt;/td&gt;
					&lt;td&gt;Proxy · library · middleware · MCP&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/rtk-ai/rtk&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;RTK&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;CLI command outputs&lt;/td&gt;
					&lt;td&gt;CLI wrapper&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/yvgude/lean-ctx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;lean-ctx&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;CLI commands, MCP tools, editor rules&lt;/td&gt;
					&lt;td&gt;CLI wrapper · MCP&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://compresr.ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Compresr&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://thetokencompany.ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Token Co.&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;Text sent to their API&lt;/td&gt;
					&lt;td&gt;Hosted API call&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;OpenAI Compaction&lt;/td&gt;
					&lt;td&gt;Conversation history&lt;/td&gt;
					&lt;td&gt;Provider-native&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Attribution.&lt;/strong&gt; Headroom ships with the excellent &lt;a class=&#34;link&#34; href=&#34;https://github.com/rtk-ai/rtk&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;RTK&lt;/a&gt; binary for shell-output rewriting — &lt;code&gt;git show --short&lt;/code&gt;, scoped &lt;code&gt;ls&lt;/code&gt;, summarized installers. Huge thanks to the RTK team; their tool is a first-class part of our stack, and Headroom compresses everything downstream of it. Headroom can also use &lt;a class=&#34;link&#34; href=&#34;https://github.com/yvgude/lean-ctx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;lean-ctx&lt;/a&gt; as the selected CLI context tool; set &lt;code&gt;HEADROOM_CONTEXT_TOOL=lean-ctx&lt;/code&gt; before running &lt;code&gt;headroom wrap ...&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;contributing&#34;&gt;Contributing
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/chopratejas/headroom.git &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; headroom
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install -e &lt;span class=&#34;s2&#34;&gt;&amp;#34;.[dev]&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; pytest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Devcontainers in &lt;code&gt;.devcontainer/&lt;/code&gt; (default + &lt;code&gt;memory-stack&lt;/code&gt; with Qdrant &amp;amp; Neo4j). See &lt;a class=&#34;link&#34; href=&#34;CONTRIBUTING.md&#34; &gt;CONTRIBUTING.md&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;community&#34;&gt;Community
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://discord.gg/yRmaUNpsPJ&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Discord&lt;/a&gt;&lt;/strong&gt; — questions, feedback, war stories.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/chopratejas/kompress-base&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Kompress-base on HuggingFace&lt;/a&gt;&lt;/strong&gt; — the model behind our text compression.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;license&#34;&gt;License
&lt;/h2&gt;&lt;p&gt;Apache 2.0 — see &lt;a class=&#34;link&#34; href=&#34;LICENSE&#34; &gt;LICENSE&lt;/a&gt;.&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
