Your repo as a knowledge graph.
Graphify is an open-source (MIT) skill for your AI coding assistant. Install it, map your repo, and query the graph from the CLI or over MCP. About five minutes, entirely on-device.
01Install
Graphify ships as a single Python package + CLI (graphifyy on PyPI). No account, no API keys, nothing leaves your machine. Install the tool, then graphify install registers the /graphify skill with the AI coding assistants it detects: Claude Code, Cursor, GitHub Copilot, Codex, Gemini CLI, Aider, and 17 in total.
$ uv tool install graphifyy✓ installed graphify # alternatives:# pipx install graphifyy# pip install graphifyy$ graphify install✓ detected Claude Code, Cursor, GitHub Copilot✓ /graphify skill registered · 17 assistants supported02Build the graph
In your assistant, run /graphify . to map 36 code languages plus Markdown, PDFs, Office docs, SQL schemas, live PostgreSQL, and Terraform into one knowledge graph. Three files land in graphify-out/, and from then on your assistant queries the graph instead of grepping.
# in your assistant (Claude Code, Cursor, Copilot, …):/graphify . ✓ graphify-out/graph.html interactive graph✓ graphify-out/GRAPH_REPORT.md architecture report✓ graphify-out/graph.json machine-readable graph # re-scan only what changed: /graphify . --update# deeper multi-pass analysis: /graphify . --mode deep03Query & traverse
Ask in plain English from your terminal. Answers come back as explicit paths with real file:line citations. Every relation is tagged EXTRACTED, INFERRED, or AMBIGUOUS, so you always know what's grounded in code and what's a guess.
$ graphify query "what connects auth to the database?"AuthService → SessionStore → DatabasePool [EXTRACTED] src/auth/service.py:42 → src/db/pool.py:17 $ graphify path "UserService" "DatabasePool"UserService → UserRepository → DatabasePool (2 hops) $ graphify explain "RateLimiter"RateLimiter · class · src/middleware/rate_limit.pycalled by ApiGateway, WebhookHandler · calls RedisClient04Use with MCP
The MCP server exposes the graph to any MCP client over stdio, or as a shared HTTP server so several assistants read one graph. It provides 8 tools, including query_graph, get_node, get_neighbors, shortest_path, list_prs, get_pr_impact, and triage_prs.
$ python -m graphify.serve graphify-out/graph.json✓ MCP server ready (stdio) · 8 tools: query_graph · get_node · get_neighbors · shortest_path list_prs · get_pr_impact · triage_prs · … # shared HTTP server (one graph, many clients):$ python -m graphify.serve graphify-out/graph.json --http --port 7777Or register it declaratively. For Claude Code, add this to .mcp.json in your project root:
{ "mcpServers": { "graphify": { "command": "python", "args": ["-m", "graphify.serve", "graphify-out/graph.json"] } }}05Review PRs against the graph
graphify prs maps every open pull request onto the graph: which nodes it touches, where PRs overlap, and which pairs carry merge risk. Use --triage to get a review order and --conflicts to catch collisions before they land, locally or in CI.
$ graphify prs#482 refactor: extract PaymentGateway touches 12 nodes · 3 shared with #479#479 fix: retry logic in RedisClient touches 4 nodes $ graphify prs --triage#482 HIGH overlaps #479 on RedisClient · review first#479 LOW isolated change $ graphify prs --conflicts#482 ↔ #479 both modify RedisClient.retry · merge riskNext steps
Deeper reference material lives in the open-source repo.