CodeGraph на Rust

codegraph-rust

Граф кода для агента на Rust: четыре MCP-инструмента показывают, что заденет правка, как устроена архитектура и где хрупкие места проекта

  • 905 ★ репозитория
  • Последний коммит
MCP-сервер

Расширенный доступ

Почему такой уровень

  • Читает все исходники проекта и сохраняет их разбор и векторные представления в `.codegraph/db`
  • При облачном провайдере эмбеддингов или модели выдержки кода уходят во внешний сервис вместе с ключом из `.env`
  • `codegraph init` дописывает хуки агента и разделы в `AGENTS.md` и `CLAUDE.md` проекта
Все причины и проверки

jakedismo/codegraph-rust

Установка

Ручная установка

git clone https://github.com/Jakedismo/codegraph-rust
cd codegraph-rust
./install-codegraph-full-features.sh

Сборка из исходников со всеми возможностями. Для быстрой сборки на macOS в Makefile есть цели `make build-llvm` и `make test-llvm`, им нужен `brew install llvm`.

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Читает все исходники проекта и сохраняет их разбор и векторные представления в `.codegraph/db`
  • При облачном провайдере эмбеддингов или модели выдержки кода уходят во внешний сервис вместе с ключом из `.env`
  • `codegraph init` дописывает хуки агента и разделы в `AGENTS.md` и `CLAUDE.md` проекта

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

CodeGraph на Rust разбирает исходники проекта в дерево синтаксиса, связывает символы в граф и сохраняет его вместе с векторными представлениями в SurrealDB, которая встроена в бинарник `codegraph`. У каждого проекта свое хранилище в папке `.codegraph/db`. Глубину разбора задает уровень индексации: `fast` берет узлы и основные связи, `balanced` добавляет символы от языковых серверов и документацию, `full` включает все анализаторы, потоки данных и архитектуру. Агент подключает сервер по MCP и получает четыре инструмента. `agentic_context` собирает нужный контекст и отвечает на вопросы по коду, `agentic_impact` показывает цепочки зависимостей и вызовов, то есть что сломается при правке, `agentic_architecture` описывает структуру и публичные интерфейсы, `agentic_quality` находит сложные и сильно связанные места. Внутри каждого инструмента работает модель из `.env`: она сама выбирает операции над графом, связывает их в цепочку и возвращает пути файлов, номера строк и короткие выдержки. Те же инструменты доступны из оболочки командой `codegraph agent context "вопрос"`. Команда `codegraph init` предлагает хуки для Claude Code и Codex на уровне проекта, дописывает управляемый раздел в `AGENTS.md` и `CLAUDE.md` и запускает индексацию. Ключ `--watch` обновляет индекс, пока работает сервер.

Для кого. Для разработчиков, которые ведут большие репозитории с Claude Code, Cursor или Codex и хотят, чтобы агент сначала смотрел на связи в коде, а не читал файлы по одному.

Подходит, если

  • Перед рефакторингом нужно понять, какие модули заденет смена функции или типа
  • Агент тратит много токенов на чтение файлов, чтобы разобраться в незнакомом репозитории
  • Нужна карта архитектуры и публичных интерфейсов проекта на Rust, TypeScript, Python, Go, Java или C/C++
  • Перед ревью нужно найти самые сложные и тесно связанные места
  • И эмбеддинги, и модель для инструментов хочется держать на своей машине через `ollama` или `lmstudio`

Не подходит, если

  • Нужен готовый пакет без сборки: установка идет скриптом, который собирает проект из исходников
  • Нет ни локальной модели, ни ключа облачного провайдера: индексации нужна модель эмбеддингов, а инструментам для агента нужна LLM
  • Нужен граф без собственной модели внутри и без ключей: такой строит CodeGraph от colbymchenry, он работает на SQLite

Пример запроса к агенту

Построй граф кода этого проекта и покажи, какие модули сломаются, если я поменяю сигнатуру `UserService`

MCP

Транспорт
stdio
Авторизация
не нужна

Переменные окружения

CODEGRAPH_EMBEDDING_PROVIDER обязательная
Провайдер эмбеддингов: ollama, lmstudio, jina, openai или onnx.
CODEGRAPH_LLM_PROVIDER обязательная
Провайдер модели для инструментов: ollama, lmstudio, anthropic, openai, xai или openai-compatible.
CODEGRAPH_CONTEXT_WINDOW
Реальный предел контекста выбранной модели, по нему подбирается уровень подсказок.

Ограничения

  • Автор не указал лицензию, права на использование и копирование не определены, уточните у автора. В тексте проекта названа MIT, но файла `LICENSE` в репозитории нет.
  • Встроенное хранилище открывает один процесс на проект. Перед `codegraph index` остановите работающий `codegraph start`, а к проекту подключайте одного клиента. Отдельный демон не делит хранилище с запущенным сервером, для общей базы нужен свой сервер SurrealDB и переменная `CODEGRAPH_SURREALDB_URL`.
  • Для уровней `balanced` и `full` нужны языковые серверы: `rust-analyzer`, `typescript-language-server`, `pyright-langserver`, `gopls`, `jdtls` или `clangd`. Если нужного нет, индексация сразу завершается ошибкой. Для Rust `rust-analyzer --version` проверяется из папки проекта.
  • Уровень `fast` включен по умолчанию и отключает языковые серверы, обогащение и потоки данных. Связи `Uses` и `References` в граф не попадают. Полноту ответов определяет выбранный уровень и качество модели.
  • Анализ нескольких репозиториев сразу и свои схемы графа автор держит в планах, сейчас их нет.

Как отключить. Уберите блок `codegraph` из MCP-конфигурации агента и остановите `codegraph start`. Индекс проекта удаляется командой `rm -rf <проект>/.codegraph/db`. Хуки Claude Code и Codex, которые добавил `codegraph init`, лежат в настройках проекта, а раздел `# codegraph` в `AGENTS.md` и `CLAUDE.md` убирается вручную.

Частые вопросы

Как CodeGraph на Rust определяет, что сломается при правке?

Инструмент `agentic_impact` идет по графу: собирает цепочки зависимостей и вызовов от нужного символа и отвечает структурированно, с путями файлов, номерами строк и короткими выдержками. Вызов выглядит как `agentic_impact({"query": "UserService"})`.

Можно ли обойтись локальными моделями?

Для эмбеддингов доступны `ollama`, `lmstudio` и `onnx`, для модели инструментов `ollama` и `lmstudio`. Облачные варианты тоже есть: `jina` и `openai` для эмбеддингов, `anthropic`, `openai`, `xai` и любой OpenAI-совместимый сервер для модели.

Где лежит граф проекта и смешиваются ли данные разных проектов?

Каждый проект получает свое хранилище SurrealKV в `.codegraph/db`, схема `schema/codegraph_v2.surql` применяется при первой индексации. Данные разных проектов друг с другом не пересекаются, внутри папки создается свой `.gitignore`.

Попадают ли секреты в индекс?

Индексация учитывает `.gitignore` и отсекает типовые шаблоны секретов: `.env`, `credentials.json`, `*.pem` и ключи API.

Какой уровень индексации выбрать, чтобы начать?

По умолчанию стоит `fast`: он быстрее и занимает меньше места, но без языковых серверов. Для навигации и документации берите `balanced`, для потоков данных и архитектурных сигналов `full`. Уровень задают флагом `--index-tier`, переменной `CODEGRAPH_INDEX_TIER` или параметром `tier` в конфигурации.

Нужно ли запускать индексацию вручную после правок?

Нет, если сервер стартует с ключом `--watch`: наблюдатель переиндексирует измененные файлы в том же процессе. Отдельный демон `codegraph daemon start` годится, когда сервер не запущен.

Обсуждение

Вопросов и отзывов пока нет.

MCP-серверы

Локальный граф кода для агентов: MCP-сервер отдает точки входа, связи символов и радиус влияния изменений за один вызов

MCP-серверРасширенный доступ74,9 тыс.Звезды репозитория

Локальный граф структуры кода: строит карту репозитория через tree-sitter и отдает агенту по MCP только тот контекст, который относится к правке

MCP-серверРасширенный доступ32,3 тыс.Звезды репозитория
Выбор редакции

Индексирует кодовую базу в граф знаний и отдает агенту через MCP связи вызовов, радиус влияния правок и поиск по коду

MCP-серверРасширенный доступ48 тыс.Звезды репозитория

Скилл /graphify строит граф знаний по коду, документам и PDF проекта, чтобы агент отвечал запросами к графу, а не грепом

СкиллРасширенный доступ132,9 тыс.Звезды репозитория

MCP-сервер и CLI, которые строят граф знаний по монорепозиторию и дают агенту запрашивать, понимать и править многоязычный код

MCP-серверРасширенный доступ5,3 тыс.Звезды репозитория

codesight за один запуск собирает карту проекта: маршруты, модели БД, зависимости, env-переменные. Отдает ее агенту файлами или через MCP-сервер

MCP-серверРасширенный доступ1,4 тыс.Звезды репозитория

Сравнение с похожими

Записи с тем же главным запросом: чем они отличаются.

ЗаписьОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
CodeGraph на Rust (эта запись)нетне нужна905
CodeGraphнетне нужна74 886граф на SQLite без внешних сервисов, ключи не нужны; здесь ответы формирует встроенная модель поверх графа в SurrealDB
code-graph-ragнетне нужна5 277граф знаний по монорепозиторию с запросами на естественном языке, MCP-сервер и CLI
codebase-memory-mcpнетне нужна47 260локально отвечает на структурные запросы о функциях, классах, вызовах и маршрутах

Коротко о README

В репозитории рабочая область Cargo из отдельных крейтов, четыре установочных скрипта (полный, облачный, быстрый для macOS и базовый), пример конфигурации `config/example.toml`, руководства по установке и использованию, описание командной строки агента и тестовые сценарии `agentic_test_cases.py`. Основная страница проекта показывает пример ответа инструмента, таблицу уровней индексации, замеры точности по уровням и схему из клиента MCP, сервера и графового хранилища.

Бейдж для README

Сообщить о проблеме

Foxx AICodeGraph на Rust
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.