Перейти к содержанию
modelium.
Начать с задачи
←

s1grep 0.2.6: локальный поиск по коду на девяти языках

В стабильном выпуске s1grep 0.2.6 от 1 октября 2026 года к Python добавлены JavaScript, TypeScript/TSX, Go, Java, PHP, Rust, Ruby и C#. Инструмент индексирует функции локально и ищет их через ONNX-модели на CPU. Авторские измерения на других языках предупреждают: переранжирующая модель, обученная на Python, иногда ухудшает результат — для JavaScript и Go стоит сравнить выдачу с --no-judge.

s1grep 0.2.6: поиск по смыслу в локальном репозитории

1 октября 2026 года разработчик s1grep выпустил стабильную версию 0.2.6. До неё инструмент выделял функции Python; теперь индексатор распознаёт также JavaScript, TypeScript с TSX, Go, Java, PHP, Rust, Ruby и C#. Код разбирается tree-sitter-запросами, а при изменении правил одного языка повторно читаются только затронутые им файлы. В релизе есть бинарные сборки для Linux x86-64 и Windows x86-64. s1 s2

Для чего это нужно

Запрос по смыслу ищет функции по назначению, а не только по буквальному совпадению имени. s1grep строит векторный индекс в локальном SQLite, извлекает кандидатов эмбеддинг-моделью и по умолчанию дополнительно ранжирует первые пять небольшой моделью решений. Обе модели работают через ONNX Runtime на CPU; автор проекта заявляет, что исходный код не покидает машину при поиске. Первичная установка скачивает модельные пакеты отдельно. Версия 0.2 пока названа разработчиком ранней. s3

Новые языки охватывают не весь исходный текст: индексируются именованные функции и методы, но вложенные замыкания и определения короче трёх строк пропускаются. Python сохранил прежний извлекатель. Текущие расширения перечислены в закреплённой документации, включая .jsx, .tsx, .go, .rs и .cs. Стандартные исключения теперь скрывают типичные тестовые, сборочные и сгенерированные файлы; пользовательские правки ignore-файла не перезаписываются. s1 s2

Как выбирать режим поиска

После установки и загрузки моделей можно перейти в свой репозиторий и выполнить s1grep 'validate token expiry' .; CLI также принимает путь, --json и число результатов через -n. Для JavaScript и Go полезно сравнить тот же запрос с --no-judge: это отключает вторую модель и оставляет порядок эмбеддинг-поиска. Для агента предусмотрен локальный MCP-сервер s1grep mcp, но стоит проверить границы доступа самого агента, прежде чем подключать его к закрытому коду. Официальный установщик проверяет загружаемый бинарный файл по SHA256SUMS; вместо слепого запуска сетевого скрипта можно изучить релиз и его контрольные суммы. s1 s3

Ограничение качества. По данным самого разработчика, на 100 запросах CodeSearchNet для каждого языка переранжирование улучшило top-1 на Java (58→68) и PHP (79→82), но ухудшило на JavaScript (67→59) и Go (47→41). Эти наборы не равны его отдельному тесту из 201 запросов по Python-репозиториям, где автор указывает 168 правильных первых ответов для полного конвейера против 145 для одних эмбеддингов. Независимой проверки Modelium нет; переносить эти цифры на свой код нельзя. Для TypeScript, Rust и C# в опубликованной таблице нет сопоставимых измерений. s3 s4

Совместимость, лицензия и следующий шаг

s1grep 0.2.6 опубликован под Apache-2.0; карточки поставляемых ONNX-пакетов s1-code-v3 и granite-embedding-278m-multilingual-onnx также указывают Apache-2.0. Это отдельные лицензии программы и весов; для корпоративного применения сохраняйте уведомления и проверяйте свои зависимости. В Linux готовая сборка требует x86-64 и glibc не ниже 2.38, для Windows заявлена x86-64; macOS-бинарника этот релиз не содержит. По README установка моделей требует примерно 2,4 ГБ загрузки, а удержание их в памяти фоновым процессом оценивается автором примерно в 2,5 ГБ — это сведения об описанном сценарии, не универсальное минимальное требование. s1 s3 s5 s6

Если задача — найти функцию в смешанном репозитории без отправки кода в облачный API, начните с небольшой копии проекта, сравните s1grep и s1grep --no-judge на нескольких своих вопросах и убедитесь, что нужные каталоги не исключены правилами индексации. Эта версия добавляет индексацию языков, но не гарантирует одинаковое качество ответов на каждом из них. s2 s3 s4

Источники