jevgrep — инструмент командной строки для поиска по проекту: вы спрашиваете, как работает часть программы, а команда jg показывает, где искать ответ в коде. Он рассчитан прежде всего на агентов, которые меняют код, но сначала должны разобраться в незнакомом репозитории. Вместо повторных просьб «посмотри ещё вот эту папку» агент получает список подходящих файлов и выдержки из исходников.
Как jevgrep находит код по описанию поведения
Обычный поиск удобен, когда вы знаете имя функции или путь к файлу. jevgrep нужен для другого случая: вы знаете, что делает программа, но не знаете, где это написано. Например, хотите найти проверку авторизации перед обработкой запроса, хотя её название в проекте вам неизвестно.
Команда jg обходит структуру репозитория и с помощью модели Jev оценивает, какие папки, файлы и объявления относятся к вопросу. Объявление — это место, где в коде определена функция, класс или другая программная сущность. Сначала инструмент показывает краткое резюме и список файлов, затем — дословные фрагменты исходников со ссылками на строки и более подробные места объявлений и вызовов. Всё это приходит в стандартный вывод команды, а не в отдельный файл-отчёт.
Для Python, TypeScript/JavaScript, Go и Rust инструмент умеет разбирать объявления. Для других текстовых файлов он использует запасной способ поиска. Если подходящий файл найден, но уверенного фрагмента из него нет, путь всё равно может остаться в результате: поиск не обязан сводиться к двум «лучшим» файлам.
Важно различать найденный контекст и готовое решение. jevgrep не пишет исправление и не проверяет тесты: эту работу выполняет вызвавший его агент. Результат jg — зацепки и цитаты из кода, а не гарантия, что найдены все относящиеся к задаче файлы.
Когда поиск пригодится агенту, а когда достаточно обычной команды
Первый сценарий — вы ведёте незнакомый проект в Claude Code и просите изменить обработку запросов. До правки агенту нужно понять, где запрос проходит проверку доступа и какой обработчик вызывается дальше. Вопрос на естественном языке даёт ему отправные файлы и строки, которые можно прочитать подробнее.
Второй сценарий — баг затрагивает несколько частей проекта. Допустим, нужно разобраться, как соединения с базой создаются, используются и закрываются. Поиск одного имени функции может не показать всю цепочку; jevgrep собирает подходящие участки из разных файлов, а агент затем проверяет связи между ними.
Третий сценарий — вы ищете тесты для определённого поведения, но не помните имена тестовых файлов. Можно спросить про тайм-аут и повторную попытку запроса, чтобы получить места, с которых начать проверку. Это полезно при работе с ИИ-агентами, которые сначала исследуют кодовую базу, а потом вносят изменения.
Если точный путь или имя функции уже известны, jevgrep вам, скорее всего, не нужен. README советует в таком случае открыть файл напрямую или воспользоваться rg, то есть обычным поиском по тексту. Для небольшого понятного проекта дополнительный поиск через модель тоже может оказаться лишним.
Установка CLI и навыка для кодового агента
Для обычного использования нужны Node.js 22+, macOS, Linux или Windows и ключ одного из поддерживаемых провайдеров: Vercel AI Gateway, TypeSafe, OpenRouter, OpenCode Zen либо собственного адреса, совместимого с TypeSafe. Отдельно ставить Python, Bun или ripgrep для команды jg не требуется. Провайдер выбирается при настройке доступа; эта возможность требует версии jevgrep не ниже 0.3.0.
Установите пакет глобально, пройдите настройку ключа, добавьте навык и выполните первый поиск. В последней команде ./my-project — путь к проекту, по которому вы задаёте вопрос:
npm install -g @dzhng/jevgrep
jg auth
jg skill
jg "How are telemetry events recorded and sent?" ./my-project
Команда jg auth спрашивает, какого провайдера использовать, и сохраняет его ключ в файле настроек с доступом только для владельца. Повторный запуск заменяет прежнюю настройку. jg skill запускайте из проекта, где работает агент: одна установка CLI не учит агента обращаться к jg. Установщик обнаруживает Claude Code, Codex, OpenCode и других агентов и спрашивает, куда добавить навык — файл с инструкциями по вызову инструмента и чтению его ответа.
Подробнее о такой схеме подключения читайте в материале про навыки для Claude и других агентов. Для jg skill нужны npm/npx и доступ к сети. Если CLI ещё не установлен, README даёт отдельный способ поставить навык:
npx skills add dzhng/jevgrep --skill jevgrep
Навык не настраивает ключ провайдера вместо вас. В версии 0.1.0 команда jg skill только печатает содержимое навыка; для его установки используйте вариант с npx skills выше. Если обновляете старую версию ради выбора провайдера, обновите пакет отдельно:
npm install -g @dzhng/jevgrep@latest
jg --version
После обновления пакета повторно запустите jg skill, если хотите обновить и навык: npm не перезаписывает его файлы в проектах. Отдельной команды jg upgrade в README нет.
Три вопроса, с которых можно начать поиск
README предлагает запросы для случаев, когда нужное поведение известно, а расположение кода — нет. Их можно передать агенту или выполнить в терминале самостоятельно; . означает корень текущего проекта, а ./src ограничивает поиск папкой исходников:
jg "Where is authentication checked before a request reaches a handler?" .
jg "How are database connections created, pooled, and closed?" ./src
jg "Which tests cover retry behavior when a request times out?" .
Первый вопрос означает: «Где проверяется авторизация до того, как запрос попадёт в обработчик?» В ответе следует искать файлы и строки с проверкой доступа, но README не обещает, что инструмент восстановит весь путь запроса за вас. Агенту нужно открыть найденный код и подтвердить вывод.
Второй вопрос касается жизненного цикла соединений с базой: их создания, объединения в пул и закрытия. Пул — это набор соединений, которые программа повторно использует вместо создания нового для каждого обращения. Поиск по ./src помогает начать с исходников в этой папке; фрагменты результата подскажут, какие части реализации прочитать целиком.
Третий вопрос просит найти тесты повторной попытки после тайм-аута, то есть ситуации, когда запрос не дождался ответа вовремя. Вы получите кандидатов среди файлов и выдержек, а не подтверждение, что тесты полны или проходят. Если агент готовит изменение, после поиска ему всё равно придётся запускать соответствующие проверки.
Какие исходники уйдут провайдеру и что известно о проекте
При поиске jevgrep отправляет подходящее содержимое исходников модели Jev через выбранного провайдера. По умолчанию фильтры учитывают файлы игнорирования и исключают скрытые файлы, зависимости, результаты сборки, бинарные файлы и очевидные файлы с учётными данными. Авторы прямо предупреждают: фильтры не гарантируют удаления всех секретов. Перед поиском выбирайте только ту корневую папку, содержимое которой вы готовы отправить.
Посмотреть, сколько файлов поиск может прочитать внутри выбранного корня, можно без ключа и сетевого запроса. Команда jg files [root] считает их по папкам верхнего уровня. Чтобы исключить пути из одного поиска, README предлагает шаблоны --exclude относительно корня:
jg files [root]
--exclude '**/*.test.ts' --exclude 'src/generated/'
Вторая строка показывает флаги для поискового вызова, а не самостоятельную команду. Проверить сохранённую настройку провайдера можно через jg doctor: по README он использует искусственные входные данные. Ответы модели для поиска по умолчанию кэшируются локально, поэтому при работе с чувствительным проектом учитывайте не только передачу исходников, но и локальный кэш.
Не выбирайте инструмент только по обещанию экономии в заголовке README. В сравнении на десяти задачах Python SWE-bench оба варианта решили 8 из 10; стоимость работы агента без учёта Jev снизилась с $7,62 до $5,44. Отдельный повторный замер версии 0.4.3 с учётом Jev показал снижение общих расходов на 25,8%, а замер версии 0.5.0 — уже на 2–3% более высокие общие расходы при тех же 8 решённых задачах. Авторы не называют эти единичные прогоны доказательством ускорения или гарантированной экономии для вашего проекта.
На момент обзора у репозитория 2565 звёзд; он создан 26 сентября 2026 года, последний коммит в карточке датирован 2 октября 2026 года. Лицензия — MIT. Проект молодой, поэтому перед использованием проверьте текущую версию и помните главное ограничение: для поиска нужен ключ провайдера, а исходники покидают ваш компьютер.
Источник: репозиторий dzhng/jevgrep на GitHub.