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

Источник: https://modelium.tech/zhurnal/s1grep-0-2-6-local-semantic-code-search-languages/

В стабильном выпуске 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](#src-s1) [s2](#src-s2)

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

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

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

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

После установки и загрузки моделей можно перейти в свой репозиторий и выполнить `s1grep 'validate token expiry' .`; CLI также принимает путь, `--json` и число результатов через `-n`. Для JavaScript и Go полезно сравнить тот же запрос с `--no-judge`: это отключает вторую модель и оставляет порядок эмбеддинг-поиска. Для агента предусмотрен локальный MCP-сервер `s1grep mcp`, но стоит проверить границы доступа самого агента, прежде чем подключать его к закрытому коду. Официальный установщик проверяет загружаемый бинарный файл по SHA256SUMS; вместо слепого запуска сетевого скрипта можно изучить релиз и его контрольные суммы. [s1](#src-s1) [s3](#src-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](#src-s3) [s4](#src-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](#src-s1) [s3](#src-s3) [s5](#src-s5) [s6](#src-s6)

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

## Источники

1. [s1grep 0.2.6 — GitHub release](https://github.com/apiservicesac/s1grep/releases/tag/0.2.6) — получено 2026-10-01
2. [s1grep 0.2.6 — Languages (pinned tag)](https://github.com/apiservicesac/s1grep/blob/0.2.6/docs/languages.md) — получено 2026-10-01
3. [s1grep 0.2.6 — README (pinned tag)](https://github.com/apiservicesac/s1grep/blob/0.2.6/README.md) — получено 2026-10-01
4. [s1grep — авторские измерения движка](https://github.com/apiservicesac/s1grep/blob/0.2.6/docs/decisions/0000-engine-measurements.md) — получено 2026-10-01
5. [s1-code-v3 — Hugging Face model card](https://huggingface.co/api-service-sac/s1-code-v3) — получено 2026-10-01
6. [granite-embedding-278m-multilingual-onnx — Hugging Face model card](https://huggingface.co/api-service-sac/granite-embedding-278m-multilingual-onnx) — получено 2026-10-01
