graphify — « Turn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable knowledge graph. A /graphify skill for Claude Code, Cursor, Codex, and Gemini CLI: local deterministic AST parsing, every edge explained, no vector store. »
Entrada de skill: graphify, de Safi Shamsi (Graphify Labs, Y Combinator S26), convierte un proyecto completo — código, documentación, PDF, imágenes, vídeos — en un grafo de conocimiento consultable, invocado mediante /graphify desde Claude Code, Cursor, Codex, Gemini CLI, GitHub Copilot y una quincena de otros clientes.
Por **Safi Shamsi** — créateur et mainteneur de graphify// Fuente github.com ↗/Lectura 2 min/.md// Traducción verificada automáticamente
#skill#grafo de conocimiento#grafo de conocimiento#AST#tree-sitter#análisis estático determinista#extracción local#sin LLM
graphify (Safi Shamsi, Graphify Labs, Y Combinator S26) convierte un proyecto completo en un grafo de conocimiento consultable, invocado mediante /graphify desde Claude Code, Cursor, Codex, Gemini CLI y una quincena de otros clientes. Observado el 6 de agosto de 2026: 103.187 estrellas para un repositorio creado el 3 de abril, Apache-2.0, Python.
Tres decisiones de diseño sustentan el proyecto.El código se analiza localmente en un AST tree-sitter, sin LLM: determinista, nada sale de la máquina, no se requiere clave de API para un corpus solo de código. Cada arista lleva su procedencia — EXTRACTED si es explícita en la fuente, INFERRED si graphify la ha resuelto —, "so you can tell what was read directly from what was inferred". Y el proyecto se define frente al RAG vectorial: "Not a vector index. No embeddings, no vector store: a real graph you traverse."
El uso sustituye a grep.query devuelve un subgrafo para una pregunta en lenguaje natural, path A B traza el camino entre dos entidades, explain despliega un concepto. Tres salidas: un grafo interactivo, un informe legible (nodos god, conexiones sorprendentes, preguntas sugeridas) y un graph.json persistente, consultable semanas después.
La cobertura va más allá del código: 36 gramáticas tree-sitter, pero también SQL, Terraform, Apex, configuraciones MCP, manifiestos de paquetes, Office, PDF, imágenes y vídeo transcrito localmente. Los comentarios # WHY: y la lógica de diseño se convierten en nodos de primer orden vinculados al código que explican.
Los benchmarks exigen una lectura atenta. En LOCOMO, graphify domina en recall (0,497 frente a 0,149 y 0,048) pero pierde en precisión de QA (45,3% frente a 49,7%); en LongMemEval-S iguala a un RAG denso con 76%. La cifra que importa está en otro lugar: "Graph build — LLM credits: 0". El diferenciador defendible es el coste y la trazabilidad, no la calidad de las respuestas.
Tres advertencias. La rama main mantiene un README obsoleto de la era v1 que describe un producto distinto: hay que leer v8. El paquete PyPI se llama graphifyy, mientras se recupera el nombre. Y un registro de consultas local está activo por defecto, y puede desactivarse mediante una variable de entorno.
La skill sirve también como puerta de entrada a una plataforma comercial con lista de espera en graphify.com, que aplica de forma continua el mismo enfoque a todo el contexto de trabajo.
Puntos clave
Naturaleza. skill /graphify + CLI Python, Apache-2.0, distribuida en PyPI bajo el nombre graphifyy (con dos y, mientras se recupera graphify). uv tool install graphifyy && graphify install. Funciona en Claude Code, Cursor, Codex, Gemini CLI, GitHub Copilot y una quincena de otros clientes.
Enfoque clave. el grafo sustituye a grep — se pide una relación, no una ocurrencia de cadena. ### Las tres decisiones de diseño, y por qué se sostienen entre sí 1. El código se analiza localmente, sin LLM — AST tree-sitter, determinista, « nothing leaves your machine ». Un corpus solo de código no requiere clave de API y funciona sin conexión; los documentos, PDF e imágenes, en cambio, pasan por un modelo. 2. Cada arista lleva su procedencia — EXTRACTED (explícita en la fuente), INFERRED (resuelta por graphify), AMBIGUOUS en el informe: « You always know what was found vs guessed. » 3. Sin índice vectorial — sin embeddings, sin vector store, un grafo que se recorre. Las tres se refuerzan entre sí: el determinismo hace que el coste sea cero, el coste cero permite reconstruir con frecuencia, y el etiquetado de aristas hace el resultado auditable. ### Los benchmarks, leídos correctamente | Benchmark | Métrica | graphify | Campo | |---|---|---|---| | LOCOMO (n=300) | recall@10 | 0,497 | supermemory 0,149 · mem0 0,048 | | LOCOMO (n=300) | precisión QA | 45,3% | supermemory 49,7% · mem0 27,3% | | LongMemEval-S (n=50) | precisión QA | 76% | a la par de un RAG denso | | Construcción del grafo | créditos LLM | 0 | facturado por token en otros casos | graphify domina claramente en recall, pierde en precisión de QA, iguala al RAG denso en el segundo benchmark, y construye su grafo de forma gratuita. El diferenciador defendible es, por tanto, el coste y la trazabilidad, no la calidad de las respuestas: presentar graphify como "mejor que RAG" quedaría contradicho por sus propias cifras. Protocolo acreditado: mismo harness, mismo modelo, mismos presupuestos, juez validado a ciegas frente a un segundo juez (90,6% de acuerdo, kappa de Cohen 0,81). Vale la pena compararlo con la única cifra comparable del corpus: Compare the Market midió un grafo AST en ~70% frente a ~58% de un RAG vectorial sobre 79 merge requests, con el RAG rindiendo peor que sin contexto alguno — véase [[comparethemarket-context-retrieval-ai-code-review-gkg-rag-2026-03-06]]. Dos mediciones independientes convergen en la superioridad del grafo estructurado para código. ### Consultas y cobertura query "<pregunta>" devuelve un subgrafo para una pregunta en lenguaje natural, path A B traza el camino entre dos entidades, explain X despliega el vecindario de un concepto. El ejemplo del README: path "FastAPI" "ModelField" devuelve un camino de tres saltos con el tipo de cada arista. Mismo beneficio que el atribuido a GitNexus en [[lassiege-usine-logicielle-heure-ia-2026-07-28]]. La cobertura va más allá del "solo código": 36 gramáticas tree-sitter (~40 lenguajes, incluyendo CUDA, Metal, Zig, Elixir, Julia, Dart, SystemVerilog, Fortran), además de SQL, Terraform/HCL, Apex Salesforce, configuraciones MCP (.mcp.json, claude_desktop_config.json — servidores, paquetes y variables de entorno requeridas), manifiestos de paquetes (pyproject.toml, go.mod, pom.xml, un nodo canónico por paquete), Office, Google Workspace, PDF, imágenes, vídeo y audio. Grafiar las propias configuraciones MCP es una forma inesperada e inmediatamente útil de cartografiar la superficie de herramientas propia. ### El "por qué" como objeto de primer orden Los comentarios # NOTE:, # WHY:, # HACK:, los docstrings y la lógica de diseño hallada en la documentación se convierten en nodos independientes vinculados al código que explican. La intención se trata como una entidad más del grafo: se puede preguntar por qué, no solo qué. ### Frescura y salidas Tres mecanismos de frescura: una caché SHA256 (solo se reprocesan los archivos cambiados), --watch (reconstrucción instantánea al guardar, solo AST, sin LLM; los documentos e imágenes señalan que se necesita un --update) y graphify hook install (un hook post-commit, sin proceso en segundo plano). El modo --watch se justifica para flujos multiagente: « the graph stays current between waves automatically ». Salidas para agentes: --wiki genera artículos por comunidad con un index.md — « point any agent at index.md and it can navigate the knowledge base by reading files instead of parsing JSON » — y --mcp inicia un servidor MCP stdio. Exportaciones a Obsidian, GraphML, Neo4j (cypher), SVG. ### Privacidad, un límite de grano fino | Procesamiento | Dónde | |---|---| | Código (tree-sitter), vídeo y audio (faster-whisper) | local; --code-only fuerza este modo en un repositorio mixto | | Documentos, PDF, imágenes | enviados al modelo; cadena de prioridad automática Gemini → Kimi → Claude → OpenAI → DeepSeek → Azure → Bedrock → Ollama | Kimi enruta hacia servidores de Moonshot AI en China — el README lo señala, y --backend ollama ofrece un modo totalmente local. Sin telemetría ni seguimiento de uso, pero se escribe por defecto un registro de consultas en ~/.cache/graphify-queries.log (marca temporal, pregunta, corpus, nodos devueltos, duración; los subgrafos en sí no se almacenan). Puede desactivarse mediante GRAPHIFY_QUERY_LOG_DISABLE=1. Local, pero activo sin opt-in: conviene saberlo antes de un despliegue en un contexto sensible. ### Dos trampas de documentación en el repositorio 1. La rama main está desactualizada: mantiene un README de la era v1 (7 KB) que describe « a Claude Code skill » para un único cliente, destaca la afirmación de "71,5× menos tokens" sobre un corpus de 52 archivos, y sigue apuntando a safishamsi/graphify. La rama por defecto es v8 (57 KB). Leer v8, nunca main. 2. El nombre del paquete: pip install graphifyy con dos y; el comando de la CLI y de la skill sigue siendo graphify. ### Modelo de negocio y tracción La skill de código abierto es la puerta de entrada a una plataforma comercial en 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 », actualmente con lista de espera. Código abierto local por un lado, servicio alojado de forma continua por otro. 103.187 estrellas en cuatro meses es un ritmo excepcional, pero la cifra no dice nada sobre el uso real, y el sitio oficial del proyecto sigue mostrando 3.700 — señal de que la comunicación no se ha mantenido al día. Citar el número de estrellas como señal de atención, nunca como medida de adopción. Desambiguación: el sitio graphify.net es una propiedad distinta de graphify.com, la plataforma comercial.
El grafo de conocimiento extraído de esta ficha — 9 entidades, 24 relaciones.
En este grafo :graphify · Safi Shamsi · Graphify Labs · provenance d'arête · extraction hybride par type de fichier · tree-sitter · algorithme de Leiden · LOCOMO · LongMemEval