{"id":46937597,"url":"https://github.com/juyterman1000/entroly","last_synced_at":"2026-06-07T21:01:02.337Z","repository":{"id":342911512,"uuid":"1175591394","full_name":"juyterman1000/entroly","owner":"juyterman1000","description":"Entroly-Information-theoretic context optimization for AI coding agents. Knapsack-optimal token budgeting, Shannon entropy scoring, SimHash dedup, predictive pre-fetch, auto tune MCP server.","archived":false,"fork":false,"pushed_at":"2026-03-12T06:55:48.000Z","size":3532,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-12T11:31:25.179Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/juyterman1000.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-07T23:03:02.000Z","updated_at":"2026-03-12T06:55:51.000Z","dependencies_parsed_at":"2026-03-13T08:00:33.111Z","dependency_job_id":null,"html_url":"https://github.com/juyterman1000/entroly","commit_stats":null,"previous_names":["juyterman1000/entroly"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/juyterman1000/entroly","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juyterman1000%2Fentroly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juyterman1000%2Fentroly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juyterman1000%2Fentroly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juyterman1000%2Fentroly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/juyterman1000","download_url":"https://codeload.github.com/juyterman1000/entroly/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juyterman1000%2Fentroly/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30462028,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-13T06:34:02.089Z","status":"ssl_error","status_checked_at":"2026-03-13T06:33:49.182Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-03-11T06:02:13.020Z","updated_at":"2026-06-07T21:01:02.320Z","avatar_url":"https://github.com/juyterman1000.png","language":"Python","funding_links":[],"categories":["Libraries","🔍 Observability and Evaluation","Optimizations","Projects","Python","Agent Infrastructure","RAG Tools","Coding-Assistant Token Savers"],"sub_categories":["Artificial Intelligence","Context Optimization","Profiling","AI and Agents","Configuration \u0026 Context Management"],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"docs/i18n/README.zh-CN.md\"\u003e中文\u003c/a\u003e •\n  \u003ca href=\"docs/i18n/README.ja.md\"\u003e日本語\u003c/a\u003e •\n  \u003ca href=\"docs/i18n/README.ko.md\"\u003e한국어\u003c/a\u003e •\n  \u003ca href=\"docs/i18n/README.pt-BR.md\"\u003ePortuguês\u003c/a\u003e •\n  \u003ca href=\"docs/i18n/README.es.md\"\u003eEspañol\u003c/a\u003e •\n  \u003ca href=\"docs/i18n/README.de.md\"\u003eDeutsch\u003c/a\u003e •\n  \u003ca href=\"docs/i18n/README.fr.md\"\u003eFrançais\u003c/a\u003e •\n  \u003ca href=\"docs/i18n/README.ru.md\"\u003eРусский\u003c/a\u003e •\n  \u003ca href=\"docs/i18n/README.hi.md\"\u003eहिन्दी\u003c/a\u003e •\n  \u003ca href=\"docs/i18n/README.tr.md\"\u003eTürkçe\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/entroly_wordmark.svg\" width=\"820\" alt=\"Entroly\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003cb\u003eCut your Claude / OpenAI / Gemini bill 70–95% on AI coding.\u003c/b\u003e\u003cbr\u003e\nCompress context, keep provider caches hot, and verify every answer with a \u003cb\u003e$0 hallucination guard\u003c/b\u003e.\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003csub\u003eDrop-in for \u003cb\u003eCursor, Claude Code, Codex, Aider + 34 more\u003c/b\u003e and custom providers — 30s, no code changes.\u003c/sub\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003csub\u003eAuditable context control plane · every answer gets a receipt: what was used, what was omitted, why, and the risks that remain · local-first · Rust + WASM · reversible · savings measured on real workloads\u003c/sub\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/pypi/v/entroly?color=blue\u0026label=PyPI\" alt=\"PyPI\"\u003e\n  \u003cimg src=\"https://img.shields.io/npm/v/entroly-wasm?color=red\u0026label=npm\" alt=\"npm\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/License-Apache_2.0-green\" alt=\"License\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Token_Savings-tested_70--95%25-brightgreen\" alt=\"Token savings\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Hallucination-HaluEval--QA_0.844_AUROC_·_%240-blueviolet\" alt=\"Hallucination guard\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Engine-Rust_+_WASM-orange?logo=rust\" alt=\"Rust + WASM\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ccode\u003epip install entroly \u0026\u0026 cd /your/repo \u0026\u0026 entroly go\u003c/code\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#get-started-60-seconds\"\u003e\u003cb\u003eGet started\u003c/b\u003e\u003c/a\u003e ·\n  \u003ca href=\"#proof\"\u003e\u003cb\u003eProof\u003c/b\u003e\u003c/a\u003e ·\n  \u003ca href=\"#works-with-your-stack\"\u003e\u003cb\u003eIntegrations\u003c/b\u003e\u003c/a\u003e ·\n  \u003ca href=\"#whats-inside\"\u003e\u003cb\u003eWhat's inside\u003c/b\u003e\u003c/a\u003e ·\n  \u003ca href=\"docs/DETAILS.md\"\u003e\u003cb\u003eArchitecture\u003c/b\u003e\u003c/a\u003e ·\n  \u003ca href=\"docs/for-teams.md\"\u003e\u003cb\u003eFor teams\u003c/b\u003e\u003c/a\u003e ·\n  \u003ca href=\"docs/limitations.md\"\u003e\u003cb\u003eLimitations\u003c/b\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://huggingface.co/spaces/entroly/entroly-context-compression\"\u003e\u003cimg src=\"https://img.shields.io/badge/▶_Try_it_live-no_install-FF4B4B?logo=huggingface\u0026logoColor=white\" alt=\"Live demo\"\u003e\u003c/a\u003e\n  \u0026nbsp;\n  \u003ca href=\"https://juyterman1000.github.io/entroly/docs/dashboard.html\"\u003e\u003cimg src=\"https://img.shields.io/badge/See_the_dashboard-live-2EA44F\" alt=\"Dashboard\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## What it does\n\nEntroly is an auditable context control plane for AI agents. It decides what context to send, records what it left out, and produces a receipt you can inspect before trusting a hard multi-file answer.\n\n- **Receipts** - every selection run can explain selected chunks, omitted nearby evidence, dependency links, fingerprints, token ratio, and residual risks.\n- **Select** - ranks your repo or document set, then sends the answer-relevant context under a token budget.\n- **Verify** - WITNESS checks the model's answer against the evidence it was given and flags unsupported claims. $0, ~3 ms, no extra API call.\n- **Route** - sends easy, repeated tasks to a cheaper model and keeps the flagship for hard ones (opt-in, fail-closed).\n- **Cache-align** - keeps the injected prefix byte-stable so provider prefix caches can keep hitting where terms and API shape allow it.\n- **Learn** - improves which files it picks for *your* workflow from local feedback. No embeddings API, no training job.\n\nUse it however you work: **wrap** your agent, run it as a **proxy**, plug it in as an **MCP server**, or import the **library**.\n\n---\n\n## How it works (30 seconds)\n\n```\nyour agent  ──►  Entroly (local)  ──►  LLM provider\n                 │\n                 ├─ rank the repo        (BM25 + entropy + dep-graph)\n                 ├─ select under budget  (knapsack, reversible)\n                 ├─ emit receipt         (included, omitted, risks)\n                 ├─ cache-align prefix    (keep provider cache hot)\n                 └─ verify the reply      (WITNESS hallucination guard)\n```\n\nCritical files go in full. Supporting files become signatures. Everything else becomes a reference you can expand on demand — so the model gets a **broader** view of your codebase in a **smaller** prompt. Nothing is lost: every compressed fragment is fully retrievable.\n\n---\n\n## Get started (60 seconds)\n\n```bash\npip install entroly        # or: npm i -g entroly  ·  brew install juyterman1000/entroly/entroly\n```\n\n**1. One command — auto-detects your IDE, wraps your agent, opens the dashboard:**\n\n```bash\ncd /your/repo \u0026\u0026 entroly go\n```\n\n**2. Or wrap a specific agent:**\n\n```bash\nentroly wrap claude     # Claude Code\nentroly wrap cursor     # Cursor\nentroly wrap codex      # Codex CLI\nentroly wrap aider      # Aider\n```\n\n**3. Or run the proxy — zero code changes, any language:**\n\n```bash\nentroly proxy                                   # http://localhost:9377\nANTHROPIC_BASE_URL=http://localhost:9377     your-app\nOPENAI_BASE_URL=http://localhost:9377/v1     your-app\n```\n\n**4. Or measure it on your own repo first:**\n\n```bash\nentroly demo            # before/after token + cost estimate\nentroly simulate        # local no-LLM savings estimate\nentroly perf            # local no-LLM savings + optimizer latency\nentroly verify-claims   # runs the packaged self-test, writes a JSON report\n```\n\n\u003e Local-first: your code is indexed and selected on-device, never sent anywhere for analysis. Apache-2.0. No outbound analytics by default.\n\n---\n\n## Context Receipts\n\nEntroly gives every AI answer a context receipt: what was used, what was omitted, why, and what risks remain. This is built for hard multi-document work such as contracts, policies, addenda, code reviews, and audit evidence where \"top-k chunks\" is not enough.\n\n```bash\nentroly ingest ./docs\nentroly select --query \"Does this contract have a change-of-control clause?\" --budget 8000\nentroly receipt .entroly/receipts/cr_example.json\nentroly explain --why-omitted chk_example --receipt .entroly/receipts/cr_example.json\n```\n\nThe receipt JSON includes selected chunks, omitted relevant chunks, ranking reasons, dependency links, source fingerprints, token ratio, warnings, and a reproducibility hash. The Markdown report is designed for human review before a compressed context is trusted.\n\nImplementation notes:\n\n- Rust core (`entroly-core/src/context_receipts.rs`) handles deterministic ingestion, BM25-style ranking, dependency scans, selection, and hashes when the native wheel is available.\n- Python control plane (`entroly/context_receipts/`) provides CLI wiring and a pure-Python fallback for source checkouts.\n- The semantic/vector scorer and reranker are explicit extension points; the local MVP ships with lexical scoring and dependency heuristics, not a legal-accuracy guarantee.\n\nExamples:\n\n- [Example receipt JSON](docs/examples/context_receipt.json)\n- [Example Markdown report](docs/examples/context_receipt.md)\n- [Limitations](docs/limitations.md#context-receipts)\n\n---\n\n## Proof\n\nEvery number below is reproducible and backed by a committed JSON artifact you can audit — not a screenshot.\n\n**Token savings** (this repo, `entroly verify-claims`, local, no API):\n\n| Budget | Token reduction |\n|---|---|\n| 8K  | **99.1%** |\n| 32K | **96.7%** |\n| average across workloads | **87.0%** |\n\n**Accuracy retention** — does compression hurt answers? Measured with `gpt-4o-mini`; intervals are Wilson 95% CIs. Each row links its raw result file.\n\n| Benchmark | n | Budget | Baseline | With Entroly | Retention | Token savings |\n|---|---|---|---|---|---|---|\n| [NeedleInAHaystack](benchmarks/results/needle_accuracy.json) | 20 | 2K | 100% | 100% | **100%** | **99.5%** |\n| [LongBench (HotpotQA)](benchmarks/results/longbench_accuracy.json) | 50 | 2K | 64% | 66% | **103%** | **85.3%** |\n| [Berkeley Function Calling](benchmarks/results/bfcl_accuracy.json) | 50 | 500 | 100% | 100% | **100%** | **79.3%** |\n| [SQuAD 2.0](benchmarks/results/squad_accuracy.json) | 50 | 100 | 80% | 72% | **90%** | **43.8%** |\n| [GSM8K](benchmarks/results/gsm8k_accuracy.json) | 20 | 50K | 85% | 85% | **100%** | pass-through* |\n\n\u003csub\u003e*pass-through: context already fit the budget, so Entroly left it unchanged. Reproduce: `python benchmarks/run_readme_benchmarks.py` (needs `OPENAI_API_KEY`). Full table + MMLU/TruthfulQA in [DETAILS](docs/DETAILS.md).\u003c/sub\u003e\n\n**Hallucination guard** — [HaluEval-QA](https://github.com/RUCAIBox/HaluEval), standard protocol, GPT-judge baseline on identical data:\n\n| System | Accuracy | AUROC | Cost / latency |\n|---|---|---|---|\n| **WITNESS + STAVE** (default) | **85.8%** | **0.844** | **$0, ~3 ms/decision** |\n| gpt-4o-mini (grounded judge) | 86.3% | — | LLM call |\n| gpt-3.5-turbo (HaluEval paper) | 62.6% | — | LLM call |\n\n\u003csub\u003e$0, zero-network verifier that statistically ties a strong LLM judge. Reproduce: `python benchmarks/halueval_qa_faithful.py`. [Proof JSON](benchmarks/results/stave_benchmark.json).\u003c/sub\u003e\n\n---\n\n## Works with your stack\n\n`entroly wrap \u003cagent\u003e` picks the best integration for each tool — proxy env-wrap for CLIs, auto-merged `mcp.json` for MCP-aware IDEs, or a copy-paste endpoint hint.\n\n**Wrap in one command:** `claude` · `cursor` · `codex` · `aider` · `gemini` · `windsurf` · `vscode` · `zed` · `cline` · `continue` and **28 more**.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eFull agent list (38 targets)\u003c/b\u003e\u003c/summary\u003e\n\n| Type | Agents |\n|---|---|\n| **CLI (env-wrap + exec)** | Claude Code, Codex CLI, Aider, Gemini CLI, Qwen Code, OpenCode, Charm CRUSH, Hermes, Pi, Ollama |\n| **MCP IDEs (auto-merge `mcp.json`)** | Cursor, Windsurf, VS Code, Claude Desktop, Claude Code (MCP), Zed |\n| **Copy-paste endpoint** | Cline, Roo Code, Continue, Cody, Amp, Kiro, Qoder, Trae, Antigravity, Amazon Q, Verdent, JetBrains AI, Helix, Tabby, Twinny, Sublime, Emacs, Neovim, Fitten, Tabnine, Supermaven |\n\nAny tool that supports a custom `OPENAI_BASE_URL` / `ANTHROPIC_BASE_URL` works via the proxy. Run `entroly wrap` (no agent) for the full grouped list. Use wrappers only with tools whose terms permit local proxies / custom endpoints.\n\u003c/details\u003e\n\n**As a library** (LangChain, LlamaIndex, your own code):\n\n```python\nfrom entroly import compress, compress_messages, optimize\n\ncompressed = compress(api_response, budget=2000)          # query-agnostic\nmessages   = compress_messages(messages, budget=30000)    # whole conversation\ncontext    = optimize(fragments, budget=8000, query=\"fix the login bug\")  # task-conditioned\n```\n\n**In CI** — fail the build if a prompt blows the token budget:\n\n```yaml\n- run: pip install entroly \u0026\u0026 entroly batch --budget 8000 --fail-over-budget\n```\n\n---\n\n## When to use it · when to skip\n\n**Great fit**\n- Large repos where the agent only sees a few files at a time\n- Chatty, multi-turn agents (cache alignment compounds the savings)\n- Anywhere you want answers checked against evidence before you trust them\n- Teams trying to cut a real, growing AI bill\n\n**Skip it (it'll just pass through)**\n- Tiny repos or short prompts that already fit the budget\n- Judgment-heavy tasks where you want the full flagship model every time\n\n---\n\n## What's inside\n\nMost people install Entroly for input-token compression. It actually ships **19 local cost-saving mechanisms** across input, inference, output, verification, and learning — each one readable in the source with a committed benchmark where applicable.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eThe 19 levers (and the file that implements each)\u003c/b\u003e\u003c/summary\u003e\n\n| # | Lever | Win | Source |\n|---|---|---|---|\n| 1 | Context compression (knapsack + 9 compressors + dep-graph) | 39–99% input tokens | `proxy_transform.py`, `qccr.py` |\n| 2 | WITNESS + STAVE hallucination gateway | AUROC 0.844, $0 | `witness.py`, `verifiers/stave.py` |\n| 3 | Cache Aligner | up to 90% off cached calls | `cache_aligner.py` |\n| 4 | Escalation cascade (conformally calibrated) | avoids most flagship calls | `escalation.py` |\n| 5 | Conformal cascade | proven cost/coverage tradeoff | `conformal_cascade.py` |\n| 6 | RAVS Bayesian router | routes easy tasks to cheaper models | `ravs/router.py` |\n| 7 | Fast-path crystallized skills | 100% LLM cost saved on cache hits | `fast_path.py` |\n| 8 | Adaptive compression budget | right-sizes budget per query | `adaptive_budget.py` |\n| 9 | Entropic conversation pruning | flattens history-growth cost | `proxy_transform.py` |\n| 10 | Shell-output compression | 60–95% on tool output | `proxy_transform.py`, `shell_codec.py` |\n| 11 | Response distillation | fewer output tokens billed | `proxy_transform.py` |\n| 12 | Local DeBERTa NLI (opt-in) | $0 offline NLI | `witness.py` |\n| 13 | EICV suppressor | stops bad info propagating | `eicv_suppressor.py` |\n| 14 | PRISM 5D adaptive weights | quality improves with use | `online_learner.py`, `prism.rs` |\n| 15 | Federation (opt-in) | amortized cold-start | `federation.py` |\n| 16 | Entropic Shell Codec | universal tool-output fallback | `shell_codec.py` |\n| 17 | Semantic Resolution Protocol | 40–70% fewer tokens on file reads | `semantic_resolution.py` |\n| 18 | Adversarial Context Firewall | blocks prompt-injection / poisoning | `context_firewall.py` |\n| 19 | Witness-Verified Handoff | filters hallucinations between agents | `verified_handoff.py` |\n\nMost levers are **multiplicative**: input compression × cache alignment × cheaper-model routing × output distillation can leave well under 1% of the original input-token spend on the bill. Per-lever contribution shows up in the dashboard's Cost Intelligence panel. Full math and proofs in [docs/DETAILS.md](docs/DETAILS.md).\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eEngine \u0026 install options\u003c/b\u003e\u003c/summary\u003e\n\nPython is the reference runtime; the Rust core (via PyO3) does the heavy compute at 50–100× Python speed, and the same engine ships to Node via WASM.\n\n```bash\npip install entroly            # core: MCP server + Python engine\npip install entroly[proxy]     # + HTTP proxy\npip install entroly[native]    # + Rust engine\npip install entroly[full]      # everything\n\nnpm install -g entroly         # WASM runtime, no Python needed\ndocker pull ghcr.io/juyterman1000/entroly:latest\n```\n\n**Single binary, no Python** — a standalone Rust proxy that auto-detects Anthropic/OpenAI/Gemini and stays cache-aligned:\n\n```bash\ncd entroly/entroly-core \u0026\u0026 cargo build --release --bin entroly-rs --features proxy\n./target/release/entroly-rs proxy --upstream https://api.anthropic.com\n```\n\u003c/details\u003e\n\n---\n\n## WITNESS — check answers before you trust them\n\n```bash\nentroly witness --context-file evidence.txt --output-file answer.txt --mode strict\nentroly proxy --witness strict --witness-profile rag    # suppress unsupported claims inline\n```\n\nProfiles tune false-positive behavior per workload (`rag`, `qa`, `code` fail closed; `chat`, `summary` warn). Every non-streaming response gets a proof certificate; the dashboard shows flagged claims, evidence snippets, and suppression counts. Optional offline DeBERTa NLI (`ENTROLY_LOCAL_NLI=1`) raises accuracy further at $0.\n\n---\n\n## Compared to\n\n| | **Entroly** | Compression tools | Top-K / RAG | Raw truncation |\n|---|---|---|---|---|\n| Approach | Rank → select → compress | Compress whatever's given | Embedding retrieval | Cut off |\n| Token savings | **70–95%** (large repos) | 50–70% | 30–50% | 0% |\n| Quality loss | **None measured** | 2–5% | Variable | High |\n| Needs embeddings API | **No** | Varies | Yes | No |\n| Reversible | **Yes** | Varies | Yes | No |\n| Learns over time | **Yes (PRISM)** | No | No | No |\n| Verifies the answer | **Yes (WITNESS)** | No | No | No |\n\n\u003e Compressing a *bad* selection is still a bad selection. Entroly ranks first, then compresses — so the model gets structure, not just fewer tokens.\n\n---\n\n## Docs \u0026 community\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eCommand reference\u003c/b\u003e\u003c/summary\u003e\n\n| Command | What it does |\n|---|---|\n| `entroly go` | One shot: detect IDE, wrap your agent, open the dashboard |\n| `entroly wrap \u003cagent\u003e` | Wrap a specific coding agent (38 supported) |\n| `entroly proxy` | Start the HTTP proxy on `localhost:9377` |\n| `entroly serve` | Start the MCP server |\n| `entroly daemon` | Supervise proxy + dashboard + MCP + file watcher |\n| `entroly dashboard` | Open the live metrics dashboard |\n| `entroly demo` | Before/after token + cost estimate on your repo |\n| `entroly ingest` | Ingest documents into a local Context Receipt index |\n| `entroly select` | Select context under budget and write a Context Receipt |\n| `entroly receipt` | Render a Context Receipt as a Markdown report |\n| `entroly explain` | Explain why a chunk was selected or omitted |\n| `entroly simulate` | Local no-LLM savings estimate with an explicit baseline |\n| `entroly perf` | Local no-LLM savings and optimizer latency |\n| `entroly benchmark` | Local comparison: Entroly vs raw context vs top-K |\n| `entroly health` | Codebase health grade (A–F) |\n| `entroly cache stats` | Persistent cross-session cache stats |\n| `entroly ravs report` | Model-routing cost-savings report |\n| `entroly witness` | Check an answer against supplied evidence |\n| `entroly verify-claims` | Run the packaged self-test → JSON report |\n\n\u003c/details\u003e\n\n- **[Architecture \u0026 full spec](docs/DETAILS.md)** — Rust modules, 3-resolution compression, provenance, RAG comparison, SDK, LangChain.\n- **[For teams](docs/for-teams.md)** — ROI, security, deployment one-pager.\n- **[Limitations](docs/limitations.md)** — where Entroly helps, where it passes through, and what it does not guarantee.\n- **[Cookbook](cookbook/README.md)** — copy-paste recipes for common workflows.\n- **[Discussions](https://github.com/juyterman1000/entroly/discussions)** · **[Issues](https://github.com/juyterman1000/entroly/issues)**\n\n\u003cp align=\"center\"\u003e\u003csub\u003eApache-2.0 · local-first · no outbound analytics by default\u003c/sub\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003ccode\u003epip install entroly \u0026\u0026 entroly go\u003c/code\u003e\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuyterman1000%2Fentroly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuyterman1000%2Fentroly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuyterman1000%2Fentroly/lists"}