On this page
- What does Graphify do?
- How do you set up Graphify for Claude Code?
- Does Graphify have an MCP server?
- Does Graphify need an API key?
- What did Graphify produce on FastAPI?
- What can Graphify answer?
- Where does Graphify fit well?
- Where does Graphify stop?
- Which Graphify alternatives are there?
- How does repowise differ from Graphify?
- Graphify vs Obsidian: what is the difference?
- Which one should you pick?
- FAQ
Graphify is an open-source skill and CLI that turns a folder of code, docs, PDFs and images into a queryable knowledge graph, so a coding agent can look up relationships instead of grepping files one by one. As of October 2026 it has about 138,000 stars on GitHub and is Apache-2.0 licensed.
We installed it, ran it on fastapi/fastapi, indexed the same checkout with repowise, and asked both the questions an agent asks. Disclosure: we build repowise. Everything about Graphify below is from its repository or from the run described here.
What does Graphify do?
Graphify parses source code locally with tree-sitter (the project says about 40 languages), links symbols, imports and calls into a graph, groups the graph into communities, and writes graph.json and a GRAPH_REPORT.md of the most connected nodes. Documents, PDFs and images go through an optional model pass using your assistant's model or an API key you provide, and the code pass needs neither.
It started on 3 April 2026 and was created by Graphify-Labs. The repository README describes it as a /graphify skill for Claude Code, and graphify install also registers it for Codex, Gemini CLI, Cursor, OpenCode, Aider and others.
How do you set up Graphify for Claude Code?
Install the CLI, register the skill, then run /graphify . inside Claude Code. The PyPI package is graphifyy with two y's; the repository warns that other graphify* packages are not affiliated.
uv tool install graphifyy # or: pipx install graphifyy / pip install graphifyy
graphify install # registers the skill for the assistants it detects
# then, inside Claude Code:
/graphify .
Two more commands change how it behaves in Claude Code. graphify claude install writes a section to CLAUDE.md and adds a PreToolUse hook that points Claude at the graph before broad searches. graphify hook install adds git hooks that rebuild the graph after commits. Python 3.10 or newer is required.
Does Graphify have an MCP server?
Yes, as an optional extra. uv tool install "graphifyy[mcp]" adds an MCP server that serves a graph.json over stdio or HTTP (python -m graphify.serve graphify-out/graph.json, with --transport http for the HTTP form; the graphify-mcp command is the same entry point). graphify install does not register an MCP connection for you, so you add the server to your client yourself, for example claude mcp add graphify -- graphify-mcp graphify-out/graph.json. We confirmed the serve options from --help but did not wire the server into a client in this run; we used the CLI.
Does Graphify need an API key?
Not for code. graphify extract <path> --code-only runs the tree-sitter pass offline. Docs, PDFs and images need a model: your assistant inside the skill, or one of Gemini, Moonshot, Anthropic, OpenAI, DeepSeek, Ollama or Bedrock credentials for headless graphify extract. GRAPHIFY_BACKEND=none turns every model backend off.
What did Graphify produce on FastAPI?
On fastapi/fastapi at commit 79cab5b, graphify extract . --code-only finished in 50 seconds and wrote a graph of 9,261 nodes and 19,962 edges. We ran it on 29 October 2026 on a Windows 11 desktop; Graphify used 32 worker processes. A second step, graphify cluster-only ., took 8 seconds and wrote the report.
| Measure | Graphify 0.9.31 | repowise 0.59.0 |
|---|---|---|
| Command | graphify extract . --code-only, then graphify cluster-only . | repowise init --yes --no-prose --no-editor-setup |
| Wall time | 50 s, plus 8 s for clustering | 112 s |
| Input | 1,229 code files; 1,751 docs and 244 images skipped by --code-only | the same checkout |
| Output | graph.json 12.2 MB, GRAPH_REPORT.md 164 KB | .repowise/ 94 MB |
| Graph | 9,261 nodes, 19,962 edges, 834 communities | call graph, git history, health, dead code |
| Model calls | none | none |
Scroll the table sideways to see every column.
The checkout has 131,859 Python lines across 3,233 files, and 22,748 of those lines are in the fastapi/ package itself. The rest is tests and the docs_src/ tutorial examples, which both tools index. Both ran on a depth-1 clone, so neither saw git history beyond one commit.
Three details from the Graphify run matter in practice:
- No
graph.html. The README sets a 5,000-node default for the interactive viewer; above it,export htmlrenders an aggregated community view and--node-limitraises the cap. At 9,261 nodes ourcluster-onlyrun wrote the JSON and the report but nograph.html. - Placeholder community names. With no model backend, communities stay named after their top node or
Community N. The label step uses a model. - A 2,000-token default answer budget.
graphify querystopped at 70 of 211 matching nodes and said so;--budgetraises it.
What can Graphify answer?
Graphify answers structural questions from graph.json with query, path, explain, affected and god-nodes. Here is what each returned on FastAPI.
| Question an agent asks | Graphify command | What came back | repowise command | What came back |
|---|---|---|---|---|
Where is solve_dependencies defined? | graphify query "where is solve_dependencies defined" | A 211-node traversal cut to 70; the first node is fastapi/dependencies/utils.py line 643 | repowise search solve_dependencies --mode symbol | One exact match, fastapi/dependencies/utils.py line 643, in 4.2 s including CLI start-up |
What calls get_dependant? | graphify explain and graphify query | query mixed callers and callees in one 86-node traversal; explain lists labelled in and out edges with source lines | repowise context fastapi/dependencies/utils.py::get_dependant --include callers | Four direct callers with confidence (0.9 to 0.95), edge type and call line, in 3.1 s |
| What breaks if I change it? | graphify affected "get_dependant" | Reverse traversal at depth 2: routing, openapi/utils.py, tests, and seven docs_src tutorial files | repowise context fastapi/dependencies/utils.py --include callers | File rollup: routing.py 10 inbound calls, openapi/utils.py 5, plus importing tests |
| What is the hub of the codebase? | graphify god-nodes | FastAPI 1,222 edges, post() 672, Depends() 204 | repowise init summary | Lowest-scoring file fastapi/dependencies/utils.py, health 9.0 of 10 for the repo |
| What is dead code? | none | The CLI has no dead-code command | repowise dead-code | 260 findings, all medium confidence, none marked deletion-ready |
Scroll the table sideways to see every column.
Graphify's explain output is the strongest piece: for solve_dependencies it listed 26 connections, each tagged EXTRACTED or INFERRED with a file and line. The report says 94% of edges were extracted and 6% inferred, which is a useful honesty signal on a call graph. repowise returns the same kind of edge with a numeric confidence and a resolution note (same_file, import_scoped).
On dead code, 236 of the 260 repowise findings are files under docs_src/ (234 tutorial snippets) or docs/ (2 JavaScript files for the docs site); the other 24 are unused symbols in tests and scripts. The tutorial files are examples that nothing imports, so they are reported as unreachable. repowise grades every finding 40% confidence and marks none deletion-ready, which is the intended reading: a list to review, not a delete script.
Where does Graphify fit well?
Graphify fits best when your material is a mixture. It is the only tool in this group that treats PDFs, Markdown notes, screenshots, SQL schemas and video as first-class inputs next to code, and the README lists extras for SQL, Postgres, Terraform, Office files and more. A research folder, a monorepo with a design-doc archive, or a data team's repo of schemas and papers all suit it.
It also ships more export routes than the others: graph.html, a markdown wiki (--wiki), GraphML for Gephi and yEd (--graphml), Cypher for Neo4j (--neo4j), SVG (--svg), and an opt-in Obsidian vault (--obsidian), per the skill's command list. graphify merge-graphs joins several repos' graphs, graphify watch rebuilds on change, and graphify update re-extracts code with no model.
The code-only extraction is fast. 50 seconds for 1,229 files on one desktop is quicker than repowise's 112 seconds on the same checkout, which is expected because repowise also computes git signals, health scores and dead-code analysis in that pass.
Where does Graphify stop?
Graphify stops at structure. In this run its CLI exposed query, path, explain, affected and god-nodes, and none of them read git history, ownership, code health, dead code or change risk. If your agent asks "is this file a hotspot?" or "who owns this?", the graph does not contain the answer.
Four other limits showed up in the run:
- Result size. A natural-language
queryis a breadth-first traversal, not a ranked answer. On "what callsget_dependant" it returned callers and callees together, truncated at 58 of 86 nodes. - Test and tutorial noise. The
affectedoutput for one function included sevendocs_srctutorial imports and several test files alongside the production callers, because they are all in the graph. Hub rankings do the same: a genericpost()node had 672 edges. - Name quality. Community labels need a model backend to read as names; without one the report's hubs are symbol names.
- Freshness is yours to manage. The graph records its build commit. You keep it current with
graphify update, a git hook, orwatch.
We did not run the document and PDF pass, which needs a model and is where Graphify differs most from the others, so we make no claim about its quality.
Which Graphify alternatives are there?
The main alternatives are Serena, GitNexus, CodeGraph, code-review-graph and repowise, and they differ more in what they index than in how they install. This table is checked against each project's repository on 29 October 2026.
| Tool | Stars (29 Oct 2026) | License | What it builds | Agent surface | Pick it for |
|---|---|---|---|---|---|
| Graphify | 138k | Apache-2.0 | Graph of code, docs, PDFs, images; communities and report | Claude Code skill, optional MCP server, hooks | Mixed corpora, many export formats, opt-in Obsidian vault |
| Serena | 31k | MIT for SolidLSP, GPL-3.0-or-later for the app | No graph: symbol lookup and edits through language servers or a paid JetBrains plugin | MCP tools | Precise symbol reads and refactors |
| GitNexus | 48k | PolyForm Noncommercial 1.0.0 | Graph of symbols, calls and execution flows | MCP tools, CLI, web explorer | Impact and rename previews, non-commercial use |
| CodeGraph | 76k | MIT | SQLite call graph with a file watcher | MCP tools, centred on codegraph_explore | Fast structural answers |
| code-review-graph | 32k | MIT | Tree-sitter graph kept in one SQLite file | MCP server, hooks and skills | Review context for a diff |
| repowise | 8k (GitHub) | AGPL-3.0 | Call graph plus git history, health, dead code, decisions and docs | ten MCP tools, CLI, hooks | History, risk and ownership questions as well as structure |
Scroll the table sideways to see every column.
Two license notes matter before you adopt anything. GitNexus is under PolyForm Noncommercial 1.0.0, which permits noncommercial use only, so using it for paid work at a company needs a separate commercial license from its authors. Serena's application code is GPL-3.0-or-later, which affects how you can redistribute it.
For measured numbers across Serena, Graphify, CodeGraph and repowise (agent tokens, retrieval coverage, index time) read the four-way benchmark. For a wider list of graph servers see best code graph MCP servers, and for the product page see Graphify alternative.
How does repowise differ from Graphify?
repowise indexes the repository's call graph and also the repository's history. In the same 112-second init on FastAPI it built the graph, scored code health, ranked dead-code candidates and mined git signals, and agents reach all of it through ten MCP tools such as get_context, get_risk, get_dead_code and get_answer.
repowise init --yes --no-prose --no-editor-setup # local, no API key, no model calls
repowise search solve_dependencies --mode symbol
repowise context fastapi/dependencies/utils.py::get_dependant --include callers
repowise dead-code
Adding a model with repowise generate writes prose wiki pages on top. Graphify's strength, documents and PDFs, is not something repowise tries to match; repowise indexes code and what git knows about it. See agent context for how the tools are used from Claude Code, Cursor and Codex.
Graphify vs Obsidian: what is the difference?
Obsidian is a notes app and Graphify is a graph builder, so they are not competitors. Obsidian's graph view draws the links you write between notes. Graphify extracts relationships from code and documents on its own, and with the --obsidian flag (optional, off by default) it writes a vault, one note per node, that you can open in Obsidian.
Our code-only FastAPI run did not pass that flag and wrote no vault, so we did not test the Obsidian output. If you keep research notes in Obsidian and want an agent to query them, Graphify is a fit. If you want an agent to understand a codebase, the vault is optional.
Which one should you pick?
Pick Graphify if your corpus mixes code with PDFs, notes and diagrams, if you want the graph exported to Obsidian (opt-in), Neo4j or GraphML, or if a fast, offline, structure-only index is enough. Pick Serena if your agent mostly needs to read and edit exact symbols. Pick CodeGraph for a lean call graph and one-tool simplicity. Pick GitNexus for impact and rename previews if a noncommercial license works for you. Pick repowise if the questions include history, risk, ownership or dead code. Use two together if you want it: Graphify's graph for the documents, repowise for the code.
To decide on your own repo, run both in a scratch clone and ask your five most common agent questions:
git clone --depth 1 https://github.com/<you>/<repo> scratch && cd scratch
uv tool install graphifyy && graphify extract . --code-only
repowise init --yes --no-prose --no-editor-setup
FAQ
- What is Graphify?
- Graphify is an Apache-2.0 open-source skill and CLI, maintained by Graphify-Labs, that builds a queryable knowledge graph from code, documents, PDFs and images. It parses code locally with tree-sitter and writes
graph.jsonandGRAPH_REPORT.md. - Is Graphify free?
- Yes. The open-source CLI and skill are free under Apache-2.0, and code extraction needs no API key. The document, PDF and image pass uses a model, so those runs cost whatever your provider charges. The project also promotes a separate hosted product, Graphify Cloud.
- How do I use Graphify with Claude Code?
- Run
uv tool install graphifyy, thengraphify install, then type/graphify .in Claude Code.graphify claude installadds aCLAUDE.mdsection and a PreToolUse hook so Claude consults the graph before broad searches. - Does Graphify have an MCP server?
- Yes. Install the
mcpextra withuv tool install "graphifyy[mcp]"and serve a graph withpython -m graphify.serve graphify-out/graph.json, over stdio or HTTP.graphify installdoes not register it, so you add it to your MCP client yourself. - What are the best Graphify alternatives?
- Serena for symbol-level reads and edits, CodeGraph for a lean call graph, GitNexus for impact analysis (noncommercial license), code-review-graph for diff review, and repowise for a code index that also covers git history, code health and dead code. The right one depends on the questions your agent asks.
- What is the official Graphify website?
- The source of truth is the GitHub repository, Graphify-Labs/graphify. Its README links the documentation at docs.graphify.com and the hosted Graphify Cloud product at app.graphify.com. The README also warns that other
graphify*packages on PyPI are not affiliated; the real CLI package isgraphifyy. - Is Graphify the same as Obsidian?
- No. Obsidian is a notes app; Graphify generates a graph from your files. Graphify can write an Obsidian vault with
--obsidian, but you can use either one without the other.



