Graphify для Claude Code и Codex: граф кодовой базы вместо бесконечного grep по файлам
Большой проект сложно понимать по одному файлу за раз. AI-агент находит класс через grep, затем читает импорт, потом соседний модуль, затем вызываемую функцию и снова возвращается назад. Graphify строит из кодовой базы граф: функции, классы, imports, calls, inheritance, design rationale и связи между файлами становятся узлами и рёбрами, которые можно запрашивать напрямую.
Graphify превращает кодовую базу в граф, который AI может обходить по связям
При обычном поиске агент задаёт вопрос в духе «где реализована авторизация?» и получает набор файлов или строк. Но архитектура проекта — это не только совпадения текста. Важны связи: кто вызывает функцию, от какого класса идёт наследование, какой модуль импортирует другой, какая таблица связана foreign key и почему вообще появился конкретный workaround.
Файлы и строки
Grep хорошо отвечает «где встречается это имя», но не хранит готовую карту отношений между сущностями.
Узлы и рёбра
Кодовая сущность становится node, а calls/imports/inherits и другие отношения — edges, которые можно обходить.
Tree-sitter детерминированно разбирает код локально.
Рёбра маркируются как EXTRACTED, INFERRED или AMBIGUOUS.
Базовый code graph можно строить и обходить без embedding-first архитектуры.
После построения агент может задавать новые вопросы без повторного полного сканирования проекта.
Как Graphify строит карту проекта
Кодовые файлы проходят Tree-sitter parsing. Graphify извлекает классы, функции, imports, вызовы, inline-комментарии и другие структурные элементы. SQL получает отдельную обработку: таблицы, views, foreign keys и JOIN-связи могут извлекаться детерминированно.
Например, import или явный function call.
Например, связь, разрешённая вторым проходом call graph.
Такая связь должна восприниматься как гипотеза, а не факт.
Хороший graph tool должен позволять отличать отношение, которое реально записано в коде, от отношения, которое инструмент реконструировал косвенно.
Три основных файла: визуализация, отчёт и машинный граф
Интерактивная карта: искать узлы, фильтровать и визуально смотреть clusters и связи.
God nodes, communities, неожиданные cross-file connections и suggested questions.
Полный граф для query, path, explain, MCP и собственной автоматизации.
God nodes — наиболее связанные концепты проекта. Communities — группы узлов, которые алгоритм кластеризации считает отдельными подсистемами. Это не абсолютная «правильная архитектура», а вычисленная карта, которую нужно сверять с кодом.
Вместо «прочитай весь проект» можно задать графу конкретный вопрос
graphify query "show the auth flow"
graphify query "what connects DigestAuth to Response?" \
--graph graphify-out/graph.json
Найти связанные сущности по вопросу о проекте.
Проследить цепочку между двумя частями системы.
Получить объяснение выбранного concept/node на основе графа.
Посмотреть непосредственные связи конкретной сущности.
Сначала граф сужает область интереса, затем агент открывает только нужные исходники.
Как поставить Graphify
Официальный PyPI package называется graphifyy с двумя «y».
CLI-команда при этом — обычная graphify. Проект отдельно предупреждает,
что другие похожие PyPI-пакеты не являются официальными.
Через uv
uv tool install graphifyy
graphify install
Через pipx
pipx install graphifyy
graphify install
Сначала установить uv
winget install astral-sh.uv
uv tool install graphifyy
Обновить PATH для uv
uv tool update-shell
После этого открыть новый terminal.
/graphify . как shell-команду.
Leading slash в PowerShell интерпретируется как separator. В terminal запускайте graphify .. Slash-команда относится к интерфейсу AI-assistant.
Graphify умеет устанавливать постоянные инструкции прямо в coding-agent
graphify install
graphify claude install
Skill плюс hook, который подталкивает агента сначала обратиться к графу.
graphify install --platform codex
graphify codex install
Always-on guidance записывается в AGENTS.md.
graphify cursor install
Создаётся .cursor/rules/graphify.mdc с alwaysApply: true.
graphify install --platform gemini
graphify gemini install
Используются инструкции и BeforeTool hook.
Project-scoped установка
graphify install --project
graphify install --project --platform codex
В этом режиме skill кладётся внутрь текущего repository, например в
.claude/skills/graphify/ или .agents/skills/graphify/,
после чего его можно версионировать вместе с проектом.
graphify install --project --strict может заблокировать первое raw source read в сессии
и направить агента сначала к графу. Дальше режим возвращается к обычному мягкому напоминанию.
Код можно индексировать полностью офлайн — без API key и отправки исходников модели
Для code-only corpus Graphify строит AST-граф локально через Tree-sitter. В нормальном pipeline code files не отправляются semantic extractor. Если нужно гарантированно пропустить документы, PDF и media, есть отдельный флаг:
graphify extract ./project --code-only
Tree-sitter AST, imports, classes, functions и call relationships — без LLM API.
Проект использует faster-whisper, затем transcript может участвовать в дальнейшей обработке.
Эти материалы могут отправляться модели вашего IDE или настроенному backend.
Поддерживаются Claude, OpenAI-compatible API, Gemini, Ollama, Bedrock и другие варианты.
Если в graph входят документы, изображения или другие материалы с semantic extraction, нужно отдельно смотреть, какой LLM backend настроен и какие данные ему передаются.
Graphify может связать код с README, ADR, RFC, SQL, PDF и design rationale
Одно из отличий проекта — попытка построить общую карту не только по символам кода.
Комментарии вида # NOTE:, # WHY: и # HACK:,
ссылки на ADR/RFC и документацию могут становиться отдельными nodes, связанными с реализацией.
Почему конкретный модуль существует и какая документация его объясняет.
Tables, foreign keys, JOIN relationships и код, который с ними работает.
Комментарии и архитектурные документы можно связывать с соответствующим кодом.
При необходимости граф может включать транскрипты видео и другие источники.
Code-only можно держать полностью локально, а semantic обработка документов зависит от выбранного backend.
Граф можно отдать AI как набор MCP-tools
python -m graphify.serve graphify-out/graph.json
MCP server даёт structured tools вроде query_graph, get_node,
get_neighbors и shortest_path.
Это удобнее, чем постоянно загружать целый graph.json в prompt.
Общий HTTP server для команды
python -m graphify.serve graphify-out/graph.json \
--transport http \
--port 8080 \
--api-key "$SECRET"
Граф способен раскрывать структуру закрытого проекта, имена сущностей и архитектурные связи, даже если исходные файлы напрямую не раздаются.
В авторском code-intelligence benchmark агент с Graphify поднялся с 70,8% до 82,0% key-fact coverage
В benchmark проекта используется ERPNext — production repository примерно на миллион строк Python. Фиксированный coding-agent получает базовый набор grep/read/list и дополнительно один code-intelligence tool. В опубликованном описании для agent использовался Claude Opus 4.8 с лимитом до 14 turns.
В memory benchmark проект также публикует LOCOMO recall@10 0,497 и LongMemEval-S QA 76%. Но для статьи о понимании кодовой базы эти memory-цифры вторичны: они измеряют другой workload.
Это не независимое исследование. В открытом issue пользователи также задавали вопросы о полной воспроизводимости memory harness, поэтому корректнее воспринимать эти результаты как опубликованные данные проекта, а не как универсальную гарантию превосходства над другими инструментами.
Graphify и Repomix решают похожую проблему разными способами
Для разового «вот весь repository, сделай review» Repomix проще. Для постоянного «кто вызывает этот сервис, какие подсистемы через него связаны и какой путь до этой таблицы» Graphify может дать более естественный интерфейс.
Граф не является идеальной моделью программы
Reflection, runtime DI, monkey-patching и generated code могут быть плохо видны статическому AST-анализу.
INFERRED и особенно AMBIGUOUS связи нужно проверять по исходнику.
После заметных изменений кодовую базу нужно обновлять, например через --update.
Перед patch агент всё равно должен открыть конкретные файлы и проверить реальную реализацию.
Полностью офлайн сценарий проще гарантировать для --code-only.
Плохой вопрос к графу способен вернуть слишком широкую область проекта.
Сначала использовать граф для навигации и ограничения scope, затем проверять критичные выводы по исходному коду.
Исходники, архитектура и benchmark Graphify
Последний опубликованный PyPI package на момент проверки — graphifyy 0.9.65 от 20 сентября 2026 года.
Graphify полезен там, где проблема уже не «найти файл», а понять сеть связей между файлами
Маленькому проекту отдельный knowledge graph часто не нужен: grep, IDE navigation и обычный AI-context справятся быстрее. Но в большой кодовой базе стоимость постоянного повторного исследования архитектуры растёт.
Сильная сторона Graphify — code-only режим без LLM, persistent graph.json,
запросы по связям и возможность встроить graph-first подход прямо в Claude Code, Codex или Cursor.
При этом inferred relationships нельзя принимать за истину, а перед реальным изменением кода агент всё равно должен сверяться с исходниками.
Частые вопросы о Graphify
Что такое Graphify простыми словами?
Инструмент, который разбирает код и строит граф связей между функциями, классами, imports, calls и другими сущностями, чтобы AI мог искать по архитектуре, а не только по тексту файлов.
Graphify отправляет мой код в облако?
Code-only extraction выполняется локально через Tree-sitter без LLM. Документы, PDF и изображения могут требовать semantic backend, поэтому для полностью локального режима используйте --code-only.
Graphify работает с Claude Code?
Да. Есть skill и always-on hook/instructions, которые подталкивают Claude Code обращаться к графу перед массовым чтением файлов.
Можно ли использовать Graphify с Codex?
Да. Интеграция записывает query-first guidance в AGENTS.md и поддерживает project-scoped install.
Чем Graphify отличается от Repomix?
Repomix складывает выбранный repository content в один файл. Graphify строит persistent graph и позволяет задавать вопросы о связях между сущностями.
Graphify использует vector database?
Базовый code graph строится через AST и graph traversal, а не как обычный embedding/vector index. Дополнительные режимы и benchmark могут использовать hybrid retrieval, поэтому утверждать «embeddings нигде нет» было бы неверно.
Что такое EXTRACTED и INFERRED?
EXTRACTED — связь явно найдена в исходнике. INFERRED — связь вычислена Graphify косвенно. AMBIGUOUS означает, что её нужно особенно тщательно проверять.
Какая версия актуальна?
На момент проверки 21 сентября 2026 года latest PyPI release — graphifyy 0.9.65.
Нужно дать AI доступ к большой кодовой базе без бесконечного чтения файлов?
Можно подобрать подход: Repomix для snapshot, Graphify для graph-first navigation, MCP для постоянного доступа или локальный code-only режим для закрытого проекта.
