
jevgrep
通过询问代码的功能来查找代码。
编码智能体在每次面对陌生任务时,都要花费一部分精力寻找正确的文件。Jevgrep 为它们提供了一个起点:向代码库提出一个问题,jg 便会在一次 stdout 输出中返回相关文件、阅读线索以及逐字源码摘录。它使用 Jev 在文件夹、文件和声明层级判断相关性。随后,你的编码智能体负责实现并测试变更。
npm install -g @dzhng/jevgrep
jg auth
jg skill
jg "遥测事件是如何记录并发送的?" ./my-project
需要 Node.js 22+、macOS 或 Linux,以及 Vercel AI Gateway、TypeSafe 或 OpenRouter 的密钥。使用 jg 无需单独安装 Python、Bun 或 ripgrep。
提供商选择功能需要 0.3.0 或更新版本。可使用 npm install --global @dzhng/jevgrep@latest 升级旧安装。
安装智能体技能 —— 智能体配置必需
仅安装 CLI 并不会让你的编码智能体学会使用它。请同时安装技能,在智能体工作的项目目录中运行:
jg skill
安装程序会检测你的编码智能体(Claude Code、Codex、OpenCode 等)并询问安装位置。添加 --global 可进行用户级全局安装,或使用 --yes 进行无人值守安装。该技能会教智能体何时调用 jg、如何使用返回的上下文,以及何时用其常规工具填补空缺。当所需上下文已知时,它会跳过冗余检索。当前代码库中的技能会检查 jg 是否存在,若缺失则安装 CLI;身份验证仍需你所选提供商的密钥。技能安装程序本身不配置凭据。
jg skill 委托给 skills CLI 完成,需要 npm/npx 及网络访问。你也可以在未安装 CLI 的情况下直接运行该安装程序:
npx skills add dzhng/jevgrep --skill jevgrep
在 0.1.0 版本中,jg skill 仅打印内置技能;该版本请使用 npx skills。
升级
目前没有 jg upgrade 命令。请使用 npm 升级 CLI:
npm install -g @dzhng/jevgrep@latest
jg --version
已安装的技能需单独更新,重新运行 jg skill 即可。更新 npm 包不会覆盖你项目中的技能文件。身份验证详情参见包使用指南。
以问题开始,带着源码结束
当你清楚需要理解的行为、却不知道它位于何处时,请使用 jg:
jg "在请求到达处理器之前,身份验证在哪里检查?" .
jg "数据库连接是如何创建、池化和关闭的?" ./src
jg "哪些测试覆盖了请求超时时的重试行为?" .
Jevgrep 会探索代码库层级并追踪符合条件的分支。它根据内容预览选择文件,然后识别有用的源码单元及其上下文。即使无法确信地返回摘录,它也会保留符合条件的文件位置;它不会强行将每次搜索压缩为固定的前两条结果。
摘要最先输出,随后是文件位置、阅读线索以及带行号引用的精选源码。Python 与 TypeScript/JavaScript 支持声明解析;其他文本使用回退方案。输出是供智能体使用的证据,而非生成的答案,也不保证找齐所有相关文件。查看录制的输出示例。
当你已经知道确切的符号或路径时,直接读取文件或用 rg 搜索可能就足够了。Jevgrep 最适合跨多个陌生文件的问题。
我们测量了什么

在一次十任务 SWE-bench 重复测试中,编码智能体成本降低约 40%。 Sol 完整成本从 $7.62 降至 $4.52,包含失败任务,不含 Jev 成本。解题率为使用 jg 时 7/10,而保存的基线为 8/10。这是以质量为代价的成本削减,并非解题质量持平或更优的证据。
同一修正后运行时的更早一轮在 $5.54 成本下解决了 6/10。两轮结果保持独立;基线仅运行一次并被复用,结果从未合并。两轮均未通过原始质量关卡。样本是用 Sol 评估的经调优的 Python 子集,因此无法证明普遍的成本节省、更快的执行速度或其他编码智能体的表现。
完整结果与配对轨迹分析包含精确成本、失败任务及单独观测的 Jev 费用。方法论参见评估指南。
源码、凭据与本地状态
搜索会通过认证时选择的提供商,将符合条件的源码内容发送给 Jev。默认文件系统过滤遵循 ignore 文件,并排除隐藏文件、依赖/构建目录、二进制文件以及明显的凭据文件。这些过滤并不保证所有敏感信息都已被移除;请选择你确实打算发送的搜索根目录。
jg auth 会询问你的提供商,然后将密钥保存在仅所有者可读的配置文件中。重新运行 auth 会替换该配置;搜索始终使用已保存的提供商。jg doctor 用合成输入进行检查。未携带提供商信息的已有保存密钥仍视为 Vercel 密钥。不使用基于环境的凭据和端点覆盖;如果你之前依赖它们,请运行 jg auth。评估答案默认缓存在本地。CLI 将输出写入 stdout,不会创建报告文件。使用 jg --help 查看缓存控制、搜索覆盖及不完整结果的行为。
开发
该代码库使用 TypeScript、Bun workspaces 和 Turborepo。检出代码后:
bun install --frozen-lockfile
bun run dev --help
bun run verify
验证包括针对仅依赖 Node 的已安装包的 Docker 测试。有关检索、解析、缓存与失败处理背后的设计考量,请从架构文档和实现记录入手。发布指南涵盖由 tag 触发的 npm 发布以及对确切公开包的验证。