LeanCTX 本地上下文控制
一个本地 Rust 二进制,控制 AI 能看到什么:压缩文件读取与 shell 输出、缓存会话上下文,把 token 消耗降下来。
上下文压缩工具,安装脚本通过 `curl | bash` 从 GitHub 拉取执行,这是常见但需要用户自行信任维护者的安装方式;工具会封装 shell 命令执行。
这个 Skill 能做什么,适合哪些场景?
LeanCTX(lean-ctx)是面向 AI 编码代理的本地上下文工具层,以单个 Rust 二进制运行。它提供多种文件读取模式(从全文到签名、熵过滤)、shell 输出压缩、缓存复读和上下文恢复,让代理少读、读得更准。该 Skill 文档定义了四档工具可见性配置(Lean/minimal/standard/power)、锚点式文件编辑(ctx_read + ctx_patch)以及通过 ctx_call 调用的架构与验证工具。项目采用 Apache-2.0 许可,主打本地优先、无需配置,宣称可节省 60–90% 的 token。
把对文件的读取替换为带模式的 ctx_read(anchored、map、signatures、diff、lines:N-M、aggressive、entropy、task、auto 等),重读走本地缓存(约 13 token);把 git、cargo、npm 等常见命令改为 lean-ctx -c 包装执行以压缩输出;用锚点视图配合 ctx_patch 做精确的按行编辑;提供 ctx_search、ctx_glob、ctx_tree、ctx_session 等工具,以及 ctx_callgraph、ctx_impact、ctx_quality 等架构分析工具和 ctx_verify、ctx_proof 等验证工具。
- 日常用 Cursor/Claude Code 等代理的开发者,在会话中反复重读大文件、token 账单居高不下时,用缓存复读和 map/signatures 模式削减读取成本
- 在 shell 密集型工作流(git、测试、构建)中的团队,用 shell 钩子压缩命令输出,让模型只看到关键信息
- 维护大型代码库(monorepo、50+ 文件)的工程师,用 ctx_impact 评估改动波及面、用 ctx_callgraph 追踪符号调用关系
- 让代理执行精确代码编辑的用户,用 anchored 读取 + ctx_patch 的锚点编辑避免整文件重写
- 关注上下文预算的用户,通过 76 个 MCP 工具的四档可见性配置控制代理能调用哪些工具
这个 Skill 有哪些优点和局限?
- 本地优先,单个 Rust 二进制,无默认遥测,代码不出本机(除非显式开启云同步)
- 读取与 shell 输出双向压缩,缓存复读约 13 token,附带可审计的节省账本与基准测试
- 工具可见性分四档(Lean 到 power),可按客户端能力收窄广告的工具面,降低上下文占用
- 兼容 Cursor、Claude Code、Codex、Gemini CLI 等 30+ 代理,一条 lean-ctx wrap 命令完成接线
- 收益依赖三个条件:窗口掌控程度、上下文生命周期、provider 计价方式;小仓库、少用 shell 时接近盈亏平衡
- 60–90% token 节省与 ~13 token 复读是项目自报的基准数据,具体效果需在自己的仓库用 lean-ctx benchmark 验证
- 多一层工具间接性:代理需学习 ctx_* 工具约定,锚点冲突需重试处理
- README 中 76/79/80/81 个 MCP 工具的数字在不同章节不一致,工具总数以实际版本为准
如何安装这个 Skill?
安装 lean-ctx 二进制:which lean-ctx || curl -fsSL https://raw.githubusercontent.com/yvgude/lean-ctx/main/skills/lean-ctx/scripts/install.sh | bash,然后运行 lean-ctx setup。也可用 brew、npm(lean-ctx-bin)、cargo 或 Pi 安装(见 README)。该 Skill 位于仓库 rust/src/templates/SKILL.md;README 未单独说明该 Skill 文件在 Claude Code 中的放置目录。
如何使用这个 Skill?
设置完成后,按 SKILL.md 用法:用 lean-ctx -c "git status" 代替原始 shell 执行;用 ctx_read(mode="anchored") 读取将要编辑的文件,再用 ctx_patch(path, op, line, hash, new_text) 编辑,旧文本不要逐字节复现,批量用 ops:[…],新建文件用 op=create。锚点过期会返回 CONFLICT 并附新锚点(可重试一次)。完整文档见 https://leanctx.com/docs。
这个 Skill 与同类方案有什么区别?
README 自述定位上,LeanCTX 把自身与请求压缩代理(如 Headroom)归为同一层——若已启用 LeanCTX 的内置代理则无需再叠加 Headroom;官方对比页还列出与 RTK、Context+、MemGPT 的比较。