One Rust binary controls two paths into the model
LeanCTX v3.10.0 combines a local MCP server, shell hooks, session memory, a repository graph, cost records, and an optional request proxy. The MCP and shell path changes what a coding agent reads from files and commands. The proxy path can change the full request sent to OpenAI, Anthropic, or Gemini. That is a much wider job than trimming a long log, and it gives one program influence over most of an agent's working context.
Our commit 8910171 checkout makes that breadth visible: 3,712 files, roughly 783,861 lines of source, and 50.1 MB before the build. LeanCTX can cache reads, select file views, search code, remember sessions, track budgets, and expose a dashboard. Those parts may replace several smaller utilities for a frequent agent user. They also create more behavior to verify before the binary sits between a team and its repositories.
Recovery is the condition that makes compression acceptable
LeanCTX v3.10.0 documents several ways to retrieve original material after a shorter view is returned. Handles, explicit read modes, and reference endpoints are meant to let an agent fetch omitted bytes when the detail matters. That contract deserves more attention than any savings percentage in the README. A coding tool must know when context is absent and be able to recover it before editing, reviewing, or reporting a result.
Open issue 1648 shows one current reason to check that contract. On LeanCTX 3.9.17, a compressed multi-file ctx_grep request reportedly turned 40 real matches into 160 and removed every requested context line. The reporter supplies a reproduction and says narrowing the path or using plain grep avoids the faulty path. That report concerns an older version than our commit 8910171, so test it on the exact release you plan to deploy.
What happened when we ran it
Our sandbox installed 492 packages in 59 seconds, then built the Rust project under ./rust/ in 537 seconds. Tests ran for another 196 seconds and failed with exit 101. The provided tail contains a clipped Rust linker invocation ending among tree-sitter libraries, followed by no test summary. It does not name a failing test, compiler diagnostic, or missing system package, so the only defensible finding is that the command did not pass.
The measured checkout had 3,712 files, about 783,861 source lines, and occupied 50.1 MB. We ran commit 8910171 in an unprivileged Debian container with 3 CPUs, 12 GB of RAM, and no secrets. The repository had 14 CI workflow files and a tests directory, but no Dockerfile. Those are useful coverage and packaging signals; they do not turn our failed test command into a pass or explain its cause.
Wrap changes agent registration, hooks, and a daemon
The documented lean-ctx wrap <agent> command registers the MCP server, installs shell and agent hooks, starts the daemon, and verifies the connection. That is convenient for an individual trial, though it changes state outside the checked-out repository. The README also documents unwrap, a current-shell off switch, a raw-command path, and agent-only shell activation. Use those controls deliberately, and record the original agent configuration before wrapping it.
A packaged binary avoids the 537-second source build we measured, with shell, Homebrew, npm, and Cargo routes documented. The core MCP and shell features run locally with telemetry disabled by default. Provider traffic still follows the service used by the agent, and the optional request proxy sits directly on that path. Cloud sync is another opt-in boundary. Teams handling private code should inspect both settings before assuming that local state means every byte stays local.
September activity is strong, while source confidence is incomplete
GitHub recorded a push on September 1, 2026, and release v3.10.0 was published on August 29. The repository had 3,694 stars when fetched. A separate GitHub search found 9 open issues and 0 open pull requests, including issue 1648 filed and answered on September 1. That mix shows current maintenance and prompt response to a detailed bug report. It cannot substitute for reproducing the affected search path or passing the source tests.
Release v3.10.0 also draws useful boundaries: its Rust embedding work is preview material, not a stable public SDK, and the release does not add a hosted service. Those statements help competent buyers walk away early if they need an embeddable contract or managed control plane. For everyone else, the failed exit 101 remains the larger caution because the supplied tail is too thin to separate a project defect from an undocumented environment requirement.
Context Mode and Headroom cover narrower parts of the job
Context Mode keeps large tool results in local SQLite and returns selected material through MCP. Headroom concentrates on compression through libraries, a proxy, and MCP. Repomix prepares a static repository bundle without requiring a long-running daemon or session store. Each alternative gives up part of LeanCTX's combined graph, memory, shell, and cost-accounting surface, which can be an advantage when the missing part is outside your requirement.
LeanCTX earns a trial when repeated context loss is already costing time in a large codebase, and when one owner can inspect what the layer removes. Our 59-second install shows that obtaining its 492 packages is manageable; the 537-second build and 196-second failed test run make source adoption a more serious commitment. Start with one disposable profile and a representative repository. Keep it only if recovered source stays exact and the accepted work improves on your own tasks.

