AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
LeanCTX — Context Intelligence for AI systems.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
██╗ ███████╗ █████╗ ███╗ ██╗ ██████╗████████╗██╗ ██╗
██║ ██╔════╝██╔══██╗████╗ ██║ ██╔════╝╚══██╔══╝╚██╗██╔╝
██║ █████╗ ███████║██╔██╗ ██║ ██║ ██║ ╚███╔╝
██║ ██╔══╝ ██╔══██║██║╚██╗██║ ██║ ██║ ██╔██╗
███████╗███████╗██║ ██║██║ ╚████║ ╚██████╗ ██║ ██╔╝ ██╗
╚══════╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝
Control what your AI can see.
LeanCTX — AI Value Gate for AI Coding AgentsREADME 전문 보기 ↗Context Gateway for AI Systems.
LeanCTX sits between AI tools and the information they read. It selects task-relevant context, applies supported access and content controls before delivery, and records the context operations and delivery evidence it can observe. Your application, agent loop and model stay yours.
The open-source LeanCTX Engine runs locally through CLI, MCP, hooks and proxy paths. The LeanCTX SDK embeds supported Engine capabilities in your application.
Files · repositories · tool results · configured providers
│
▼
LeanCTX Context Gateway
Select · Control · Learn · Prove
│
▼
Your AI application / agent
│
▼
Your model
For coding workflows, start with Claude Code, Cursor or Codex. The installation matrix distinguishes first-class paths from other compatibility references.
| Your work | Start here |
|---|---|
| Improve the context path of existing AI tools | Community setup |
| Apply shared context controls across an organization | Enterprise — licensed controls and deployment scope |
| Build context control into your application | LeanCTX SDK — stable interfaces and separate SDK/OEM terms |
What is LeanCTX? · Where LeanCTX fits · Architecture
lean-ctx setup.The Engine puts Select, Control, Learn and Prove into the context paths of your existing AI tools. Your host keeps control of the task, agent loop and model.
Search and structural views help an agent find relevant information before reading entire files. Supported read and shell paths can return focused views of files and command output, with references for recovering detail.
full, map, signatures, diff, lines:N-M, density:X, …) — eligible cached re-reads return a compact reference instead of repeating contentdensity:0.4): SDE-style budget compression — keeps the highest-entropy lines until ~40% of the original tokens remain, deterministicsignatures carries line spans and points at lines:N-M for targeted expansion — outline first, bodies on demandctx_expand or the reference API. Recovery depends on permissions, retention and the source remaining available. Read modes and detail →Review the security policy for defaults, supported controls and coverage limits. A filesystem boundary is not an operating-system sandbox.
Keep useful task records and discover relationships between code and local knowledge. Learning here means context continuity; it does not train your model.
.ctxpkg export is described under Research below.Inspect source references, recorded policy decisions and delivery evidence from
supported paths. lean-ctx inspect explains observed context operations. A
context-only integration records its prepared result; it cannot prove a later
model call made by the host.
lean-ctx cockpit): local browser view with token tracking, compression stats, spend and recorded callsctx_proof, ctx_verify): exportable audit trail (verifier, SLO, pipeline and provenance records) plus runtime-checked policy claims (PathJail per touched file, budget)Context controls and evidence come first. Usage estimates and calculated costs help you assess their operational effect; they do not prove answer quality.
Shadow Mode estimates what the same work would have cost without LeanCTX, without changing the active workflow. The baseline is simulated from the uncompressed token counts and the same outcome signals, not a second measured run, so its reports estimate cost, tokens and CPAO deltas; they do not measure answer quality.
LeanCTX records local cost and outcome signals without adding those reports to agent context. CPAO (cost per accepted outcome) is one comparison metric; Shadow Mode provides simulated savings estimates. Keep estimates, provider-measured usage and outcome quality separate.
lean-ctx savings --period week # costs, token savings, and CPAO
lean-ctx value-report --format markdown --last 20 # recent outcome quality
lean-ctx shadow --latest # latest baseline comparison
# Enable shadow mode for savings comparison
lean-ctx config set shadow.enabled true
# After using LeanCTX for a while:
lean-ctx savings
lean-ctx shadow --latest
ctx_url_read): pull a public web page, PDF, or YouTube transcript into context as compressed, citation-backed text — facts/quotes return claims with a confidence score + source URL, relevance-ranked research-compression distils to a token budget, SSRF-guarded (http/https only)ctx_patch op=replace_symbol edits a whole symbol body and ctx_callgraph finds references, through rust-analyzer, typescript-language-server, pylsp or goplsctx_agent, ctx_handoff): experimental local agent handoff with context transfer bundles, diary system, and shared state; not a hosted or generally available team servicectx_expand search_all): FTS5-powered cross-archive search over all previously archived tool outputslean-ctx pack --pr builds a PR-ready context pack (changed files, related tests, impact, artifacts)lean-ctx pack create bundles local Knowledge, Graph and Session state into .ctxpkg files with SHA-256 integrity; this is experimental local packaging, not a generally available Context Kits or hosted sharing productlean-ctx snapshot create|list|show|verify|restore|publish|import handles git-anchored, signed local snapshots and file-based sharing; dashboard replay and restore are experimental, and hosted history or a hosted registry is not a generally available product (concept →)lean-ctx cockpit shows local activity and recorded context metrics (Savings · Spend · Report · Proof, recorded calls in the Ledger); lean-ctx gain is the terminal summary (--json for scripts), and gain --svg/--share creates a shareable card or self-hostable pagelean-ctx savings is a local per-event ledger with tokenizer transparency, bounce-netting and a tamper-evident SHA-256 chain; provider-measured savings require the proxy's counterfactual holdoutAddon manifests and gateway integration remain experimental Research interfaces.
Local addon release|add|list commands handle signed packages; they do not
provide a public marketplace, hosted registry, managed distribution or addon search. A package can carry a sandboxed WASM module or an [mcp] declaration
for an external server.
lean-ctx addon release ./my-addon # build a signed .ctxpkg — no artifact host, no CI
lean-ctx addon add ./my-addon-1.0.0.ctxpkg # verify, disclose, ask, install
lean-ctx addon list # what's installed, what loads, what's wired
add re-checks the signature on your
machine rather than trusting its source, checks every module against its
pinned SHA-256, prints the publisher key and the exact command any declared
server would run, and only then prompts.uv tool install, no
npx. Fetching a declared tool stays your step, where your own package
manager's trust model applies. The manifest says how to run it.ctx_expand handle, index into BM25 / graph / knowledge. A typed integration routes specific tools straight into ctx_expand, ctx_callgraph and ctx_knowledge.The local workflow verifies signatures and module hashes, shows the publisher
key and declared command before installation, and never installs the external
server. Opt-in post-processing can send addon results through compression,
ctx_expand, BM25, graph and knowledge. Results remain untrusted; configured
secret scrubbing does not cover every possible secret. See the
status-qualified addon guide for the boundary.
LeanCTX remains the Context Gateway for AI Systems. These research directions extend its context capabilities; they are not supported product commitments.
The full roadmap lives in VISION.md.
LeanCTX works on two planes — what your agents read and what they send to the model:
read path: AI tool → (MCP tools + shell) → lean-ctx → your repo + CLI
wire path: AI tool → lean-ctx proxy → model provider (supported, configured requests)
ctx_* tools (read modes, caching, deltas, search, memory, multi-agent)lean-ctx proxy enable routes supported requests through a local proxy. Configured transformations can reduce eligible prompt, history and tool-result content while respecting supported provider-cache boundaries. Provider-specific effort mapping (proxy.effort), verbosity controls and volatile-prefix handling have their own compatibility limits. Recovery requires retained, authorized artifacts; usage and cost evidence depend on the provider data the path observes.lean-ctx cockpit): local browser view for inspecting context activity and records visible to LeanCTX# 1) Install (pick one)
curl -fsSL https://leanctx.com/install.sh | sh # universal (no Rust needed)
brew tap yvgude/lean-ctx && brew install lean-ctx # macOS / Linux
npm install -g lean-ctx-bin # Node.js
cargo install lean-ctx # Rust
# 2) One-command setup for your agent
lean-ctx wrap cursor # or: wrap claude / wrap codex
# Inspect recorded context metrics after your AI's first lean-ctx call.
lean-ctx cockpit # Savings · Spend · Report · Proof in the browser (also: lean-ctx dashboard)
lean-ctx gain --terminal # the same numbers as a terminal summary (--json for scripts)
lean-ctx cockpit stop # stop the background Cockpit server (--foreground keeps it in the terminal)
lean-ctx wrap registers the MCP server and configures the supported local
transport for that agent. Undo anytime with lean-ctx unwrap cursor.
Claude Pro/Max: subscription OAuth cannot use a custom
ANTHROPIC_BASE_URL.lean-ctx wrap claudetherefore adds no proxy redirect while enabling thectx_*tools and shell-output compression; an existing custom endpoint remains untouched. Claude wire-level request compression requiresANTHROPIC_API_KEY. See advanced proxy setup.
lean-ctx onboard # connect all detected AI tools (zero prompts)
lean-ctx setup # interactive wizard with every option
Building from source on Windows? Clone the repo and run ./install.ps1 in PowerShell — it builds the release binary and installs it into Cargo's bin directory (pass -BuildOnly to build without installing).
The current release workflow signs new Windows binaries as Thinkery AG, including the binaries inside ZIP archives and Python companion wheels. Earlier releases may still contain unsigned executables. Signing does not guarantee acceptance by every Windows security policy.
If Windows blocks an older unsigned download, use WSL or build locally with
cargo install lean-ctx; do not disable system-wide security protections for
this tool. Windows-side MCP clients can launch the WSL installation with
wsl lean-ctx mcp.
See Windows signing and verification and #1820 for verification status.
lean-ctx-offlean-ctx -c --raw "git status"shell_activation = "agents-only" in ~/.config/lean-ctx/config.toml.lean-ctx.toml in your project root (auto-merged with global config)/workspace: create .lean-ctx-id with a unique name to prevent context collisionslean-ctx updatelean-ctx doctor --jsonLeanCTX grows with you. Below are the journeys most people actually take — each links to a complete, function-by-function walkthrough in the Reference (every CLI command and the complete MCP tools are documented there).
"I just installed it — now what?"
lean-ctx wrap cursor # one-command setup for your agent
lean-ctx doctor # confirm you're wired up
wrap configures the supported integration; doctor checks the resulting setup.
→ Journey 1 — Setup & Onboarding
"Stop re-reading the same files."
lean-ctx read src/server.rs -m map # API surface, ~13 tok on re-read
lean-ctx -c "git status" # compressed shell output
Your agent reads less and searches smarter — automatically. → Journey 2 — Daily Use
"My new chat forgot everything."
lean-ctx overview # task-aware project recap
lean-ctx knowledge recall "auth" # facts that survive resets
lean-ctx knowledge consolidate # import session + compact lifecycle
lean-ctx knowledge consolidate --all # compact every project store
Session memory + a project knowledge graph persist across chats. → Journey 3 — Memory & Knowledge
"Where does this function ripple to?"
lean-ctx graph impact src/auth.rs # blast radius
lean-ctx smells scan # code-smell hotspots
A multi-edge property graph powers impact analysis + ranked search. → Journey 4 — Code Intelligence
"Pull in GitHub issues and our Postgres schema."
lean-ctx provider list
lean-ctx serve --root ./api --root ./web # multi-repo
External data flows through the same consolidation pipeline. → Journey 5 — Advanced & Integrations
"Update, fix, or cleanly remove."
lean-ctx doctor --fix
lean-ctx update
Self-healing diagnostics; surgical uninstall that only removes its own blocks. → Journey 6 — Lifecycle & Troubleshooting
"Budget my context like a pro."
lean-ctx plan "refactor billing" --budget 8000
lean-ctx compile --mode balanced
Phi-scored planning + knapsack compilation + a context ledger. → Journey 7 — Context Engineering
"Planner + coder + reviewer on one repo."
ctx_agent action=register role=dev
ctx_handoff action=create # baton-pass with full context
Shared message bus, diaries, knowledge, and deterministic handoffs. → Journey 8 — Multi-Agent Collaboration
"The same engine, headless in pipelines."
lean-ctx bootstrap # zero-prompt CI setup
Everything local works without an account. LeanCTX Hive (shared knowledge for teams and your own machines) follows with 3.12.1.
"Make it behave exactly how we want."
lean-ctx compression standard
lean-ctx harden # enforce token discipline
Compression levels, tool profiles, themes, and rules governance. → Journey 10 — Customization & Governance
"Show me the numbers."
lean-ctx cockpit # Savings · Spend · Report · Proof in the browser
lean-ctx gain --deep --terminal # terminal: savings, cost, per-agent, heatmap (--json for scripts)
lean-ctx gain --svg # shareable recap card (also: gain --share / gain --wrapped)
lean-ctx savings # verified per-event ledger (auditable; savings verify)
All analytics live in the Cockpit and the CLI — never burning agent tokens. → Journey 11 — Analytics & Insights
"I want to read everything."
Every command and the generated MCP registry, organized as user journeys, plus appendices for the CLI map, MCP tools, and paths & config. → Reference index
LeanCTX provides an MCP server. Client support depends on transport, tool handling, and configuration; the matrix below records the integration scope. Two integration modes are selected for supported agents:
| Mode | How it works | Best for |
|---|---|---|
| Hybrid | MCP for cached reads and references + shell hooks for command compression | Agents with shell access (Cursor, Claude Code, Codex, ...) |
| MCP | Complete tool set via MCP protocol, no shell hooks | Protocol-only agents (JetBrains, VS Code, Zed, ...) |
| Agent | Hybrid | MCP | Setup |
|---|---|---|---|
| Cursor | ● | lean-ctx init --agent cursor | |
| Claude Code | ● | lean-ctx init --agent claude | |
| CodeBuddy | ● | lean-ctx init --agent codebuddy | |
| Augment CLI / VS Code | ● | lean-ctx init --agent augment | |
| Codex CLI | ● | lean-ctx init --agent codex | |
| Grok | ● | lean-ctx init --agent grok | |
| Gemini CLI | ● | lean-ctx init --agent gemini | |
| Windsurf | ● | lean-ctx init --agent windsurf | |
| GitHub Copilot | ● | lean-ctx init --agent copilot | |
| CRUSH | ● | lean-ctx init --agent crush | |
| Hermes | ● | lean-ctx init --agent hermes | |
| OpenCode | ● | lean-ctx init --agent opencode | |
| Pi | ● | lean-ctx init --agent pi | |
| Qoder | ● | lean-ctx init --agent qoder | |
| Amp | ● | lean-ctx init --agent amp | |
| Cline | ● | lean-ctx init --agent cline |
MCP clients need compatible transport, tool support, and configuration. The table lists setup targets; the client constraints distinguish verified integrations from generic compatibility.
Great fit if you...
Skip it if you...
--raw, but ROI is lower)The honest fine print: the payoff depends on three levers — reach (own the
window via the proxy/engine, not just the ctx_* tool layer), context
lifetime (one long-lived session vs. a fresh process per phase), and
provider pricing (prompt-cache-priced vs. re-billed every turn). They stack
into a clear win where they line up and net to break-even where they don't.
See the win vs. break-even matrix
for the full breakdown and how to tune for each case.
Try these in any repo:
lean-ctx read rust/src/server/mod.rs -m map
lean-ctx -c "git log -n 5 --oneline"
lean-ctx gain # terminal summary
lean-ctx cockpit # Savings · Spend · Report · Proof (browser)
lean-ctx benchmark report .
demo/vhs demo/leanctx.tape
vhs demo/gain.tape
vhs demo/benchmark.tape
Measurements and estimates require a declared workload and method. The earlier per-read-mode
compression table (map / signatures over 50 files) is withdrawn along
with the other historical figures in BENCHMARKS.md; measure
your own repository with lean-ctx benchmark report . instead. Cache references
can reduce repeated context; their token cost depends on the emitted result and tokenizer.
Measure the Engine's own advertised schema, instruction, and briefing overhead
with lean-ctx doctor overhead --gate. The deterministic
lean-ctx benchmark dual-arm --json replay reports a synthetic upper bound:
its baseline never uses the provider's prompt cache, while agent hosts can cache
the prefix with or without LeanCTX. It is not a provider invoice, an on/off
comparison or an outcome-quality evaluation. Available comparison methods include
the lean-ctx eval ab subcommand (requires a suite file via --suite), the
injected-context footprint comparison in lean-ctx eval footprint (requires a
suite via --suite and a baseline via --compare), and the proxy's opt-in compression holdout
([proxy] compression_holdout).
Accuracy is gated, within stated limits. A model-free A/B gate checks that the JSON
crusher keeps every gold answer in its fixtures while cutting tokens, and proxy
rewrites preserve stable output for prompt-cache eligibility under the same inputs and settings.
Actual cache hits, prices, and discounts depend on the provider. The off-vs-on testbench (lean-ctx eval testbench)
runs pinned real repos through a raw-dump baseline and through lean-ctx at an
identical token budget, grades free-form QA with an LLM judge and code with each
repo's own tests, and emits FINDINGS.md (tokens / turns / walltime / quality) plus a
regressions file. What CI replays is a small committed recording: it is a
mechanism gate (it catches a broken pipeline or a changed grade), not evidence
that compression preserves answer quality. Every eval report states its evidence
tier (A mechanism … E production); a run below 30 paired tasks is
UNDERPOWERED and fails --gate unless run as an explicit --mechanism check — see
context-quality-v1.
A powered with/without quality study has not been run yet; the proxy's
compression holdout measures prompt size on real traffic and reports answer
quality as unknown. What each number can and cannot show, per data path:
measurement scope.
lean-ctx benchmark report .lean-ctx telemetry status to see the effective setting and lean-ctx telemetry show to inspect the payload; lean-ctx telemetry disable turns reporting off.update_check_disabled = true or LEAN_CTX_NO_UPDATE_CHECK=1)See SECURITY.md.
One command removes everything — it stops all processes, then deletes hooks, editor configs, rules, autostart (LaunchAgent/systemd), the data dir, and the binary itself:
lean-ctx uninstall # full clean removal
lean-ctx uninstall --dry-run # preview every change, write nothing
lean-ctx uninstall --keep-config # keep MCP configs + rules (for reinstall)
lean-ctx-off # or just disable for the current shell session
No binary on PATH (or you used the curl installer)? Run the same removal from the installer:
curl -fsSL https://leanctx.com/install.sh | sh -s -- --uninstall
If you installed via a package manager, uninstall removes everything it wrote and
tells you the one command to finish removing the binary:
brew uninstall lean-ctx # Homebrew
cargo uninstall lean-ctx # cargo install
npm uninstall -g lean-ctx-bin # npm
Start with CONTRIBUTING.md. Easy first PR: propose a new CLI compression pattern via the issue template.
The LeanCTX Engine and its open interfaces (rust/, packages/, docs/,
scripts/) are Apache-2.0. LICENSE.md and
LICENSE_MATRIX.toml are the path-level authority for
that Apache host.
The consolidated development tree also carries sdk/ (client bindings) and
ee/ (commercial Runtime, Suite and services) next to the host. Both keep
their own existing terms, are not Apache-2.0 and are not approved for
publication; the host-only mirror contains neither directory. Their presence
in one checkout relicenses nothing. SOURCE_LAYOUT.md lists
each path with its current terms.
lean-ctx serve/v1/tools/call| Roo Code | ● | lean-ctx init --agent roo |
| Kiro | ● | lean-ctx init --agent kiro |
| Antigravity | ● | lean-ctx init --agent antigravity |
| Amazon Q | ● | lean-ctx init --agent amazonq |
| Qwen | ● | lean-ctx init --agent qwen |
| Trae | ● | lean-ctx init --agent trae |
| Verdent | ● | lean-ctx init --agent verdent |
| Aider | ● | lean-ctx init --agent aider |
| Mistral Vibe | ● | lean-ctx init --agent vibe |
| Continue | ● | lean-ctx init --agent continue |
| JetBrains IDEs | ● | lean-ctx init --agent jetbrains |
| QoderWork | ● | lean-ctx init --agent qoderwork |
| VS Code | ● | lean-ctx init --agent vscode |
| Zed | ● | lean-ctx init --agent zed |
| Neovim | ● | lean-ctx init --agent neovim |
| Emacs | ● | lean-ctx init --agent emacs |
| Sublime Text | ● | lean-ctx init --agent sublime |