lean-ctx
AI编程工具的上下文过滤器:通过压缩/缓存/路由,让每次文件读取和shell命令只传递有效token
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
AI编程工具的上下文过滤器:通过压缩/缓存/路由,让每次文件读取和shell命令只传递有效token
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
在 Cursor 里敲完一个函数,让 AI 帮你重构。它读了你刚才写的 auth.ts,顺便把 node_modules 里 8000 行依赖也扫了一遍,context window 被噪声填满,账单悄悄涨了 30%。这就是当下 AI 编程工具的常态——65% 的文件读取是重复读取,每个 token 都在烧你的钱。
LeanCTX 想解决的就是这个问题:它是一个运行在本地的 Rust 二进制工具,在 AI 的每一次文件读取和 shell 命令之前,先「过一遍脑子」——只让真正重要的 token 到达模型,其他的一律压缩、缓存或直接丢弃。
这个项目的诞生背景很真实:作者在日常使用 Claude Code、Cursor 等 AI 编程工具时,发现 token 消耗速度远超预期。每一次 git status、每一次 npm install、每一次 TypeScript 类型检查,都会往 context 里塞大量冗余信息,而这些信息 AI 其实只需要一个摘要就够了。
2026 年 3 月底项目开源,不到三个月积累了 2500+ GitHub Stars,说明这个痛点不是个案——几乎所有使用 AI 编程工具的开发者都在面临同样的问题:token 有限,钱包也有限。
LeanCTX 的核心不是简单的文本压缩,而是一套叫做 Token Dense Dialect(TDD) 的信息密度协议。打个比方:传统做法是把一本《新华字典》完整地交给 AI,让它自己去找字;而 LeanCTX 做的是,把字典变成一张部首索引表——AI 看到的不是文字,而是「去哪里找什么」的指令。
具体来说,这套协议包含以下几层:
Shell 输出压缩(75+ 模式):git status 原本输出 612 tokens,LeanCTX 压缩成 78 tokens;npm install 从 847 tokens 压到 24 tokens;Cargo 构建日志从 5000 tokens 压到 1000 tokens。背后是 56 个独立的 shell 模式模块,覆盖 git、npm、cargo、docker、kubectl、gh、pip、ruff、vitest、terraform 等主流工具。
文件读取路由(10 种模式):ctx_read 命令支持 6 种核心读取模式——full(完整内容)、map(依赖关系图)、signatures(仅 AST 签名)、diff(增量差异)、aggressive(最大压缩)、entropy(低熵行过滤)。以 TypeScript 文件为例,用 signatures 模式读取 2536 tokens 的文件,只产生 252 tokens 的输出,保留了所有函数签名和类型定义。
Tree-sitter AST 签名:内置对 18 种编程语言的语法树解析支持,包括 Rust、TypeScript、Python、Go、Java、C/C++、Ruby、C#、Kotlin、Swift、PHP、Bash、Dart、Scala、Elixir、Zig 和 Godot GDScript。使用 tree-sitter 精确提取函数签名、类定义和导入关系,比正则表达式更可靠。
LeanCTX 不是一个简单的 CLI 脚本,而是一套完整的**上下文运行时(Context Runtime)**系统。整个系统由 Rust 实现,单个二进制文件包含六大组件:
Shell Hook:通过 ~/.zshenv 劫持 shell 命令,自动对 git、npm、cargo 等高频命令的输出做压缩。用户无感知,AI 收到的是处理后的干净输出。
MCP Server:作为 Model Context Protocol 服务器运行,提供 10 个工具供 AI 调用(ctx_read、ctx_multi_read、ctx_shell、ctx_tree、ctx_compress、ctx_analyze、ctx_benchmark、ctx_metrics、ctx_search、ctx_cache)。支持 stdio 和 HTTP 两种传输方式,HTTP 模式特别适合远程部署或多客户端共享。
Team Server:团队协作版本,支持多工作区、认证授权、作用域控制和审计日志,适合团队共享同一个 LeanCTX 实例。
Read Pipeline:10 种读取模式的实现核心,根据文件类型和任务类型动态选择最佳读取策略。
Shell Pattern Engine:56 个压缩模式的执行引擎,每个模式都经过基准测试优化(benchmark 目录有完整测试数据)。
Pre/Post Pipeline:在 AI 请求前做路由决策(role guard、workflow gate、loop detect、budget gate),在 AI 响应后做存档、翻译和验证。
LeanCTX 在 BENCHMARKS.md 中提供了详尽的基准测试数据,覆盖 TypeScript、Python、Go、Rust 等多种语言和多种场景:
以一个典型的 Cursor/Claude Code 编程会话为例,压缩效果如下:文件重复读取节省 80-85%,npm/cargo 构建输出节省 80%,TypeScript 类型错误输出节省 89%,整个会话 checkpoint 节省 97%。综合下来,token 消耗降低 60-95%,部分极端场景(如 AI 反复读取同一文件)可达 99%。
从成本角度看,如果一个开发者每月在 AI 编程工具上花费 $50,使用 LeanCTX 后这笔费用可能降至 $5-20。具体节省多少取决于项目规模和使用场景——代码库越大、交互越频繁,节省比例越高。
LeanCTX 的安装体验设计得很友好。官方提供一行命令安装(需要 Git):
curl -fsSL https://leanctx.com/install.sh | sh
也可以通过 crates.io、npm 包、Arch Linux AUR 等渠道安装。安装完成后运行 lean-ctx onboard,工具会自动检测当前环境中的 AI 编程工具(Cursor、Claude Code、Copilot、Windsurf、Codex 等),一键配置 MCP 和 shell hooks。整个过程不超过 60 秒。
如果想验证安装是否正确,运行 lean-ctx doctor,工具会检查各组件的连接状态并给出诊断报告。
首次使用时,LeanCTX 提供了三种演示动画(在 GitHub README 中可以找到对应的 asciicast tape 文件):Map-mode 文件读取 + git 压缩输出演示、实时 gain 仪表盘(显示 token 和美元节省)、benchmark 报告(按语言和模式分组)。
LeanCTX 不是银弹,有几个明显的局限性值得了解:
信息丢失风险:压缩是有损操作。如果 AI 依赖的是代码中的注释、字符串常量或非标准命名,压缩后的签名可能遗漏关键信息。项目中包含 Edit Safety 模块(ctx_edit、TOCTOU guard、path jail)来防止压缩导致误操作,但使用者仍需理解自己让渡了多少控制权。
非 Web UI:LeanCTX 是一款纯 CLI 工具,没有图形界面。虽然 lean-ctx gain 命令提供了 ASCII 风格的实时仪表盘,但习惯 GUI 的用户可能需要适应一段时间。对于不熟悉命令行的团队成员,推广成本不低。
隐私换效率:LeanCTX 的 Team Server 支持将上下文数据存储在远程服务器上(PostgreSQL + JWT 认证)。虽然数据是本地优先的,但团队协作场景下,部分上下文数据会离开本地机器。需要评估内部合规要求是否允许。
学习曲线:75+ shell 压缩模式和 10 种读取模式不是开箱即用的。官方文档虽然详尽(docs/ 目录包含大量指南和参考文档),但真正用好这个工具,需要理解「信息熵」「token 成本」等概念,并针对自己的项目调整压缩策略。
LeanCTX 的出现,折射出一个更大的趋势:上下文工程(Context Engineering)正在成为 AI 应用的新战场。如果说 2023-2024 年的主旋律是 Prompt Engineering(调教 AI 说什么),那么 2025 年开始,焦点正在转向如何管理 AI 收到的输入——如何让有限 context window 发挥最大价值。
这个赛道上已经出现了多个方向:RAG(检索增强生成)解决「知识不足」的问题,LeanCTX 解决「噪声过多」的问题,Memory 系统(如langchain、autogen 内置的记忆模块)解决「历史遗忘」的问题。LeanCTX 的独特价值在于它的本地优先和零侵入——不需要改造 AI 工具本身,不需要联网,不需要信任第三方服务。
从增长曲线看,LeanCTX 三个月达到 2500+ Stars,已经展示了清晰的开发者需求。随着 Claude Code、Cursor、Windsurf 等工具的用户规模持续扩大,这类上下文优化工具的市场空间会进一步扩大。