这个项目能做什么
ctx 是一个开放、本地、快速的 CLI 工具链,面向编码代理的上下文工程。它会索引你机器上已由 Claude Code、Codex、Cursor、Pi 和 Gemini CLI 等工具存储的历史记录,将各提供商特有的日志转换为一致的本地记录,涵盖会话、消息、工具调用、关系和仓库活动。代理随后可以用 `ctx search` 搜索这些历史,用 `ctx show` 查看确切事件或完整转录,并用 `ctx locate` 定位源代码位置。搜索默认使用 BM25 词法匹配,也可通过 `ctx semantic enable` 启用可选的本地语义搜索。
一个关键功能是 `ctx blame`,它像 git blame 一样工作,但会把已提交的代码归因到产生它的代理会话,并引用回原始转录和工具调用。它可以从文件与行范围、提交或拉取请求开始,帮助代理恢复代码中已不可见的约束、决策、失败方法和假设。
`ctx graph` 提供代码库映射和影响分析。它是一个受 Graphify 启发的独立 Rust 实现,将图存储在 SQLite 中,因此搜索会直接查询数据库,更新也只触及变更文件。该项目报告称,在大型仓库上其搜索和更新性能显著快于 Graphify,同时保持与现有 `.graf/index.db` 数据库的兼容性。
`ctx sift` 会在嘈杂的工具输出到达编码代理之前对其进行精简,保持原始命令不变,并减少在重复路径、日志和格式上花费的 token。普通压缩在本地运行,可选的原始内容保留允许通过 `ctx sift recall` 恢复完整捕获的输出。
历史索引在本地运行,不需要钩子或代理进程内代码。自动索引会让本地索引保持最新,更新只有在完成后才会可见。该项目还包括对历史备份或通过自控 ctx 服务器共享选定会话的 beta 支持,共享为选择加入。文档中提供了 TypeScript、Python、Rust、Go、JVM、Swift 和 .NET 的 SDK,自定义历史插件可以适配不受支持的代理格式。
评论
0 人表达喜爱 · 满10人后显示 Deer Point
登录后参与讨论。