Инструмент поиска по регулярным выражениям (rg), который рекурсивно обходит каталоги и по умолчанию учитывает правила .gitignore.
boyter/cs
CLI-инструмент для поиска по коду: учитывает его структуру и релевантность результатов, не требуя индексации.
Open source альтернатива:Sourcegraph
- Звёзды
- 1,080
- Форки
- 23
- Открытые issues
- 2
- Последний коммит
- 3 дня назад
Что это?
cs (codespelunker) — CLI-инструмент для поиска по коду, написанный на Go. Он на лету разбирает каждый найденный файл, различая код, комментарии и строки, а затем ранжирует результаты по релевантности BM25 с учётом структуры — вместо того чтобы выводить все текстовые совпадения. Поскольку предварительная индексация не нужна, поиск можно сразу запустить в любом каталоге.
Помимо обычного поиска, доступны фильтры по структуре: --only-code, --only-comments, --only-strings, --only-declarations и --only-usages. Параметр «gravity», основанный на сложности кода, позволяет файлам с реализацией получать более высокий рейтинг, чем интерфейсам и конфигурационным файлам, а профили ранжирования объединяют несколько настроек в готовые наборы. В запросах поддерживаются логические операторы, фразы в кавычках, регулярные выражения и нечёткий поиск.
Тот же движок работает как интерактивный TUI, HTTP-сервер поиска с опциональной подсветкой синтаксиса или MCP-сервер, с помощью которого LLM-инструменты, например Claude Desktop и Claude Code, могут искать по кодовой базе. Параметр --git-sync периодически выполняет pull репозиториев в каталоге поиска, чтобы результаты оставались актуальными.
Ключевые возможности
- 01Поиск с учётом структуры, различающий код, комментарии и строковые литералы
- 02Ранжирование по релевантности BM25 с оценкой «gravity» на основе сложности кода и повышением рейтинга файлов с учётом их расположения
- 03Фильтры по объявлениям и использованиям для перехода к определениям или местам вызова
- 04Логические запросы, фразы в кавычках, регулярные выражения и нечёткий поиск
- 05Интерфейсы для консоли, TUI, HTTP-сервера и MCP
- 06Периодический git pull репозиториев в каталоге поиска
Сценарии использования
- Поиск реальной реализации функции, а не её интерфейса, тестов или упоминаний в комментариях
- Поиск только комментариев TODO/FIXME или строк с сообщениями об ошибках во всём проекте
- Предоставление LLM-агенту инструмента поиска по коду с ранжированием результатов через MCP
- Поиск по каталогу клонированных репозиториев без поддержки отдельного поискового сервера
Быстрый старт
- 1
Установите через Go (требуется Go 1.25.2 или новее)
go install github.com/boyter/cs/v3@latest - 2
Запустите поиск из любого каталога
cs "authenticate" --gravity=brain
Что важно знать
- Для установки через go install требуется Go 1.25.2 или новее; для других способов установки используйте бинарные файлы со страницы releases.
- Индекса нет, поэтому при каждом поиске подходящие файлы сканируются на лету. Поиск обычного текста работает медленнее, чем в ripgrep.
В подборках
Темы
Частые вопросы
- Что такое cs?
- CLI-инструмент для поиска по коду: учитывает его структуру и релевантность результатов, не требуя индексации. cs (codespelunker) — CLI-инструмент для поиска по коду, написанный на Go. Он на лету разбирает каждый найденный файл, различая код, комментарии и строки, а затем ранжирует результаты по релевантности BM25 с учётом структуры — вместо того чтобы выводить все текстовые совпадения. Поскольку предварительная индексация не нужна, поиск можно сразу запустить в любом каталоге.
- cs можно использовать бесплатно? Какая у него лицензия?
- cs распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- cs всё ещё поддерживается?
- Активно поддерживается. Последний коммит в cs — 20 окт. 2026 г..
- Для чего можно использовать cs?
- Поиск реальной реализации функции, а не её интерфейса, тестов или упоминаний в комментариях Поиск только комментариев TODO/FIXME или строк с сообщениями об ошибках во всём проекте Предоставление LLM-агенту инструмента поиска по коду с ранжированием результатов через MCP Поиск по каталогу клонированных репозиториев без поддержки отдельного поискового сервера
- Как установить cs?
- Установите через Go (требуется Go 1.25.2 или новее): go install github.com/boyter/cs/v3@latest Запустите поиск из любого каталога: cs "authenticate" --gravity=brain
- Где скачать cs?
- Исходный код и инструкции по установке — на GitHub: https://github.com/boyter/cs
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Быстрый CLI-инструмент, который считает файлы, строки кода, комментарии и пустые строки в проекте с разбивкой по языкам.
Быстрый движок поиска по исходному коду и перекрёстных ссылок на Java, который индексирует код и историю системы контроля версий.
Самостоятельно размещаемый слой контекста по коду: индексирует репозитории на разных хостингах, чтобы разработчики и AI-агенты могли искать по ним и изучать их структуру.
Локальный CLI-поисковик для заметок в Markdown, расшифровок встреч и документации: объединяет BM25, векторный поиск и переранжирование с помощью LLM.
Функциональный терминальный пейджер для просмотра текста: режимы колонок, слежения и exec, а также поиск по мере ввода.