Entroly

Local-first Kontext-Kontrollebene und MCP-Server für KI-Codieragenten. Wählt Evidenz unter einem Token-Budget aus, hält ausgelassenen Inhalt bytegenau über CCR-Handles wiederherstellbar und gibt prüfbare Context Receipts aus. Lokal verifizieren (kein API-Key): entroly verify-claims (12/12 bestanden). Einsparungen workloadabhängig. Apache-2.0.

Dokumentation

Entroly

Entroly — Drop-In Context Assurance to Lower AI Operational Cost

Reduce unnecessary context without losing control of critical evidence.
Select the highest-value evidence first, compress it, keep originals recoverable, and emit a receipt — without rewriting your codebase or agent architecture.

Entroly is a local-first Context OS: content-addressed evidence, recoverable compression, and auditable receipts. Works through proxy, MCP, plugin, wrapper, and SDK paths with Claude Code, Codex, OpenClaw, GitHub Copilot, Cursor, Aider, and OpenAI/Anthropic-compatible apps.

Entroly on PyPI Entroly on npm Entroly on PyPI downloads Entroly on npm downloads Apache-2.0 license 5,117 of 5,117 native source fragments independently verified 13 of 13 public SDK recovery probes exactly matched their source spans Entroly GitHub stars

100,438 downloads · growing day by day
Measured across different distribution sources.

⭐ If Entroly is useful to you, please star the repository on GitHub.
⭐ Star Entroly on GitHub — it helps the project grow and reach more developers.

English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Español · हिन्दी · Français · Deutsch · Português · Italiano · Türkçe · Tiếng Việt · Bahasa Indonesia · Polski · Nederlands · ไทย · Svenska · Čeština · Tagalog · Română

⚡ Live Token Savings

Tokens saved · Estimated cost avoided · Compression savings · Tool-schema deferral savings

Live metricMeaningSource of truth
Tokens savedCumulative tokens reduced by the active Entroly workloadLocal value ledger plus entroly.proxy.tokens.saved / entroly_proxy_tokens_saved_total
Estimated cost avoidedModeled USD value of provider-bound input reduction using configured pricingLocal value ledger; provider invoice remains billing truth
Compression tokens savedCanonical whole-request savings excluding measured tool-schema deferralentroly.proxy.tokens.compression_saved / entroly_proxy_compression_tokens_saved_total
Tool-schema tokens deferredSavings from a caller explicitly limiting the active tool set with X-Entroly-Active-Toolsentroly.proxy.tokens.tool_schema_saved / entroly_proxy_tool_schema_tokens_saved_total

Live means measured by Entroly, not a fabricated global number. Exact totals stay in each installation's local Value Receipt. Separately opted-in proxy installations may contribute a conservative community lower bound: every provider-bound delta is rounded down to whole 1,000-token units and whole cents before upload, with no prompt, content, model, price, or exact per-request value. It is not an exact worldwide total or provider invoice. Run entroly value, entroly value --json, or open entroly dashboard for your exact local cumulative totals. For the public-counter contract and proxy metrics, see Live tokenomics and Metrics & Monitoring.

Tool schemas are never hidden by a relevance guess. To opt in for a request, send a comma-separated active set such as X-Entroly-Active-Tools: search_files,read_file. Forced tool choices and unnamed provider tools remain available; an invalid or non-matching set leaves the request unchanged.

Measurement contract · AI efficiency hub · Cost methodology · Metrics & monitoring · Privacy-safe telemetry


Token savings · Integrations · What is it? · Install · Quickstart · See it work · Benchmarks · Questions


Integration hub

Use Entroly at the SDK, framework, proxy, MCP, plugin or agent boundary. A listed name is not automatically a claim that hosted subscription inference is intercepted; provider-bound savings exist only when the request traverses an Entroly-controlled route.

Direct, tested pathsGuided or bounded paths
Vercel AI SDK middleware · OpenAI SDK · Anthropic SDKAgno · Strands Agents · CrewAI · AutoGen
LangChain · LiteLLM · MCPClaude Code on Vertex AI · Claude Code on Azure AI Foundry
OpenClaw · OpenCodeClaude Code in VS Code · VS Code Copilot · Grok

Open the complete verified integration and operations hub →


What is Entroly? (in plain English)

AI coding assistants have a memory limit. Hand one your whole codebase and it gets slow, expensive, and distracted — like giving someone a 500-page manual when they only needed page 47.

Entroly finds page 47.

It sits between your code and the AI, reads everything, and passes along only the parts that matter for the question actually being asked. Three things make that safe to do:

💰 Your bill goes downFewer words sent to the AI means a smaller invoice. How much depends on the job — see the real numbers below.
🔍 Nothing is lostWhatever Entroly sets aside is kept and can be pulled back exactly as it was, character for character.
🧾 You can check its workEvery decision comes with a receipt: what was kept, what was left out, and why.
Do I have to change my code? No. Entroly works with the tools you already
use — Claude Code, Cursor, Copilot and 30+ others — and runs in the background.

Do I need to pay for anything to try it? No. The two commands in the Install section below run entirely on your own machine, with no API key, and show you real numbers on your own project before you connect anything paid.


Install

Not sure which one? Pick Python. It's the complete version and what most people use. The others are alternate ways to run the same engine. | Platform | Install | What you get | |---|---|---| | 🐍 Python (pip) — recommended | pip install -U entroly | Everything: the command-line tool, the server your AI editor talks to, and the code library | | 📦 Node / npm | npm install -g entroly | The same engine, nothing Python required | | 🦀 Rust (source build) | cd entroly-core && cargo build --release --bin entroly-rs --features proxy | One self-contained program, no Python or Node needed | | 🍺 Homebrew | brew install juyterman1000/entroly/entroly | The command-line tool on macOS/Linux | | 🐳 Docker | docker pull ghcr.io/juyterman1000/entroly:latest | Runs in a container, nothing installed on your machine | Now check that it worked — free, offline, no API key:

cd /your/repo
entroly verify-claims
entroly simulate

Both run locally. Neither one calls an AI or costs anything.

Extras (entroly[proxy], entroly[native], entroly[full]), the standalone Rust binary, and uninstall steps: Engine & install options.


Quickstart — by how you work

Just want it working? pip install -U entroly && entroly go — that's the whole thing. It finds your editor, sets itself up, and shows you a before/after dashboard. The rest of this table is for specific setups. | Your situation | Do this | What it gets you | |---|---|---| | 🟢 "I just want it on." (pip / Python user) | pip install -U entroly && entroly go | Auto-detects your editor, wraps your agent, opens a dashboard showing tokens before and after | | "I use Node, not Python." (npm user) | npm install -g entroly && entroly init | Same engine, nothing Python required | | "I want one binary, no runtime." (Rust user) | cargo build --release --bin entroly-rs --features proxy (from entroly-core/) | A single native program with no dependencies | | "I use Claude Code / Cursor / Windsurf / VS Code." (MCP user) | entroly attach create --client claude --project . --ttl 4h --install (or entroly init for Cursor/VS Code) | Your editor gets compression, receipts, and recovery as built-in tools — access expires on its own, and you change zero code | | "I'm building my own app in Python." (SDK user) | from entroly import compress, compress_messages, optimize | Call it straight from your code, anywhere you assemble a prompt | | "I have an API key and my own app." (proxy user) | entroly proxy → point ANTHROPIC_BASE_URL / OPENAI_BASE_URL / GOOGLE_GEMINI_BASE_URL at localhost:9377 | Every request gets optimized on the way past — no code changes on your side | Why bother: less unnecessary context reaches the model (lower bill, less distraction for the model), nothing is silently lost (every drop is recoverable and receipted), and you can prove it — entroly verify-claims and entroly simulate show real numbers on your own repo before you connect a paid key.

from entroly import compress, compress_messages, optimize
compressed = compress(api_response, budget=2000)
messages   = compress_messages(messages, budget=30000)
context    = optimize(fragments, budget=8000, query="fix the login bug")
entroly compress response.json --out small.json
entroly recover sha256:0b957c79... --out restored.json

Full setup paths for every agent, IDE, and CI use case: Get started in depth · Command reference.


See it work in 30 seconds

Not mocked recordings — each video is rendered from a checked-in command that verifies its source artifact before printing a number.

Entroly local verification: twelve checks pass without an API key

entroly verify-claims — import, compression, receipts, WITNESS checks, recovery, proxy routing, replay. No API key.

Frozen model-recovery holdout: Entroly 24/24, published baseline 18/24

On a frozen 24-case holdout, Entroly answered 24/24; a published baseline answered 18/24 at roughly 1.5x the effective context. python scripts/readme_proof.py model-recovery

Fresh-seed restart recovery: 66 of 66 payloads recovered byte-exactly

Omitted evidence recovered byte-exact after a process restart, 66/66 payloads. python scripts/readme_proof.py restart-recovery

Full protocols, sample sizes, and every caveat: docs/BENCHMARKS.md.


Benchmarks

The question that matters: if you send less, does the AI start getting things wrong? These are standard public tests, run with and without Entroly.

How to read this: Retention is how well the AI still answered — 100% means it did just as well on far less text. Token savings is how much less was sent (and therefore paid for). Measured with gpt-4o-mini; intervals are Wilson 95% CIs.

BenchmarkBaselineWith EntrolyRetentionToken savings
NeedleInAHaystack100%100%100%99.5%
LongBench (HotpotQA)64%66%103%85.3%
Berkeley Function Calling100%100%100%79.3%
SQuAD 2.080%72%90%43.8%
GSM8K85%85%100%pass-through*
*pass-through: context already fit the budget, left unchanged. n=20–50 per row. Reproduce: python benchmarks/run_readme_benchmarks.py (needs OPENAI_API_KEY).

Being straight with you: look at the SQuAD 2.0 row — accuracy went down (80% → 72%). Compression is a trade, not magic, and it doesn't win everywhere. That's why entroly simulate exists: run it on your own project and see your own numbers before you commit to anything.

Hallucination detection (WITNESS, local, no API): 84.92% accuracy / 0.7976 AUROC on 20,000 HaluEval-QA decisions — within the reported uncertainty of gpt-4o-mini as an API judge on the same shared sample.

Frozen evidence-selection benchmark (opt-in PRISM-R research prototype, not the default compressor): a disagreement guard kept the answer-bearing passage in 298 of 300 cases while selecting an average of 1.02 of 16 passages (paired exact McNemar p=0.21875 vs. BM25 alone) — this experiment measures retrieval of the known-answer passage, not generated-answer quality. Full protocol: PRISM-R neural evidence frontier.

Recovery, latency, and head-to-head frontier results are in docs/BENCHMARKS.md with raw artifacts linked. None of these numbers are a universal or production-savings guarantee for your workload — reproduce them on your own repo with entroly simulate and entroly value.


Features

  • Picks first, shrinks second — it works out which files actually answer your question, then compresses them.
  • Gives you the original back, exactly — anything left out can be restored character-for-character and checked against a fingerprint.
  • Shows its work — a receipt for every decision: what was kept, what was left out and why, and what risk remains.
  • Fact-checks answers — compares what the AI said against the evidence it was given, on your machine, without paying for a second AI call.
  • Doesn't wreck your caching — keeps the unchanging parts of your prompt stable so your provider's discount for repeated text still applies.
  • Rescues sessions before they crash — when a conversation grows too big, it trims recoverable output instead of letting the provider reject the request mid-task.
  • Can route cheap work to cheap models — optional and fail-closed when uncertain.

Runs as a CLI, Python/TypeScript SDK, MCP server, HTTP proxy, or library import. Full surface map: docs/product-surface.md. Architecture and Rust internals: docs/DETAILS.md.


Works with your stack

Agent / platformPathStatus
Claude CodeScoped MCP attachment; API-key proxyNative
Codex CLIScoped MCP attachment; API-key proxyNative
OpenClawContext-engine plugin + scoped MCPNative
Cursor / Windsurf / VS CodeAutomatic MCP configAutomatic
GitHub Copilot CLIMCP (subscription) / proxy (BYOK)Supported
Cortex CodeSDK/library boundary onlyNot validated as a wrap target
Aider, OpenCode, and 30+ moreSession-scoped OpenAI-compatible proxyOne command

Status describes integration depth, not a savings guarantee — provider-observed savings require requests to actually traverse an Entroly proxy route. Entroly does not claim interception of GitHub-hosted subscription inference on Copilot's native path. Full compatibility matrix: docs/agent-compatibility.md.

Current model support

Entroly carries verified public metadata for GPT-5.6 Sol, Terra, and Luna; Gemini 3.6 Flash; and Gemini 3.5 Flash-Lite, and it can discover installed NVIDIA Nemotron 3.5 Lightning Ollama tags. Gated or private-preview announcements are not promoted into the verified matrix without a usable public model ID and limits. For example, Gemini 3.5 Flash Cyber remains outside the generally available matrix because its documented CodeMender access is restricted to selected governments and trusted partners. See Verified model support for model IDs, transport paths, limits, and availability boundaries.

NVIDIA Nemotron 3.5 Lightning with Ollama

Entroly supports nemotron-3.5-lightning through its existing local Ollama discovery and OpenAI-compatible proxy path. This is a model-neutral integration: Entroly manages evidence selection, budgets, recovery handles, Context Receipts, and optional verification around the request; Ollama runs the model.

ollama pull nemotron-3.5-lightning
python -m entroly.models discover ollama --inspect-ollama-context
# Set ENTROLY_OPENAI_BASE=http://127.0.0.1:11434 in your shell, then:
entroly proxy

Ollama lists the standard nemotron-3.5-lightning tag as a 30B mixture-of-experts model with 3B active parameters and a 1M context window. Its Apple-silicon 30b-mlx tag is listed separately with a 256K window, so Entroly discovers the installed tag's metadata instead of assuming that every build has the same limit. Local Ollama inference can keep model prompts on the device; agent tools, configured remote providers, and other applications retain their own network and privacy boundaries. Compatibility, setup, and official sources.


When to use it · when to skip it

Great fit: large repos where the agent only sees a few files at a time · chatty multi-turn agents · anywhere you want answers checked against evidence · cutting a real, growing AI bill.

Skip it: tiny repos or short prompts that already fit the budget · judgment-heavy tasks where you always want the full flagship model.


More commands

Also available: entroly wrap, entroly unwrap, entroly serve, entroly daemon, entroly dashboard, entroly demo, entroly capabilities, entroly ingest, entroly select, entroly receipt, entroly explain, entroly context-commit, entroly proof, entroly benchmark, entroly cache, entroly ravs, entroly perf, entroly batch. Full description: command reference.


Common questions

Will this change my code or my files?
No. Entroly reads your files and decides what to send to the AI. It never edits, moves, or deletes anything in your project.
Does my code get uploaded anywhere?
No. All selecting, compressing, and checking happens on your own machine. Entroly makes no outbound calls of its own — the only thing that leaves your computer is the request you were already sending to your AI provider, just smaller. There are no analytics on by default.
What if it leaves out something important?
Nothing is thrown away. Anything left out is stored and can be restored exactly as it was — `entroly recover` gives you back the original, character for character, and it's verified against a fingerprint.
How much money will this actually save me?
Honestly: it depends on your project. Run `entroly simulate` in your project — it's free, needs no API key, and estimates the reduction on your own files. If your prompts are already small, Entroly passes them through untouched.
I'm not a developer. Can I use this?
If you use an AI coding tool like Claude Code or Cursor, yes. Install it (`pip install -U entroly`), then run `entroly go` — it finds your editor, configures itself, and opens a dashboard.
Something broke / I'm stuck.
Run `entroly doctor`. If that doesn't sort it, [open an issue](https://github.com/juyterman1000/entroly/issues) or ask in [Discussions](https://github.com/juyterman1000/entroly/discussions).

Docs & community

Compressing a bad selection is still a bad selection. Entroly ranks first, then compresses — so the model gets structure, not just fewer tokens.

Apache-2.0 · local-first · no outbound analytics by default

pip install entroly && entroly go