{"repo":"headroomlabs-ai/headroom","free":true,"listed":false,"github":"https://github.com/headroomlabs-ai/headroom","clone":"git clone https://github.com/headroomlabs-ai/headroom.git","description":"Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.","language":"Python","stars":66522,"topics":["agent","ai","anthropic","claude-code","compression","context-engineering","context-window","cursor","fastapi","langchain","llm","mcp","openai","prompt-engineering","proxy","python","rag","token-optimization","tokens","typescript"],"license":"Apache-2.0","category":"dev_tool","readme_excerpt":"<div align=\"center\"><pre>\n  ██╗  ██╗███████╗ █████╗ ██████╗ ██████╗  ██████╗  ██████╗ ███╗   ███╗\n  ██║  ██║██╔════╝██╔══██╗██╔══██╗██╔══██╗██╔═══██╗██╔═══██╗████╗ ████║\n  ███████║█████╗  ███████║██║  ██║██████╔╝██║   ██║██║   ██║██╔████╔██║\n  ██╔══██║██╔══╝  ██╔══██║██║  ██║██╔══██╗██║   ██║██║   ██║██║╚██╔╝██║\n  ██║  ██║███████╗██║  ██║██████╔╝██║  ██║╚██████╔╝╚██████╔╝██║ ╚═╝ ██║\n  ╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝╚═════╝ ╚═╝  ╚═╝ ╚═════╝  ╚═════╝ ╚═╝     ╚═╝\n              The context compression layer for AI agents\n</pre></div>\n\n<p align=\"center\"><strong>60–95% fewer tokens (for JSON data), 15-20% fewer tokens (for coding agents) · library · proxy · MCP · content-aware compressors · local-first · reversible</strong></p>\n\n<p align=\"center\">\n  <a href=\"https://github.com/chopratejas/headroom/actions/workflows/ci.yml\"><img src=\"https://github.com/chopratejas/headroom/actions/workflows/ci.yml/badge.svg\" alt=\"CI\"></a>\n  <a href=\"https://app.codecov.io/gh/chopratejas/headroom\"><img src=\"https://codecov.io/gh/chopratejas/headroom/graph/badge.svg\" alt=\"codecov\"></a>\n  <a href=\"https://pypi.org/project/headroom-ai/\"><img src=\"https://img.shields.io/pypi/v/headroom-ai.svg\" alt=\"PyPI\"></a>\n  <a href=\"https://www.npmjs.com/package/headroom-ai\"><img src=\"https://img.shields.io/npm/v/headroom-ai.svg\" alt=\"npm\"></a>\n  <a href=\"https://huggingface.co/chopratejas/kompress-v2-base\"><img src=\"https://img.shields.io/badge/model-Kompress--v2--base-yellow.svg\" alt=\"Model: Kompress-v2-base\"></a>\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/badge/license-Apache%202.0-blue.svg\" alt=\"License: Apache 2.0\"></a>\n  <a href=\"https://headroom-docs.vercel.app/docs\"><img src=\"https://img.shields.io/badge/docs-online-blue.svg\" alt=\"Docs\"></a>\n</p>\n\n<!-- mcp-name: io.github.headroomlabs-ai/headroom -->\n\n<p align=\"center\">\n  <a href=\"https://headroom-docs.vercel.app/docs\">Docs</a> ·\n  <a href=\"#get-started-60-seconds\">Install</a> ·\n  <a href=\"#proof\">Proof</a> ·\n  <a href=\"#agent-compatibility-matrix\">Agents</a> ·\n  <a href=\"https://discord.gg/yRmaUNpsPJ\">Discord</a> ·\n  <a href=\"llms.txt\">llms.txt</a>\n</p>\n\n<p align=\"center\"><sub>\n  <b>AI agents / LLMs:</b> read <a href=\"llms.txt\"><code>/llms.txt</code></a> here, or fetch <a href=\"https://headroom-docs.vercel.app/llms.txt\">the live index</a> / <a href=\"https://headroom-docs.vercel.app/llms-full.txt\">full docs blob</a>.\n</sub></p>\n\n---\n<p align=\"center\"><a href=\"https://trendshift.io/repositories/20881\" target=\"_blank\"><img src=\"https://trendshift.io/api/badge/repositories/20881\" alt=\"chopratejas%2Fheadroom | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"/></a></p>\n\nHeadroom 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.\n\n<p align=\"center\">\n  <img src=\"HeadroomDemo-Fast.gif\" alt=\"Headroom in action\" width=\"820\">\n  <br/><sub>Live: 10,144 → 1,260 tokens — same FATAL found.</sub>\n</p>\n\n## What it does\n\n- **Library** — `compress(messages)` in Python or TypeScript, inline in any app\n- **Proxy** — `headroom proxy --port 8787`, zero code changes, any language\n- **Agent wrap** — `headroom wrap claude|codex|grok|copilot|cursor|aider|opencode|cline|continue|goose|openhands|openclaw|vibe|omp|zcode` in one command; undo with `headroom unwrap <tool>`\n- **MCP server** — `headroom_compress`, `headroom_retrieve`, `headroom_stats` for any MCP client\n- **Cross-agent memory** — shared store across Claude, Codex, Gemini, Grok, auto-dedup\n- **`headroom learn`** — mines failed sessions, writes corrections to `CLAUDE.local.md` (default, gitignored) or `CLAUDE.md` / `AGENTS.md` / `GEMINI.md` / `GROK.md`\n- **Output token reduction** — trims what the model *writes back* (not just what you send): drops ceremony/restated code and skips deep \"thinking\" on routine steps. See [Output token reduction](#output-token-reduction-cut-what-the-model-writes-back).\n- **Reversible (CCR)** — originals are cached for retrieval on demand\n\n## How it works (30 seconds)\n\n```\n Your agent / app\n   (Claude Code, Cursor, Codex, LangChain, Agno, Strands, your own code…)\n        │   prompts · tool outputs · logs · RAG results · files\n        ▼\n    ┌────────────────────────────────────────────────────┐\n    │  Headroom   (runs locally — your data stays here)  │\n    │  ────────────────────────────────────────────────  │\n    │  CacheAligner  →  ContentRouter  →  CCR            │\n    │                    ├─ SmartCrusher   (JSON)        │\n    │                    ├─ CodeCompressor (AST)         │\n    │                    └─ Kompress-v2-base (text, HF)  │\n    │                                                    │\n    │  Cross-agent memory  ·  headroom learn  ·  MCP     │\n    └────────────────────────────────────────────────────┘\n        │   compressed prompt  +  retrieval tool\n        ▼\n LLM provider  (Anthropic · OpenAI · Bedrock · …)\n```\n\n- **ContentRouter** — detects content type, selects the right compressor\n- **SmartCrusher / CodeCompressor / Kompress-v2-base** — compress JSON, AST, or prose\n- **CacheAligner** - detects and warns about volatile content that can bust provider KV cache prefixes; never rewrites prompts\n- **CCR** — stores originals locally; LLM calls `headroom_retrieve` if it needs them\n\n→ [Architecture](https://headroom-docs.vercel.app/docs/architecture) · [CCR reversible compression](https://headroom-docs.vercel.app/docs/ccr) · [Kompress-v2-base model card](https://huggingface.co/chopratejas/kompress-v2-base)\n\n## Get started (60 seconds)\n\n```bash\n# 1 — Install\nuv tool install --python 3.13 \"headroom-ai[all]\"  # CLI as a global tool in a self-contained virtual env\npip install \"headroom-ai[all]\"                    # Python — ships the `headroom` CLI\nnpm install headroom-ai                           # TypeScript SDK only — no `headroom` CLI\n\n# 2 — Pick your mode  (the `headroom` commands below come from the uv or pip install)\nheadroom deploy                         # turnkey local deployment + agent config\nheadroom wrap claude                    # wrap a coding agent\nheadroom proxy --port 8787              # drop-in proxy, zero code changes\n# or: from headroom import compress      # inline library\n\n# 3 — Verify setup and see the savings\nheadroom doctor                         # health check — confirms routing is working\nheadroom perf\nheadroom dashboard                      # live savings dashboard (proxy must be running)\n```\n\nTo use headroom, it is recommended you launch a wrapped agent session each time so that all necessary setup is completed. When wrapping a coding agent, headroom starts a local proxy, installs **Serena** for semantic code navigation, and launches a coding agent session configured to proxy requests through headroom.\n\nSerena is registered at **user scope** (for Claude Code, in `~/.claude.json`), so it stays available in your other projects until you run `headroom unwrap`. To skip it entirely, wrap with `--code-memory none`.\n\nThe `headroom` CLI ships **only** via the PyPI package. The npm `headroom-ai` is the TypeScript SDK — a library you import (`import { compress } from 'headroom-ai'`), not a CLI, so it provides no `headroom` command.\n\nGranular extras: `[proxy]`, `[mcp]`, `[ml]`, `[code]`, `[memory]`, `[vector]` (optional HNSW backend — needs a C++ toolchain, not in `[all]`), `[relevance]`, `[image]`, `[agno]`, `[langchain]`, `[evals]`, `[pytorch-mps]` (Apple-GPU memory-embedder offload — set `HEADROOM_EMBEDDER_RUNTIME=pytorch_mps`). Requires **Python 3.10+**.\n\n### Codex / global install\n\nIf Codex or another MCP client cannot inherit a shell `PATH` reliably, install Headroom as a persistent uv tool and point the client at the absolute binary path:\n\n```bash\nuv tool install \"headroom-ai[all]\"\ncommand -v headroom\n```\n\nThen use the returned path in MCP config:\n\n```toml\n[mcp_servers.headroom]\ncommand = \"/absolute/path/from/command-v/headroom\"\nargs = [\"mcp\", \"serve\"]\n```\n\n`command = \"headroom\"` only works when the client starts with a `PATH` that already includes the uv tool directory.\n\n## Proof\n\n**Savings on real agent workloads:**\n\n| Workload                      | Before | After  | Savings |\n|-------------------------------|-------:|-------:|--------:|\n| Code search (100 results)     | 17,765 |  1,408 | **92%** |\n| SRE incident debugging        | 65,694 |  5,118 | **92%** |\n| GitHub issue triage           | 54,174 | 14,761 | **73%** |\n| Codebase exploration          | 78,502 | 41,254 | **47%** |\n\n**Accuracy preserved on standard benchmarks:**\n\n| Benchmark  | Category | N   | Baseline | Headroom | Delta      |\n|------------|----------|----:|---------:|---------:|------------|\n| GSM8K      | Math     | 100 |    0.870 |    0.870 | **±0.000** |\n| TruthfulQA | Factual  | 100 |    0.530 |    0.560 | **+0.030** |\n| SQuAD v2   | QA       | 100 |        — |  **97%** | 19% compression |\n| BFCL       | Tools    | 100 |        — |  **97%** | 32% compression |\n\nReproduce: `python -m headroom.evals suite --tier 1` · [Full benchmarks & methodology](https://headroom-docs.vercel.app/docs/benchmarks)\n\n## Output token reduction (cut what the model writes back)\n\nEverything above shrinks the prompt you **send**. But you also pay for every\ntoken the model **writes back** — and on Opus-class models output costs 5× input.\nA lot of that output is waste: \"Great, let me…\" preambles, re-printing code you\njust showed it, and deep \"thinking\" on routine steps like reading a file.\n\nHeadroom can trim that too, from the proxy, without you changing any code:\n\n- **Verbosity steering** — appends a short \"be terse, don't restate context\"\n  note to the end of the system prompt (so your prompt cache still hits).\n- **Effort routing** — when a turn is just the model resuming after a tool result\n  (a file read, a passing test), it dials the model's thinking effort down. New\n  questions and errors keep full effort.\n\nApplies to Anthropic `/v1/messages` **and** OpenAI-compatible endpoints\n(`/v1/chat/completions`","default_branch":"main","files":2278,"tree":[".actrc",".actrc.local.example",".changelog.md",".claude-plugin/marketplace.json",".codegraph/.gitignore",".commitlintrc.json",".devcontainer/Dockerfile",".devcontainer/devcontainer.json",".devcontainer/docker-compose.memory.yml",".devcontainer/memory-stack/devcontainer.json",".devcontainer/post-create.sh",".dockerignore",".env.act.example",".env.example",".git-blame-ignore-revs",".gitattributes",".gitguardian.yaml",".github/CODEOWNERS",".github/ISSUE_TEMPLATE/bug_report.md",".github/ISSUE_TEMPLATE/config.yml",".github/ISSUE_TEMPLATE/copilot-subscription-test-report.md",".github/ISSUE_TEMPLATE/feature_request.md",".github/PULL_REQUEST_TEMPLATE.md",".github/act/docker-version.json",".github/act/dry-run.json",".github/act/pr-governance-invalid.json",".github/act/pr-governance-valid.json",".github/act/push-feat.json",".github/act/push-merge-pr.json",".github/act/release-published.json",".github/actions/headroom-e2e-setup/action.yml",".github/copilot-instructions.md",".github/dependabot.yml",".github/plugin/marketplace.json",".github/pr-images/issue-1696-error-protection-fix.svg",".github/pr-images/issue-2552-windows-fallback-verification.png",".github/scripts/pr-health-labels.py",".github/workflows/changelog-guard.yml",".github/workflows/ci.yml",".github/workflows/devcontainers.yml",".github/workflows/docker.yml",".github/workflows/docs.yml",".github/workflows/eval.yml",".github/workflows/init-e2e.yml",".github/workflows/init-native-e2e.yml",".github/workflows/install-native-e2e.yml",".github/workflows/merge-conflicts.yml",".github/workflows/network-diff-capture.yml",".github/workflows/opencode-plugin.yml",".github/workflows/pr-health.yml",".github/workflows/publish.yml",".github/workflows/release-metadata-sync.yml",".github/workflows/release-please.yml",".github/workflows/release.yml",".github/workflows/rust.yml",".github/workflows/security.yml",".github/workflows/stale.yml",".github/workflows/wrap-e2e.yml",".github/workflows/wrap-native-e2e.yml",".gitignore",".gitleaks.toml",".pre-commit-config.yaml",".release-please-config.json",".release-please-manifest.json",".releasemetadata",".serena/.gitignore",".serena/project.yml","CHANGELOG.md","CODE_OF_CONDUCT.md","CONTRIBUTING.md","Cargo.lock","Cargo.toml","Dockerfile","Headroom-2.gif","HeadroomDemo-Fast.gif","LICENSE","Makefile","NOTICE","README.md","REALIGNMENT/00-overview.md","REALIGNMENT/01-bug-list.md","REALIGNMENT/02-architecture.md","REALIGNMENT/03-phase-A-lockdown.md","REALIGNMENT/04-phase-B-live-zone.md","REALIGNMENT/05-phase-C-rust-proxy.md","REALIGNMENT/06-phase-D-bedrock-vertex.md","REALIGNMENT/07-phase-E-cache-stabilization.md","REALIGNMENT/08-phase-F-auth-mode.md","REALIGNMENT/09-phase-G-rtk-observability.md","REALIGNMENT/10-phase-H-python-retirement.md","REALIGNMENT/11-phase-I-test-infra.md","REALIGNMENT/12-decisions-needed.md","REALIGNMENT/INDEX.md","RUST_DEV.md","SECURITY.md","TESTING-copilot-subscription.md","benchmarks/__init__.py","benchmarks/adversarial_ccr_tests.py","benchmarks/agent_cost_benchmark.py","benchmarks/bench_latency.py","benchmarks/bench_relevance.py","benchmarks/bench_transforms.py","benchmarks/cache_bust_trace_report.py","benchmarks/cache_validation_bundle.py","benchmarks/ccr_regression_benchmark.py","benchmarks/claude_session_branch_compare.py","benchmarks/claude_session_mode_benchmark.py","benchmarks/comprehensive_eval.py","benchmarks/compression_benchmark.py","benchmarks/conftest.py","benchmarks/dynamic_detector_benchmark.py","benchmarks/headroom_adversarial_benchmark.py","benchmarks/headroom_worst_case_benchmark.py","benchmarks/i18n_compression_eval.py","benchmarks/prefix_cache_benchmark.py","benchmarks/proxy_mode_benchmark.py","benchmarks/real_world_agent_benchmark.py","benchmarks/run_benchmarks.py","benchmarks/scenarios/__init__.py","benchmarks/scenarios/conversations.py","benchmarks/scenarios/tool_outputs.py","benchmarks/synthetic_long_cache_suite_report.py","benchmarks/synthetic_token_cache_bust_report.py","benchmarks/text_crusher_quality_eval.py","claude_analysis_ttl.py","codecov.yml","crates/headroom-core/Cargo.toml","crates/headroom-core/benches/auth_mode.rs","crates/headroom-core/benches/ccr_store.rs","crates/headroom-core/benches/tokenizer.rs","crates/headroom-core/config/pipeline.toml","crates/headroom-core/proptest-regressions/transforms/tag_protector.txt","crates/headroom-core/src/auth_mode.rs","crates/headroom-core/src/cache_control.rs","crates/headroom-core/src/ccr/backends/in_memory.rs","crates/headroom-core/src/ccr/backends/mod.rs","crates/headroom-core/src/ccr/backends/redis.rs","crates/headroom-core/src/ccr/backends/sqlite.rs","crates/headroom-core/src/ccr/mod.rs","crates/headroom-core/src/compression_policy.rs","crates/headroom-core/src/lib.rs","crates/headroom-core/src/onnx_cpu.rs","crates/headroom-core/src/relevance/base.rs","crates/headroom-core/src/relevance/bm25.rs","crates/headroom-core/src/relevance/embedding.rs","crates/headroom-core/src/relevance/hybrid.rs","crates/headroom-core/src/relevance/mod.rs","crates/headroom-core/src/rollout.rs","crates/headroom-core/src/signals/README.md","crates/headroom-core/src/signals/keyword_detector.rs","crates/headroom-core/src/signals/line_importance.rs","crates/headroom-core/src/signals/mod.rs","crates/headroom-core/src/signals/tiered.rs","crates/headroom-core/src/tokenizer/estimator.rs","crates/headroom-core/src/tokenizer/hf_impl.rs","crates/headroom-core/src/tokenizer/mod.rs","crates/headroom-core/src/tokenizer/registry.rs","crates/headroom-core/src/tokenizer/tiktoken_impl.rs","crates/headroom-core/src/transforms/adaptive_sizer.rs","crates/headroom-core/src/transforms/anchor_selector.rs","crates/headroom-core/src/transforms/code_compressor.rs","crates/headroom-core/src/transforms/content_detector.rs","crates/headroom-core/src/transforms/detection.rs","crates/headroom-core/src/transforms/diff_compressor.rs","crates/headroom-core/src/transforms/kompress.rs","crates/headroom-core/src/transforms/live_zone.rs","crates/headroom-core/src/transforms/log_compressor.rs","crates/headroom-core/src/transforms/magika_detector.rs","crates/headroom-core/src/transforms/mod.rs","crates/headroom-core/src/transforms/pipeline/config.rs","crates/headroom-core/src/transforms/pipeline/mod.rs","crates/headroom-core/src/transforms/pipeline/offloads/diff_noise.rs","crates/headroom-core/src/transforms/pipeline/offloads/diff_offload.rs","crates/headroom-core/src/transforms/pipeline/offloads/json_offload.rs","crates/headroom-core/src/transforms/pipeline/offloads/log_offload.rs","crates/headroom-core/src/transforms/pipeline/offloads/mod.rs","crates/headroom-core/src/transforms/pipeline/offloads/prose_field.rs","crates/headroom-core/src/transforms/pipeline/offloads/search_offload.rs","crates/headroom-core/src/transforms/pipeline/orchestrator.rs","crates/headroom-core/src/transforms/pipeline/reformats/json_minifier.rs","crates/headroom-core/src/transforms/pipeline/reformats/log_template.rs","crates/headroom-core/src/transforms/pipeline/reformats/mod.rs","crates/headroom-core/src/transforms/pipeline/traits.rs","crates/headroom-core/src/transforms/recommendations.rs","crates/headroom-core/src/transforms/safety.rs","crates/headroom-core/src/transforms/search_compressor.rs","crates/headroom-core/src/transforms/smart_crusher/analyzer.rs","crates/headroom-core/src/transforms/smart_crusher/anchors.rs","crates/headroom-core/src/transforms/smart_crusher/builder.rs","crates/headroom-core/src/transforms/smart_crusher/classifier.rs","crates/headroom-core/src/transforms/smart_crusher/compaction/classifier.rs","crates/headroom-core/src/transforms/smart_crusher/compaction/compactor.rs","crates/headroom-core/src/transforms/smart_crusher/compaction/formatter.rs","crates/headroom-core/src/transforms/smart_crusher/compaction/ir.rs","crates/headroom-core/src/transforms/smart_crusher/compaction/mod.rs","crates/headroom-core/src/transforms/smart_crusher/compaction/walker.rs","crates/headroom-core/src/transforms/smart_crusher/config.rs","crates/headroom-core/src/transforms/smart_crusher/constraints.rs","crates/headroom-core/src/transforms/smart_crusher/crusher.rs","crates/headroom-core/src/transforms/smart_crusher/crushers.rs","crates/headroom-core/src/transforms/smart_crusher/error_keywords.rs","crates/headroom-core/src/transforms/smart_crusher/field_detect.rs","crates/headroom-core/src/transforms/smart_crusher/hashing.rs","crates/headroom-core/src/transforms/smart_crusher/mod.rs","crates/headroom-core/src/transforms/smart_crusher/observer.rs","crates/headroom-core/src/transforms/smart_crusher/orchestration.rs","crates/headroom-core/src/transforms/smart_crusher/outliers.rs","crates/headroom-core/src/transforms/smart_crusher/planning.rs","crates/headroom-core/src/transforms/smart_crusher/statistics.rs","crates/headroom-core/src/transforms/smart_crusher/stats_math.rs","crates/headroom-core/src/transforms/smart_crusher/traits.rs","crates/headroom-core/src/transforms/smart_crusher/types.rs","crates/headroom-core/src/transforms/tag_protector.rs","crates/headroom-core/src/transforms/text_crusher/config.rs","crates/headroom-core/src/transforms/text_crusher/crusher.rs","crates/headroom-core/src/transforms/text_crusher/mod.rs","crates/headroom-core/src/transforms/unidiff_detector.rs","crates/headroom-core/tests/auth_mode.rs","crates/headroom-core/tests/cache_control.rs","crates/headroom-core/tests/ccr_backends.rs","crates/headroom-core/tests/ccr_roundtrip.rs","crates/headroom-core/tests/code_compressor_parity.rs","crates/headroom-core/tests/kompress_parity.rs","crates/headroom-core/tests/live_zone_ccr.rs","crates/headroom-core/tests/live_zone_dispatch.rs","crates/headroom-core/tests/live_zone_thresholds.rs","crates/headroom-core/tests/live_zone_token_validation.rs","crates/headroom-core/tests/recommendations_loader.rs","crates/headroom-core/tests/tokenizer_proptest.rs","crates/headroom-parity/Cargo.toml","crates/headroom-parity/examples/diff_fixture.rs","crates/headroom-parity/src/bin/parity_run.rs","crates/headroom-parity/src/lib.rs","crates/headroom-proxy/Cargo.toml","crates/headroom-proxy/data/model_prices_and_context_window.json","crates/headroom-proxy/src/bedrock/auth_mode_layer.rs","crates/headroom-proxy/src/bedrock/envelope.rs","crates/headroom-proxy/src/bedrock/eventstream.rs","crates/headroom-proxy/src/bedrock/eventstream_to_sse.rs","crates/headroom-proxy/src/bedrock/invoke.rs","crates/headroom-proxy/src/bedrock/invoke_streaming.rs","crates/headroom-proxy/src/bedrock/mod.rs","crates/headroom-proxy/src/bedrock/sigv4.rs","crates/headroom-proxy/src/bedrock/vendor.rs","crates/headroom-proxy/src/cache_stabilization/anthropic_cache_control.rs","crates/headroom-proxy/src/cache_stabilization/beta_sticky.rs","crates/headroom-proxy/src/cache_stabilization/drift_detector.rs","crates/headroom-proxy/src/cache_stabilization/mod.rs","crates/headroom-proxy/src/cache_stabilization/openai_cache_key.rs","crates/headroom-proxy/src/cache_stabilization/tool_def_normalize.rs","crates/headroom-proxy/src/cache_stabilization/volatile_detector.rs","crates/headroom-proxy/src/compression/anthropic.rs","crates/headroom-proxy/src/compression/live_zone_anthropic.rs","crates/headroom-proxy/src/compression/live_zone_openai.rs","crates/headroom-proxy/src/compression/live_zone_responses.rs","crates/headroom-proxy/src/compression/mod.rs","crates/headroom-proxy/src/compression/model_limits.rs","crates/headroom-proxy/src/config.rs","crates/headroom-proxy/src/error.rs","crates/headroom-proxy/src/handlers/chat_completions.rs","crates/headroom-proxy/src/handlers/conversations.rs","crates/headroom-proxy/src/handlers/mod.rs","crates/headroom-proxy/src/handlers/responses.rs","crates/headroom-proxy/src/headers.rs","crates/headroom-proxy/src/health.rs","crates/headroom-proxy/src/lib.rs","crates/headroom-proxy/src/main.rs","crates/headroom-proxy/src/observability/cache_hit_rate.rs","crates/headroom-proxy/src/observability/compression_ratio.rs","crates/headroom-proxy/src/observability/metric_names.rs","crates/headroom-proxy/src/observability/mod.rs","crates/headroom-proxy/src/observability/prometheus.rs","crates/headroom-proxy/src/observability/proxy_metrics.rs","crates/headroom-proxy/src/proxy.rs","crates/headroom-proxy/src/responses_items.rs","crates/headroom-proxy/src/sse/anthropic.rs","crates/headroom-proxy/src/sse/framing.rs","crates/headroom-proxy/src/sse/mod.rs","crates/headroom-proxy/src/sse/openai_chat.rs","crates/headroom-proxy/src/sse/openai_responses.rs","crates/headroom-proxy/src/vertex/adc.rs","crates/headroom-proxy/src/vertex/envelope.rs","crates/headroom-proxy/src/vertex/mod.rs","crates/headroom-proxy/src/vertex/raw_predict.rs","crates/headroom-proxy/src/vertex/stream_raw_predict.rs","crates/headroom-proxy/src/websocket.rs","crates/headroom-proxy/tests/common/mod.rs","crates/headroom-proxy/tests/e2e_real.rs","crates/headroom-proxy/tests/e2e_simulators.rs","crates/headroom-proxy/tests/fixtures/anthropic_messages_request_real.json","crates/headroom-proxy/tests/integration_anthropic_model_sanitize.rs","crates/headroom-proxy/tests/integration_bedrock_authmode.rs","crates/headroom-proxy/tests/integration_bedrock_invoke.rs","crates/headroom-proxy/tests/integration_bedrock_metrics.rs","crates/headroom-proxy/tests/integration_bedrock_streaming.rs","crates/headroom-proxy/tests/integration_beta_header_sticky.rs","crates/headroom-proxy/tests/integration_body.rs","crates/headroom-proxy/tests/integration_body_size.rs","crates/headroom-proxy/tests/integration_cache_control.rs","crates/headroom-proxy/tests/integration_cache_drift.rs","crates/headroom-proxy/tests/integration_chat_completions.rs","crates/headroom-proxy/tests/integration_compression.rs","crates/headroom-proxy/tests/integration_conversations.rs","crates/headroom-proxy/tests/integration_e3_anthropic_cache_control.rs","crates/headroom-proxy/tests/integration_e4_openai_cache_key.rs","crates/headroom-proxy/tests/integration_headers.rs","crates/headroom-proxy/tests/integration_health.rs","crates/headroom-proxy/tests/integration_http.rs","crates/headroom-proxy/tests/integration_metrics.rs","crates/headroom-proxy/tests/integration_request_id.rs","crates/headroom-proxy/tests/integration_responses.rs","crates/headroom-proxy/tests/integration_responses_streaming.rs","crates/headroom-proxy/tests/integration_schema_sort.rs","crates/headroom-proxy/tests/integration_sse.rs","crates/headroom-proxy/tests/integration_tool_sort.rs","crates/headroom-proxy/tests/integration_vertex_raw_predict.rs","crates/headroom-proxy/tests/integration_volatile_detector.rs","crates/headroom-proxy/tests/integration_ws.rs","crates/headroom-proxy/tests/sse_anthropic.rs","crates/headroom-proxy/tests/sse_framing.rs","crates/headroom-proxy/tests/sse_openai_chat.rs","crates/headroom-proxy/tests/sse_openai_responses.rs","crates/headroom-py/Cargo.toml","crates/headroom-py/build.rs","crates/headroom-py/glibc_compat.c","crates/headroom-py/src/lib.rs","crates/headroom-simulators/Cargo.toml","crates/headroom-simulators/Dockerfile","crates/headroom-simulators/README.md","crates/headroom-simulators/src/application.rs","crates/headroom-simulators/src/config.rs","crates/headroom-simulators/src/domain.rs","crates/headroom-simulators/src/lib.rs","crates/headroom-simulators/src/main.rs","crates/headroom-simulators/src/presentation.rs","crates/headroom-simulators/tests/simulator_http.rs","dashboard-cache-ttl-main.png","deny.toml","deploy/beacon/.gitignore","deploy/beacon/package.json","deploy/beacon/query.sh","deploy/beacon/sample-event.json","deploy/beacon/test-rollup.mjs","deploy/beacon/worker.js","deploy/beacon/wrangler.toml","docker-bake.hcl","docker-compose.yml","docker/differential-network-capture/Dockerfile.runner","docker/differential-network-capture/docker-compose.yml","docker/differential-network-capture/mitm_capture.py","docker/differential-network-capture/run-claude-lane.sh","docker/docker-compose.native.yml","docs/.gitignore","docs/README.md","docs/app/(home)/layout.tsx","docs/app/(home)/page.tsx","docs/app/api/search/route.ts","docs/app/docs/[[...slug]]/page.tsx","docs/app/docs/layout.tsx","docs/app/global.css","docs/app/layout.tsx","docs/app/llms-full.txt/route.ts","docs/app/llms.mdx/docs/[[...slug]]/route.ts","docs/app/llms.txt/route.ts","docs/app/og/docs/[...slug]/route.tsx","docs/app/robots.ts","docs/app/sitemap.ts","docs/bun.lock","docs/claude-code-bedrock-headroom.md","docs/components/button.tsx","docs/components/code-block.tsx","docs/components/map.tsx","docs/components/marketing.tsx","docs/components/mdx.tsx","docs/content/docs/agent-orchestration.mdx","docs/content/docs/agno.mdx","docs/content/docs/anthropic-sdk.mdx","docs/content/docs/api-reference.mdx","docs/content/docs/architecture.mdx","docs/content/docs/autogen.mdx","docs/content/docs/benchmarks.mdx","docs/content/docs/cache-optimization.mdx","docs/content/docs/ccr.mdx","docs/content/docs/ci-cd-flows.mdx","docs/content/docs/claude-code-azure-foundry.mdx","docs/content/docs/claude-code-vertex.mdx","docs/content/docs/code-compression.mdx","docs/content/docs/codex-recovery.mdx","docs/content/docs/configuration.mdx","docs/content/docs/context-management.mdx","docs/content/docs/crewai.mdx","docs/content/docs/docker-install.mdx","docs/content/docs/errors.mdx","docs/content/docs/failure-learning.mdx","docs/content/docs/filesystem-contract.mdx","docs/content/docs/grok-build.mdx","docs/content/docs/how-compression-works.mdx","docs/content/docs/image-compression.mdx","docs/content/docs/index.mdx","docs/content/docs/installation.mdx"],"storefront":"/r/headroomlabs-ai","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/headroomlabs-ai/headroom/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}