/graphify Skill: Local AST Knowledge Graph, No Vectors
Skill entry: graphify by Safi Shamsi (Graphify Labs, Y Combinator S26) turns an entire project — code, docs, PDFs, images, videos — into a queryable knowledge graph, invoked via /graphify from Claude Code, Cursor, Codex, Gemini CLI, GitHub Copilot, and about fifteen other clients.
By **Safi Shamsi** — créateur et mainteneur de graphify// Source github.com ↗/Reading 2 min/.md// Machine translation
graphify (Safi Shamsi, Graphify Labs, Y Combinator S26) turns an entire project into a queryable knowledge graph, invoked via /graphify from Claude Code, Cursor, Codex, Gemini CLI, and about fifteen other clients. Observed on August 6, 2026: 103,187 stars for a repository created on April 3, Apache-2.0, Python.
Three design choices underpin the project.Code is parsed locally into a tree-sitter AST, without an LLM: deterministic, nothing leaves the machine, no API key required for a code-only corpus. Every edge carries its provenance — EXTRACTED if explicit in the source, INFERRED if graphify resolved it —, "so you can tell what was read directly from what was inferred". And the project defines itself against vector RAG: "Not a vector index. No embeddings, no vector store: a real graph you traverse."
Usage replaces grep.query returns a subgraph for a natural-language question, path A B traces the path between two entities, explain unfolds a concept. Three outputs: an interactive graph, a readable report (god nodes, surprising connections, suggested questions), and a persistent graph.json, queryable weeks later.
Coverage extends beyond code: 36 tree-sitter grammars, but also SQL, Terraform, Apex, MCP configurations, package manifests, Office, PDF, images, and video transcribed locally. # WHY: comments and design rationale become first-class nodes linked to the code they explain.
The benchmarks call for a careful reading. On LOCOMO, graphify dominates recall (0.497 versus 0.149 and 0.048) but loses on QA accuracy (45.3% versus 49.7%); on LongMemEval-S it matches a dense RAG at 76%. The line that matters is elsewhere: "Graph build — LLM credits: 0". The defensible differentiator is cost and traceability, not answer quality.
Three caveats. The main branch carries an outdated v1-era README describing a different product: read v8. The PyPI package is named graphifyy, while the name is being reclaimed. And a local query log is active by default, which can be disabled via an environment variable.
The skill also serves as an entry point to a commercial waitlisted platform at graphify.com, which continuously applies the same approach to the entire working context.
Key takeaways
Nature./graphify skill + Python CLI, Apache-2.0, distributed on PyPI under the name graphifyy (two ys, while graphify is reclaimed). uv tool install graphifyy && graphify install. Works in Claude Code, Cursor, Codex, Gemini CLI, GitHub Copilot, and about fifteen other clients.
Key framing. the graph replaces grep — you ask for a relationship, not a string occurrence. ### The three design choices, and why they hold together 1. Code is parsed locally, without an LLM — tree-sitter AST, deterministic, « nothing leaves your machine ». A code-only corpus requires no API key and runs offline; documents, PDFs, and images, by contrast, go through a model. 2. Every edge carries its provenance — EXTRACTED (explicit in the source), INFERRED (resolved by graphify), AMBIGUOUS in the report: « You always know what was found vs guessed. » 3. No vector index — no embeddings, no vector store, a graph you traverse. The three reinforce each other: determinism makes the cost zero, zero cost makes frequent rebuilding possible, and edge labeling makes the result auditable. ### The benchmarks, read correctly | Benchmark | Metric | graphify | Field | |---|---|---|---| | LOCOMO (n=300) | recall@10 | 0.497 | supermemory 0.149 · mem0 0.048 | | LOCOMO (n=300) | QA accuracy | 45.3% | supermemory 49.7% · mem0 27.3% | | LongMemEval-S (n=50) | QA accuracy | 76% | on par with a dense RAG | | Graph construction | LLM credits | 0 | billed per token elsewhere | graphify clearly dominates recall, loses on QA accuracy, matches dense RAG on the second benchmark, and builds its graph for free. The defensible differentiator is thus cost and traceability, not answer quality: presenting graphify as "better than RAG" would be contradicted by its own numbers. Credited protocol: same harness, same model, same budgets, judge validated blind against a second judge (90.6% agreement, Cohen's kappa 0.81). Worth comparing with the only comparable figure in the corpus: Compare the Market measured an AST graph at ~70% versus ~58% for a vector RAG on 79 merge requests, with RAG performing worse than no context at all — see [[comparethemarket-context-retrieval-ai-code-review-gkg-rag-2026-03-06]]. Two independent measurements converge on the superiority of the structured graph for code. ### Querying and coverage query "<question>" returns a subgraph for a natural-language question, path A B traces the path between two entities, explain X unfolds the neighborhood of a concept. The README example: path "FastAPI" "ModelField" returns a three-hop path with each edge's type. Same benefit as the one attributed to GitNexus in [[lassiege-usine-logicielle-heure-ia-2026-07-28]]. Coverage extends beyond "just code": 36 tree-sitter grammars (~40 languages, including CUDA, Metal, Zig, Elixir, Julia, Dart, SystemVerilog, Fortran), plus SQL, Terraform/HCL, Apex Salesforce, MCP configurations (.mcp.json, claude_desktop_config.json — servers, packages, and required environment variables), package manifests (pyproject.toml, go.mod, pom.xml, one canonical node per package), Office, Google Workspace, PDFs, images, video, and audio. Graphifying one's own MCP configurations is an unexpected and immediately useful way to map one's tooling surface. ### "Why" as a first-class object # NOTE:, # WHY:, # HACK: comments, docstrings, and design rationale found in documentation become separate nodes linked to the code they explain. Intent is treated as an entity of the graph: one can ask why, not only what. ### Freshness and outputs Three freshness mechanisms: a SHA256 cache (only changed files are reprocessed), --watch (instant rebuild on save, AST only, no LLM; documents and images flag that an --update is needed), and graphify hook install (a post-commit hook, no background process). The --watch mode is justified for multi-agent workflows: « the graph stays current between waves automatically ». Outputs for agents: --wiki produces per-community articles with an index.md — « point any agent at index.md and it can navigate the knowledge base by reading files instead of parsing JSON » — and --mcp starts a stdio MCP server. Exports to Obsidian, GraphML, Neo4j (cypher), SVG. ### Privacy, a fine-grained boundary | Processing | Where | |---|---| | Code (tree-sitter), video and audio (faster-whisper) | local; --code-only forces this mode on a mixed repository | | Documents, PDFs, images | sent to the model; automatic priority chain Gemini → Kimi → Claude → OpenAI → DeepSeek → Azure → Bedrock → Ollama | Kimi routes to Moonshot AI servers in China — the README flags this, and --backend ollama provides a fully local mode. No telemetry or usage tracking, but a query log written by default to ~/.cache/graphify-queries.log (timestamp, question, corpus, nodes returned, duration; subgraphs themselves are not stored). Can be disabled via GRAPHIFY_QUERY_LOG_DISABLE=1. Local, but active without opt-in: worth knowing before deployment in a sensitive context. ### Two documentation pitfalls in the repository 1. The main branch is outdated: it carries a v1-era README (7 KB) describing « a Claude Code skill » for a single client only, highlights the "71.5× fewer tokens" claim on a 52-file corpus, and still points to safishamsi/graphify. The default branch is v8 (57 KB). Read v8, never main. 2. The package name: pip install graphifyy with two ys; the CLI and skill command remain graphify. ### Business model and traction The open-source skill is the entry point to a commercial platform at graphify.com — « the always-on layer… applies the same graph approach to your entire working context: meetings, files, docs, and code, updating continuously in the background », currently waitlisted. Local open source on one side, a continuously hosted service on the other. 103,187 stars in four months is an exceptional pace, but the number says nothing about actual usage, and the project's official site still shows 3,700 — a sign that communication hasn't kept up. Cite the star count as an attention signal, never as a measure of adoption. Disambiguation: the site graphify.net is a property distinct from graphify.com, the commercial platform.
The knowledge graph extracted from this fiche — 9 entities, 24 relations.
In this graph :graphify · Safi Shamsi · Graphify Labs · provenance d'arête · extraction hybride par type de fichier · tree-sitter · algorithme de Leiden · LOCOMO · LongMemEval