悬链线
 
停止在冗余文件读取上浪费上下文。
AI编码代理很聪明。瓶颈不是智能,而是I/O。 代理读取的每个文件都会进入一个仅可追加的上下文窗口。每次编辑 创建另一个副本。对单个文件进行三轮读取-编辑验证 三份完整的上下文副本,在后续的每一轮都会重新处理。在一个 典型的会话,这会产生 1000x+放大倍数 你之间 类型以及模型实际处理的内容。
Catenary将暴力文件扫描替换为 图形导航.相反 在读取500行文件以查找类型签名时,代理会询问 直接使用语言服务器——50个令牌,而不是2000个。而不是呻吟 在20个文件中查找定义,一个LSP查询会返回精确的 位置。整个会议期间,背景保持清晰。
运作原理
graph LR
A["AI Assistant
(Claude, Gemini)"] |MCP| B["Catenary
MCP ↔ LSP
Bridge"]
B |LSP| C[rust-analyzer]
B |LSP| D[pyright]
B |LSP| E[gopls]接触网桥梁 主控程序 和 语言服务器协议,给予代理人 与驱动IDE的代码智能相同。它管理多种语言 服务器,按文件类型路由请求,并提供自动帖子编辑 诊断——全部通过单个MCP服务器完成。
快速开始
1.安装
cargo install catenary-mcp2.配置语言服务器
将您的语言服务器添加到 ~/.config/catenary/config.toml:
[language.rust]
command = "rust-analyzer"
[language.python]
command = "pyright-langserver"
args = ["--stdio"]3.连接您的AI助手
插件和扩展注册了钩子和MCP服务器声明,但 不包括二进制文件 --需要上述步骤1。
克劳德代码
/plugin marketplace add TwoWells/Catenary
/plugin install catenary@catenary该插件注册了MCP服务器,并添加了用于后期编辑的钩子 诊断、编辑状态管理和工作区根同步。
Gemini CLI
gemini extensions install https://github.com/TwoWells/Catenary该扩展注册了MCP服务器,并添加了用于后期编辑的钩子 诊断和编辑状态管理。
4.验证
检查你的语言服务器和钩子是否正常工作:
catenary doctorrust rust-analyzer ✓ ready
hover definition references document_symbols search code_actions call_hierarchy
python pyright-langserver ✓ ready
hover definition references document_symbols search
toml taplo - skipped (no matching files)
Hooks:
Claude Code 1.3.6 (directory) ✓ hooks match
Gemini CLI 1.3.6 (linked) ✓ hooks match为何这很重要
| 操作 | 令牌 | 上下文中的副本 |
|---|---|---|
| 读取500行文件 | ~2000 | +1次读取 |
| 重写该文件 | ~2000 | +1(现在有2个副本) |
| 再次阅读以验证 | ~2000 | +1(现在3份) |
| 一个文件的总计 | ~6,000 | 3份 |
| LSP替代方案 | 令牌 | 上下文中的副本 |
|---|---|---|
grep 对于符号+引用 | ~200 | 0(无状态) |
| 本机编辑+钩子诊断 | ~300 | 0(无需重新读取) |
| 总计 | ~500 | 0份 |
上下文中的每个令牌在每次转弯时都会被重新处理。更大的上下文窗口 不要解决这个问题——他们只是让你在碰壁之前浪费更多。
工具
| 工具 | 说明 |
|---|---|
grep | 符号、语义引用和文本匹配 |
glob | 浏览工作区——文件大纲、目录列表、glob匹配 |
start_editing / done_editing | 批量编辑--诊断推迟到您完成之后 |
| hooks | 带有快速修复建议的编辑后LSP诊断 |
完全协议透明度
悬链线记录每一条协议消息——每一个MCP工具调用、每一个LSP 请求和响应,每次钩子调用——发送到本地SQLite数据库。 跑 catenary 打开TUI仪表板并查看消息流 实时或查询历史会话 catenary query.
您可以确切地看到Catenary向您的语言服务器发送了什么以及发送了什么 他们发回。没有什么是隐藏的。
CLI命令
| 命令 | 描述 |
|---|---|
catenary | 启动TUI仪表板 |
catenary monitor | 流式传输会话中的事件 |
catenary list | 列出活动和历史会话 |
catenary query | 查询会话事件(按会话、时间、类型或原始SQL) |
catenary gc | 垃圾回收旧会话数据 |
catenary doctor | 验证语言服务器和挂钩安装 |
已知限制
CLI中的MCP工具显示。 Claude Code和Gemini CLI渲染内置工具 使用干净、专门构建的UI——用于编辑的差异,用于阅读的语法高亮显示。 MCP工具无法做到这一点。Catenary的工具调用显示了原始转义的JSON 审批提示。这是主机CLI的限制,而不是Catenary可以做到的 修复——MCP工具需要与内置工具相同的显示处理。
文件I/O使用主机的本机工具(具有完整的差异/高亮用户体验)和 接触网通过以下方式提供诊断 PostToolUse 钩子。
文档
完整文档请访问 ****
许可证
AGPL-3.0或更高版本 --请参阅 许可证 了解详情。
商业许可 可用于专有用途——请参阅 许可电子商务.联系方式 contact@markwells.dev.
