tgrep Vibe 项目

微软开源三元组索引代码搜索,比 ripgrep 最快 51.9 倍

项目简介

tgrep 是微软开源的三元组索引(trigram)代码搜索工具,采用客户端/服务器架构,在大型代码仓库本地执行极速正则搜索。它已被集成进 GitHub Copilot CLI,为 AI 编程智能体提供跨大仓库的快速 grep 能力,仓库还附带面向编码智能体的 AGENTS.md 与 MCP 搜索工具安装脚本。

核心功能

  1. 客户端/服务器架构:tgrep serve . 启动服务端并按需建索引,另一终端 tgrep -- "fn main" . 自动连接搜索,tgrep status . 查看索引状态。
  2. 三元组索引加速:查询先用 trigram 把范围收敛到可能命中的文件,再并行用正则引擎逐个验证;无有效 trigram 时回退全索引扫描。
  3. 离线索引模式:tgrep index . 构建磁盘索引,搜索按"服务端→本地索引→文件系统"三级回退,--no-index 强制读当前文件。
  4. 智能体集成:运行 bash install-agent.sh(Linux/macOS,Python 3.11+)可为 Codex 或 pi 安装 MCP 搜索工具与启动钩子。
  5. 索引策略可调:默认外部归并排序、64 MiB 缓冲,--index-strategy=memory 支持全内存构建;每次构建报告耗时与峰值内存。
  6. 兼容 ripgrep 忽略规则:支持 .gitignore、--no-require-git、--max-filesize、--exclude 等过滤项,服务端异步刷新,--watch-mode poll 提供轮询回退。

技术实现

tgrep 的核心是一层三元组倒排索引。构建阶段把仓库文件切块、抽取 trigram 生成 posting 列表,默认用外部归并排序写盘(64 MiB 缓冲,写满即落盘分段再归并),把常驻内存在有界水平,--max-filesize 控制文件准入。查询阶段先用 trigram 与 posting 列表求交收敛候选,再由并行 worker 用正则引擎精确验证——官方 2026 年 8 月基准中,18 组"仓库×平台"组合有 17 组快于 ripgrep,加速比 0.93x 至 51.9x(口径为索引就绪后的搜索延迟,不含建索引时间)。服务端常驻后异步跟进文件系统变化,启动时做对账,索引落后时用 --no-index 保证读到最新内容。

快速上手

  1. 按仓库 Installation 章节安装 tgrep,准备一个大仓库目录;
  2. 执行 tgrep serve . 启动服务端,首次运行自动建索引并前台常驻;
  3. 另开终端执行 tgrep -- "pattern" . 搜索,tgrep status . 查看进度;
  4. 不想常驻服务端就执行 tgrep index . 建离线索引,之后自动走本地索引;
  5. 给编码智能体接入:检出仓库后运行 bash install-agent.sh,按 scripts/agent/README.md 指南完成配置。

适用人群

被 grep 拖慢的大型仓库开发者、为编码智能体寻找快速检索工具的 Agent 开发者、需要为 AI 编程 CLI 补齐跨仓库搜索能力的平台团队,以及乐于对比 ripgrep 性能的命令行工具爱好者。

官方链接

https://github.com/microsoft/tgrep

团队信息

由 AI 猎手自动发现

评论与建议

0 条评论