这个项目能做什么
mgrep是一款为本地文件提供语义自然语言搜索能力的命令行工具,定位为grep的补充而非替代品。它以npm包(@mixedbread/mgrep)的形式发布,采用Apache-2.0许可证,由Mixedbread开发。
核心能力:
- 支持对代码、文本、PDF和图片进行自然语言搜索,音频和视频功能据称即将推出。
- 通过`mgrep watch`实现后台索引:该命令会执行初始同步,遵循.gitignore及可选的.mgrepignore文件规则,并在文件变更时持续更新由云端支撑的Mixedbread存储。
- 借助`--web`参数启用网页搜索,会在查询本地结果的同时检索`mixedbread/web`存储;使用`--answer`可生成总结式回复。
- 通过`--agentic`参数启用智能体搜索,可将复杂问题拆解为子查询并执行多次搜索。
- 默认对搜索结果进行重排序,可通过`--no-rerank`参数或设置MGREP_RERANK=0禁用。
- 搜索结果包含文件相对路径及上下文提示,例如文本文件的行号范围、PDF文件的页码。
认证与设置:
- `mgrep login`采用设备/浏览器授权流程;无头环境或CI环境可直接设置MXBAI_API_KEY完成认证。
- 安装命令为`npm install -g @mixedbread/mgrep`(也支持使用pnpm或bun安装)。
编码智能体集成:
- 提供针对Claude Code、OpenCode、Codex和Factory Droid的辅助安装命令,分别为install-claude-code、install-opencode、install-codex、install-droid。
- README说明,若与编码智能体一同安装,会有一个后台进程在会话期间同步文件,会话结束后自动停止。
- 默认限制为单文件最大1MB、单目录最多1000个文件,可通过CLI参数、环境变量或配置文件调整。
配置:
- 支持本地配置文件`.mgreprc.yaml`/`.mgreprc.yml`,以及全局配置文件`~/.config/mgrep/config.yaml`。
- 配置优先级从高到低依次为:CLI参数、环境变量、本地配置、全局配置、默认值。
- 环境变量涵盖认证(MXBAI_API_KEY)、存储选择(MXBAI_STORE)、搜索行为(MGREP_MAX_COUNT、MGREP_CONTENT、MGREP_ANSWER、MGREP_WEB、MGREP_AGENTIC、MGREP_SYNC、MGREP_DRY_RUN、MGREP_RERANK)以及同步限制(MGREP_MAX_FILE_SIZE、MGREP_MAX_FILE_COUNT)。
- `--store <名称>`参数可隔离工作区;存储会按需自动创建。
命令概览:`mgrep`/`mgrep search`、`mgrep watch`、`mgrep login`、`mgrep logout`,以及四个智能体安装命令。
开发相关:这是一个使用pnpm构建的TypeScript项目;相关命令包括构建`pnpm build`、开发`pnpm dev`、格式化`pnpm format`(使用biome)、类型检查`pnpm typecheck`;测试框架使用bats。README称目前测试尚未完全搭建完成。
基准测试声明:README披露的一项内部50任务QA基准测试显示,搭配Claude Code使用时,mgrep的token消耗量约为基于grep的工作流的二分之一,且判定质量相近甚至更优,胜率由大语言模型(LLM)判定。以上均为项目方自身声明,本文未做独立验证。
故障排查说明涵盖重复登录提示、监听器噪音、重建存储等问题。用户可通过Mixedbread Slack社区获取支持。
评论
0 评分人数达到10人后显示
登录后参与讨论。