jevgrep: поиск кода по вопросам о функциях в проектах
jevgrep — командная утилита, которая позволяет находить код, задавая вопрос о его функции. Проект облегчает работу программистов, позволяя получать список релевантных файлов и отрывков кода, основываясь на заданном запросе.
Традиционные способы поиска кода часто требуют много времени на ручной анализ структуры проекта. Jevgrep устраняет эту проблему: используя модель Jev, он анализирует репозиторий и возвращает информацию о файлах и декларируемых функциях, что значительно экономит время. Это полезно для разработчиков, которые работают с новыми проектами или не знакомыми кодовыми базами.
Для работы с утилитой нужен Node.js версии 22 и выше, а также ключ доступа к Vercel AI Gateway или другим совместимым сервисам. Убедись, что используешь версию 0.3.0 или выше для правильной работы с провайдером. Запуск осуществляется через стандартные команды npm, а установка необходимого навыка для агента — обязательный шаг.
Проект jevgrep — это инструмент, который позволяет находить код в репозиториях, задавая вопросы о его функциях. Он ориентирован на улучшение взаимодействия с кодом, помогая разработчикам быстрее находить нужные файлы и фрагменты кода. Используя алгоритм Jev, jevgrep определяет релевантность файлов и их содержимого для заданного вопроса.
Установка и запуск
Чтобы начать использовать jevgrep, тебе нужно установить его с помощью npm.
npm install -g @dzhng/jevgrep
После установки необходимо аутентифицироваться и установить необходимые навыки для агента, с которым ты работаешь:
jg auth
jg skill
Для использования требуется Node.js версии 22 или выше, а также доступ к определённому API ключу, который можно получить от таких поставщиков, как Vercel AI Gateway, TypeSafe и других.
Основные функции
С помощью команды jg ты можешь задавать вопросы прямо из терминала:
jg "How are telemetry events recorded and sent?" ./my-project
Инструмент будет исследовать иерархию репозитория, находить соответствующие файлы, а затем предоставлять фрагменты кода, которые могут содержать искомую информацию. Поддерживаются различные языки программирования, включая Python, TypeScript/JavaScript, Go и Rust.
Ограничения
Несмотря на то, что jevgrep показывает хорошие результаты, он не гарантирует полное покрытие всех релевантных файлов. Поэтому важно использовать его в тех случаях, когда ты не знаешь, где именно искать нужную информацию. Он также требует наличия интернет-соединения для настройки и работы с API.
Разработка и внесение изменений
Если ты планируешь развивать проект, стоит отметить, что он написан на TypeScript и использует Bun для работы с зависимостями. Для запуска проекта из репозитория используй следующие команды:
bun install --frozen-lockfile
bun run dev --help
bun run verify
Документация по архитектуре и реализации доступна в проекте, что поможет тебе лучше понять внутренние механизмы работы jevgrep.
Открыть на GitHub: dzhng/jevgrep →
RepoRadar