Skip to content
Docs · CLI reference

The graphify command line.

One binary, two jobs: wire the /graphify skill into your assistant, then read the graph back out — query, path, explain, and a PR dashboard. Everything runs locally against graphify-out/graph.json.

Install & set up

The CLI ships in the graphifyy package on PyPI. Installing the tool gives you the graphify binary; graphify install then registers the /graphify skill with every AI coding assistant it detects on your machine (17 supported).

uv tool install graphifyy
graphify install [--platform <name>]
graphify uninstall [--purge]
--platform <name>
Register with one specific assistant instead of everything detected — e.g. claude, cursor, codex, gemini, aider, devin.
--purge
With uninstall: also delete the graphify-out/ directory.
terminal
$ uv tool install graphifyy✓ installed graphify $ graphify install✓ detected Claude Code, Cursor, GitHub Copilot✓ /graphify skill registered · 17 assistants supported # alternatives:# pipx install graphifyy# pip install graphifyy

/graphify — build the graph

Building the graph happens inside your assistant, not the terminal: run /graphify . and it maps the project — 36 code languages plus docs, SQL, and more — into graphify-out/. The CLI commands below all read the graph.json this step produces.

/graphify <path> [--update] [--mode deep]
--update
Re-scan only what changed since the last run instead of rebuilding from scratch.
--mode deep
Deeper multi-pass analysis — slower, more inferred connections.
in your assistant
# 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 deep

graphify query

Ask a question in plain English. The CLI traverses the graph breadth-first from the best-matching nodes and prints the relevant subgraph as text — explicit paths with file:line citations, every edge tagged EXTRACTED, INFERRED, or AMBIGUOUS.

graphify query "<question>" [--dfs] [--context <c>] [--budget <n>] [--graph <path>]
--dfs
Depth-first instead of breadth-first — trace one specific chain rather than gathering broad context.
--context <c>
Explicit edge-context filter, e.g. call. Repeatable.
--budget <n>
Cap the output at n tokens (default 2000) — sized to drop into an assistant's context.
--graph <path>
Path to graph.json (default graphify-out/graph.json).
terminal
$ graphify query "what connects auth to the database?"AuthService → SessionStore → DatabasePool        [EXTRACTED]  src/auth/service.py:42 → src/db/pool.py:17 # trace one specific chain instead of broad context:$ graphify query "how does a request reach the cache?" --dfs

graphify path

The shortest path between two nodes — how two pieces of your codebase actually connect, hop by hop. Endpoints are matched by label, so a close-enough name works.

graphify path "<source>" "<target>" [--graph <path>]
--graph <path>
Path to graph.json (default graphify-out/graph.json).
terminal
$ graphify path "UserService" "DatabasePool"UserService → UserRepository → DatabasePool      (2 hops)

graphify explain

A plain-language explanation of one node and its neighborhood: what it is, where it lives, what calls it, and what it calls.

graphify explain "<node>" [--graph <path>]
--graph <path>
Path to graph.json (default graphify-out/graph.json).
terminal
$ graphify explain "RateLimiter"RateLimiter · class · src/middleware/rate_limit.pycalled by ApiGateway, WebhookHandler · calls RedisClient

graphify prs

A graph-aware dashboard of your open GitHub pull requests: CI and review state per PR, plus graph impact — which communities each PR touches, where PRs overlap, and which pairs carry merge risk. Pass a number for a deep dive on one PR.

graphify prs [<number>] [--triage] [--conflicts] [--worktrees] [--base <branch>] [--repo <owner/repo>]
--triage
Rank the review queue with your configured LLM backend: what to review first, and why.
--conflicts
Show PRs that touch the same graph communities — merge-order risk before it becomes a conflict.
--worktrees
Map local git worktrees to branches to open PRs.
--base <branch>
Only PRs targeting this base branch (auto-detected by default).
--repo <owner/repo>
GitHub repository to inspect (defaults to the current repo).
terminal
$ 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 risk

Everything else

The CLI has more surface than fits here — updating and watching the graph, headless extraction for CI, exports, git hooks. graphify --help lists every command and flag, and the README on GitHub covers them in depth.

Prefer your assistant to call the graph natively instead of shelling out? The same data is exposed over MCP — see the MCP tools reference.