CodeGraph на Rust
codegraph-rust
Граф кода для агента на Rust: четыре MCP-инструмента показывают, что заденет правка, как устроена архитектура и где хрупкие места проекта
- 905 ★ репозитория
- Последний коммит
Расширенный доступ
Почему такой уровень
- Читает все исходники проекта и сохраняет их разбор и векторные представления в `.codegraph/db`
- При облачном провайдере эмбеддингов или модели выдержки кода уходят во внешний сервис вместе с ключом из `.env`
- `codegraph init` дописывает хуки агента и разделы в `AGENTS.md` и `CLAUDE.md` проекта
Установка
- Работает в
Ручная установка
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-сервер отдает точки входа, связи символов и радиус влияния изменений за один вызов
Локальный граф структуры кода: строит карту репозитория через tree-sitter и отдает агенту по MCP только тот контекст, который относится к правке
Индексирует кодовую базу в граф знаний и отдает агенту через MCP связи вызовов, радиус влияния правок и поиск по коду
Скилл /graphify строит граф знаний по коду, документам и PDF проекта, чтобы агент отвечал запросами к графу, а не грепом
MCP-сервер и CLI, которые строят граф знаний по монорепозиторию и дают агенту запрашивать, понимать и править многоязычный код
codesight за один запуск собирает карту проекта: маршруты, модели БД, зависимости, env-переменные. Отдает ее агенту файлами или через MCP-сервер
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| 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, сервера и графового хранилища.