Graphify для Claude Code и Codex: граф кодовой базы вместо бесконечного grep
Graphify · code graph · Claude Code · Codex · Cursor

Graphify для Claude Code и Codex: граф кодовой базы вместо бесконечного grep по файлам

Большой проект сложно понимать по одному файлу за раз. AI-агент находит класс через grep, затем читает импорт, потом соседний модуль, затем вызываемую функцию и снова возвращается назад. Graphify строит из кодовой базы граф: функции, классы, imports, calls, inheritance, design rationale и связи между файлами становятся узлами и рёбрами, которые можно запрашивать напрямую.

0.9.65 последний пакет graphifyy на PyPI на момент проверки
Python 3.10+ официальное минимальное требование текущего пакета
Apache-2.0 open-source CLI, skill, graph query и MCP-интерфейс
Суть проекта

Graphify превращает кодовую базу в граф, который AI может обходить по связям

При обычном поиске агент задаёт вопрос в духе «где реализована авторизация?» и получает набор файлов или строк. Но архитектура проекта — это не только совпадения текста. Важны связи: кто вызывает функцию, от какого класса идёт наследование, какой модуль импортирует другой, какая таблица связана foreign key и почему вообще появился конкретный workaround.

Обычный поиск

Файлы и строки

Grep хорошо отвечает «где встречается это имя», но не хранит готовую карту отношений между сущностями.

Graphify

Узлы и рёбра

Кодовая сущность становится node, а calls/imports/inherits и другие отношения — edges, которые можно обходить.

01 AST вместо LLM для кода

Tree-sitter детерминированно разбирает код локально.

02 Связи объяснимы

Рёбра маркируются как EXTRACTED, INFERRED или AMBIGUOUS.

03 Нет обязательного vector store

Базовый code graph можно строить и обходить без embedding-first архитектуры.

04 Граф сохраняется

После построения агент может задавать новые вопросы без повторного полного сканирования проекта.

Pipeline

Как Graphify строит карту проекта

detect()что есть в каталоге
→
extract()узлы и связи
→
build()граф
→
cluster()подсистемы
→
analyzegod nodes и связи
→
exportHTML / JSON / report

Кодовые файлы проходят Tree-sitter parsing. Graphify извлекает классы, функции, imports, вызовы, inline-комментарии и другие структурные элементы. SQL получает отдельную обработку: таблицы, views, foreign keys и JOIN-связи могут извлекаться детерминированно.

EXTRACTED Прямо найдено в исходнике

Например, import или явный function call.

INFERRED Вычислено Graphify

Например, связь, разрешённая вторым проходом call graph.

AMBIGUOUS Есть неопределённость

Такая связь должна восприниматься как гипотеза, а не факт.

Это важнее красивой визуализации.

Хороший graph tool должен позволять отличать отношение, которое реально записано в коде, от отношения, которое инструмент реконструировал косвенно.

Результат построения

Три основных файла: визуализация, отчёт и машинный граф

Browser graph.html

Интерактивная карта: искать узлы, фильтровать и визуально смотреть clusters и связи.

Human-readable GRAPH_REPORT.md

God nodes, communities, неожиданные cross-file connections и suggested questions.

Machine-readable graph.json

Полный граф для query, path, explain, MCP и собственной автоматизации.

God nodes — наиболее связанные концепты проекта. Communities — группы узлов, которые алгоритм кластеризации считает отдельными подсистемами. Это не абсолютная «правильная архитектура», а вычисленная карта, которую нужно сверять с кодом.

Query-first workflow

Вместо «прочитай весь проект» можно задать графу конкретный вопрос

graphify query "show the auth flow"

graphify query "what connects DigestAuth to Response?" \
  --graph graphify-out/graph.json
Query

Найти связанные сущности по вопросу о проекте.

Path

Проследить цепочку между двумя частями системы.

Explain

Получить объяснение выбранного concept/node на основе графа.

Neighbors

Посмотреть непосредственные связи конкретной сущности.

Для AI-агента это может быть дешевле, чем читать десятки файлов «на всякий случай».

Сначала граф сужает область интереса, затем агент открывает только нужные исходники.

Установка

Как поставить Graphify

Официальный PyPI package называется graphifyy с двумя «y». CLI-команда при этом — обычная graphify. Проект отдельно предупреждает, что другие похожие PyPI-пакеты не являются официальными.

Рекомендуется

Через uv

uv tool install graphifyy
graphify install
Альтернатива

Через pipx

pipx install graphifyy
graphify install
Windows

Сначала установить uv

winget install astral-sh.uv
uv tool install graphifyy
Если команда не найдена

Обновить PATH для uv

uv tool update-shell

После этого открыть новый terminal.

В PowerShell не используйте /graphify . как shell-команду.

Leading slash в PowerShell интерпретируется как separator. В terminal запускайте graphify .. Slash-команда относится к интерфейсу AI-assistant.

Claude Code, Codex, Cursor и другие

Graphify умеет устанавливать постоянные инструкции прямо в coding-agent

Claude Code
graphify install
graphify claude install

Skill плюс hook, который подталкивает агента сначала обратиться к графу.

Codex
graphify install --platform codex
graphify codex install

Always-on guidance записывается в AGENTS.md.

Cursor
graphify cursor install

Создаётся .cursor/rules/graphify.mdc с alwaysApply: true.

Gemini CLI
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/, после чего его можно версионировать вместе с проектом.

Для Claude Code есть strict mode.

graphify install --project --strict может заблокировать первое raw source read в сессии и направить агента сначала к графу. Дальше режим возвращается к обычному мягкому напоминанию.

Local-first

Код можно индексировать полностью офлайн — без API key и отправки исходников модели

Для code-only corpus Graphify строит AST-граф локально через Tree-sitter. В нормальном pipeline code files не отправляются semantic extractor. Если нужно гарантированно пропустить документы, PDF и media, есть отдельный флаг:

graphify extract ./project --code-only
Code Локально

Tree-sitter AST, imports, classes, functions и call relationships — без LLM API.

Video / audio Локальная транскрипция

Проект использует faster-whisper, затем transcript может участвовать в дальнейшей обработке.

Docs / PDF / images Нужен semantic pass

Эти материалы могут отправляться модели вашего IDE или настроенному backend.

Headless extraction Вы сами выбираете backend

Поддерживаются Claude, OpenAI-compatible API, Gemini, Ollama, Bedrock и другие варианты.

Фраза «Graphify ничего не отправляет наружу» верна только для code-only сценария.

Если в graph входят документы, изображения или другие материалы с semantic extraction, нужно отдельно смотреть, какой LLM backend настроен и какие данные ему передаются.

Не только исходники

Graphify может связать код с README, ADR, RFC, SQL, PDF и design rationale

Одно из отличий проекта — попытка построить общую карту не только по символам кода. Комментарии вида # NOTE:, # WHY: и # HACK:, ссылки на ADR/RFC и документацию могут становиться отдельными nodes, связанными с реализацией.

Code ↔ docs

Почему конкретный модуль существует и какая документация его объясняет.

SQL ↔ application

Tables, foreign keys, JOIN relationships и код, который с ними работает.

Design rationale

Комментарии и архитектурные документы можно связывать с соответствующим кодом.

Media

При необходимости граф может включать транскрипты видео и другие источники.

Для закрытого проекта это место требует наибольшего внимания.

Code-only можно держать полностью локально, а semantic обработка документов зависит от выбранного backend.

Model Context Protocol

Граф можно отдать 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"
Не публикуйте graph server в интернет без authentication и сетевых ограничений.

Граф способен раскрывать структуру закрытого проекта, имена сущностей и архитектурные связи, даже если исходные файлы напрямую не раздаются.

Проверяем цифры

В авторском 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.

70,8%baseline grep/read/list
82,0%с Graphify tool
~1M LOCERPNext codebase
≤14 turnsлимит agent run

В memory benchmark проект также публикует LOCOMO recall@10 0,497 и LongMemEval-S QA 76%. Но для статьи о понимании кодовой базы эти memory-цифры вторичны: они измеряют другой workload.

Benchmark написан и запущен авторами Graphify.

Это не независимое исследование. В открытом issue пользователи также задавали вопросы о полной воспроизводимости memory harness, поэтому корректнее воспринимать эти результаты как опубликованные данные проекта, а не как универсальную гарантию превосходства над другими инструментами.

Первоисточник: BENCHMARKS.md
Связанный инструмент

Graphify и Repomix решают похожую проблему разными способами

ЗадачаRepomixGraphify
Передать проект другой LLMОчень удобноНужна интеграция или graph files
Сохранить исходный текстДаГраф хранит прежде всего структуру связей
Точечно отвечать о связяхLLM читает snapshotQuery/path по готовому графу
Большой проектУпирается в token budgetМожно сначала сузить область графом
Одноразовый анализПрощеИндекс может быть избыточен
Постоянная работа coding-agentНужно обновлять snapshotGraph query удобнее как persistent layer

Для разового «вот весь repository, сделай review» Repomix проще. Для постоянного «кто вызывает этот сервис, какие подсистемы через него связаны и какой путь до этой таблицы» Graphify может дать более естественный интерфейс.

Ограничения

Граф не является идеальной моделью программы

01Dynamic behavior

Reflection, runtime DI, monkey-patching и generated code могут быть плохо видны статическому AST-анализу.

02Inference может ошибаться

INFERRED и особенно AMBIGUOUS связи нужно проверять по исходнику.

03Индекс устаревает

После заметных изменений кодовую базу нужно обновлять, например через --update.

04Не заменяет raw source

Перед patch агент всё равно должен открыть конкретные файлы и проверить реальную реализацию.

05Docs могут требовать LLM

Полностью офлайн сценарий проще гарантировать для --code-only.

06Большой граф тоже создаёт шум

Плохой вопрос к графу способен вернуть слишком широкую область проекта.

Правильный pattern: graph-first, source-second.

Сначала использовать граф для навигации и ограничения scope, затем проверять критичные выводы по исходному коду.

Первоисточники

Исходники, архитектура и benchmark Graphify

Материал проверен 21 сентября 2026 года.

Последний опубликованный 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 нельзя принимать за истину, а перед реальным изменением кода агент всё равно должен сверяться с исходниками.

FAQ

Частые вопросы о 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 режим для закрытого проекта.