Repolode
boyter

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. 1

    Установите через Go (требуется Go 1.25.2 или новее)

    go install github.com/boyter/cs/v3@latest
  2. 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 обновляется ежедневно.

Похожие проекты

Самостоятельно размещаемый слой контекста по коду: индексирует репозитории на разных хостингах, чтобы разработчики и AI-агенты могли искать по ним и изучать их структуру.

4 тыс.372PythonMITОбновлён позавчера