codemap CLI
Считает, какие файлы импортируют друг друга и что заденет правка, и отдает это агенту через хуки, MCP и команду codemap
- 704 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- Команда `codemap setup` дописывает хуки в настройки Claude Code и Codex, а хуки запускают бинарник при каждой сессии и правке
- Фоновый наблюдатель и HTTP API на 127.0.0.1 держат состояние графа, а команда с адресом GitHub или GitLab клонирует чужой репозиторий во временную папку
- Проверка `codemap doctor` в стороннем репозитории запускает путь из его локального конфига, о чем предупреждает разработчик
Установка
- Работает в
Ручная установка
brew tap JordanCoin/tap && brew install codemapmacOS и Linux. В Windows: scoop bucket add codemap https://github.com/JordanCoin/scoop-codemap, затем scoop install codemap.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Команда `codemap setup` дописывает хуки в настройки Claude Code и Codex, а хуки запускают бинарник при каждой сессии и правке
- Фоновый наблюдатель и HTTP API на 127.0.0.1 держат состояние графа, а команда с адресом GitHub или GitLab клонирует чужой репозиторий во временную папку
- Проверка `codemap doctor` в стороннем репозитории запускает путь из его локального конфига, о чем предупреждает разработчик
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
codemap строит для агента карту репозитория и граф импортов. Агент и так видит, что написано в файле, но не видит, кто от него зависит: это следует из go.mod, членства в рабочем пространстве Cargo, карт экспорта в package.json и алиасов tsconfig. codemap разбирает их по правилам каждой экосистемы. Команда `codemap .` показывает дерево с главными файлами, `codemap --importers config/config.go` перечисляет зависящие от файла, а `codemap find "запрос"` ранжирует файлы по совпадению пути и символов и подписывает число импортирующих. Каждый ответ о зависимостях заканчивается строкой о покрытии: «complete», «partial» или «unavailable», с названием источника, которому нельзя доверять. Поэтому «ничто не импортирует этот файл» и «не удалось определить» читаются по-разному. Если сканирование завершилось по таймауту или с ошибкой, codemap возвращает пустой результат с пометкой источника. Команда `codemap setup` подключает все это к Claude Code и Codex: создает `.codemap/config.json` с языковыми фильтрами, дописывает хуки в `.claude/settings.local.json` и `.codex/hooks.json` и регистрирует MCP в `.mcp.json` и `.codex/config.toml`. Хуки дают контекст в начале сессии, перед правкой и при сжатии, а MCP-сервер с 19 инструментами запускается командой `codemap mcp` и подходит любому клиенту.
Для кого. Для разработчиков, у которых агент правит большие репозитории на Go, Rust, TypeScript, Python и других языках и должен знать заранее, какие файлы заденет изменение.
Подходит, если
- Агент собирается переименовать или переместить файл, который импортируют десятки других, и нужно показать ему список зависимых командой `codemap --importers`
- Перед ревью нужен единый отчет об изменениях: `codemap blast-radius --ref main .` собирает разницу с основной веткой, зависимости и импортирующие файлы в Markdown или JSON
- Агент каждый раз начинает сессию с нуля, и ему нужен дешевый обзор структуры: дерево с пометкой главных файлов на старте
- Несколько pull request ждут слияния, и `codemap collide` ранжирует их по опасности конфликтов из-за общих файлов
- Работа переходит между Claude Code, Codex и Cursor, и `codemap handoff` сохраняет, кто и какие файлы правил
Не подходит, если
- Нужен семантический поиск по смыслу: `codemap find` работает только по совпадению путей и символов и сам об этом сообщает
- Репозиторий маленький, и агент справляется с чтением нескольких файлов без графа
- Нужно выполнить или протестировать код: codemap читает исходники и импорты, но программу не запускает
- Нужен анализ языка, которого нет среди 21 правила разбора зависимостей: для таких файлов граф останется неполным
Пример запроса к агенту
Прежде чем менять config/config.go, выясни через codemap, какие файлы его импортируют, и скажи, насколько широко заденет правкаОграничения
- Разбор зависимостей опирается на сторонний анализатор ast-grep. Homebrew ставит его сам, а в архиве релиза лежит только codemap: для CI нужен отдельный анализатор или сборка codemap-full.
- Если свежего графа нет, число импортирующих файлов в контексте остается пустым, а оценка опасности правки помечена unknown, чтобы не выдавать догадку за факт.
- После обновления бинарника интеграции с агентами остаются прежними, пока вы не обновите их вручную: выполните `codemap setup` в каждом проекте, а для Codex один раз `codemap plugin install`.
- `codemap doctor` проверяет исполняемые файлы, которые записаны в локальном конфиге проекта. Разработчик предупреждает, что в чужом репозитории такая проверка запускает выбранный им путь.
Как отключить. Уберите блок codemap из `.mcp.json` и `.codex/config.toml`, а хуки codemap из `.claude/settings.local.json` и `.codex/hooks.json`. Папку `.codemap` в проекте можно удалить. Фоновый наблюдатель включается отдельно командой `codemap watch start`, завершите его процесс, если запускали. Сам бинарник удаляется командой `brew uninstall codemap` или `scoop uninstall codemap`.
Частые вопросы
Как подключить codemap к Claude Code?
Поставьте программу через Homebrew или Scoop и выполните `codemap setup` в корне git-репозитория. Команда создаст конфиг проекта, допишет хуки в настройки Claude Code и зарегистрирует MCP. Только для Claude добавьте флаг `--agent claude`, а проверит подключение `codemap doctor`.
Что значит строка Coverage: «partial» в ответе codemap?
Статус показывает, насколько полно codemap подтверждает ответ: «complete», «partial» или «unavailable». При «partial» часть источников, например Cargo-манифесты, разобрана запасным способом, а нерешенные импорты перечислены в списке проблем. Если ответ пустой с «partial», нельзя считать, что файл никто не импортирует.
Как узнать, что сломается, если изменить файл?
Выполните `codemap --importers путь/к/файлу`: программа перечислит зависимые файлы и пометит файл как HUB FILE, если его импортируют три и более файлов. Полный отчет для ревью даст `codemap blast-radius --ref main .`, с флагом `--json` он выводится одним объектом JSON.
Какие языки поддерживает codemap?
Для анализа зависимостей подключено 21 правило разбора: Go, Python, JavaScript, TypeScript, Rust, Ruby, C, C++, Java, Swift, Dart, Kotlin, C#, PHP и другие. Для Go, Rust, JS/TS и Dart импорты разрешаются по правилам экосистемы, а для остальных — по суффиксам и каталогам.
Можно ли разобрать чужой репозиторий с GitHub?
Да, укажите адрес вместо пути, например `codemap github.com/user/repo`. Программа поверхностно клонирует репозиторий во временную папку и удаляет ее после работы. Если копия уже есть на диске, берется она. Флаги ставятся до адреса.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыcodesight за один запуск собирает карту проекта: маршруты, модели БД, зависимости, env-переменные. Отдает ее агенту файлами или через MCP-сервер
Локальный граф структуры кода: строит карту репозитория через tree-sitter и отдает агенту по MCP только тот контекст, который относится к правке
CodeGraph на Rust
codegraph-rust
Граф кода для агента на Rust: четыре MCP-инструмента показывают, что заденет правка, как устроена архитектура и где хрупкие места проекта
Deep Graph MCP — граф кода репозитория для агента
Deep Graph MCP
MCP-сервер дает агенту граф кода репозитория: поиск функций по смыслу, связи символов и список мест, которые заденет правка
Режимы работы для ИИ-агента: облегченный на каждый день и /man с планом, проверкой и ревью для крупных задач
MCP-сервер и CLI на Go: агент ведет в репозитории индекс кода и схемы базы, хранит его в Git и читает целиком перед каждой задачей
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| codemap (эта запись) | нет | 704 | ||
| CodeGraph | нет | не нужна | 75 798 | локальный граф кода для MCP с точками входа и связями символов, без хуков и передачи работы между агентами |
| GitNexus | нет | не нужна | 48 101 | индексирует код в граф знаний и дает связи вызовов через MCP, а покрытие ответа не помечает |
Коротко о README
Страница репозитория начинается с трех команд для первой минуты агента: поставить программу, выполнить setup и запустить MCP. Затем объясняется, зачем нужен граф зависимостей, и показан контракт покрытия с примером ответа в JSON. Дальше идут установка, правила разбора для Go, Rust, JS/TS и Dart, полный список команд и флагов и режимы разницы с веткой, потока зависимостей, радиуса влияния и «городского горизонта». В конце описаны хуки, 19 инструментов MCP, настройка проекта, встроенные скиллы, протокол контекста, HTTP API и передача работы между агентами.