← Volver al blog
Aiaprox. 7 min de lectura

Graphify convierte una carpeta en un grafo. El 71.5x pide contexto

Publicado 28 oct 2026
Graphify convierte una carpeta en un grafo. El 71.5x pide contexto

Graphify sumó unos 7,300 estrellas esta semana, lo que lo coloca en lo alto de las tendencias semanales de GitHub y lleva su total por encima de las 137,000. La promesa cabe en una línea: apunta tu agente de programación a una carpeta, escribe /graphify . y obtienes un grafo de conocimiento de todo lo que contiene.

Lo interesante no es el grafo. Es la cifra que lleva al lado: 71.5x menos tokens por consulta, medido contra leer los archivos en bruto. Si eso se sostiene en general, no es una herramienta de comodidad, es un cambio en la cantidad de contexto que un agente necesita cargar.

De dónde viene

El autor, safishamsi, plantea el proyecto como respuesta a una costumbre muy concreta de Andrej Karpathy: mantener una carpeta /raw donde van a parar papers, tuits, capturas y notas, y no ser capaz de encontrar nada en ella después. El problema resulta cercano, y el origen es más honesto que la mayoría, porque describe un modo de fallo y no un mercado.

El objetivo declarado es más estrecho que«busca en tus documentos». Se trata de producir algo persistente que sobreviva entre sesiones y de ser explícito sobre qué se infirió y qué se extrajo. Cada arista del grafo lleva etiqueta: EXTRACTED, INFERRED o AMBIGUOUS. Es una decisión de diseño poco habitual y, a mi juicio, la parte más valiosa de todo el conjunto.

Qué hace en realidad

La instalación son dos comandos, y sí, el nombre del paquete en PyPI está mal de forma temporal:

pip install graphifyy && graphify install

La Y duplicada viene de una disputa por el nombre, no de una errata. La CLI y el comando del skill siguen siendo graphify. En Windows, si el comando no se reconoce tras la instalación, hay que añadir la carpeta Scripts de Python al PATH, o usar pipx install graphifyy y saltarse el problema.

Después, dentro de Claude Code, en cualquier directorio:

/graphify .
/graphify ./raw --mode deep
/graphify query "what connects attention to the optimizer?"
/graphify path "DigestAuth" "Response"
/graphify explain "SwinTransformer"

La salida aparece en graphify-out/. Hay un graph.html interactivo por el que se puede navegar haciendo clic, una carpeta obsidian/ que se abre como vault, un graph.json persistente para consultar semanas después sin releer nada, una cache/ con clave SHA256 para que las repeticiones solo procesen archivos modificados y un GRAPH_REPORT.md que lista los llamados god nodes —los conceptos de mayor grado— y las«conexiones sorprendentes»ordenadas por una puntuación compuesta en la que las aristas de código a paper pesan más que las de código a código.

La parte multimodal no es marketing. Los archivos de código pasan por tree-sitter para el análisis de AST más una pasada de grafo de llamadas. Markdown, PDF e imágenes pasan por Claude: conceptos y relaciones extraídos de la prosa, minería de citas en los papers y visión para capturas, diagramas, fotos de pizarra e imágenes en otros idiomas.

También hay exportaciones que importan a quien no quiera vivir dentro de esta herramienta: --svg, --graphml para Gephi o yEd, y --neo4j, que genera un cypher.txt en lugar de exigir una base de datos en marcha. El stack es NetworkX, clustering Leiden vía graspologic, tree-sitter y vis.js. Sin servidor. Nada sale de la máquina salvo las llamadas a Claude.

一整面白板上手绘的节点连边图,成簇的圆圈被红线圈出,箭头与简短标注,黑色与红色马克笔

El 71.5x, examinado

El corpus de referencia son 52 archivos: los repositorios de Karpathy, cinco papers, cuatro imágenes. Resultado: 71.5x menos tokens por consulta frente a leer los archivos en bruto.

El repositorio es inusualmente honesto sobre cómo escala esto, algo lo bastante raro como para citarlo en sustancia: la reducción de tokens crece con el tamaño del corpus, y con seis archivos el valor del grafo es la claridad estructural más que la compresión, porque seis archivos caben igualmente en una ventana de contexto. Su propio ejemplo con el código de graphify más el paper de Transformer da 5.4x. Con seis archivos sintéticos de biblioteca, aproximadamente 1x.

La forma es la correcta. Si tu corpus ya cabe en una ventana de contexto, no estás ahorrando tokens, estás comprando un mapa. Si son cincuenta archivos de tipos mezclados, el ahorro es real y grande, porque la alternativa no es leer los archivos una vez, sino releerlos una y otra vez a lo largo de varios turnos, cada vez que un agente pierde el hilo.

La comparación además favorece a graphify en una dirección y lo infravalora en otra. Leer archivos en bruto es el peor punto de referencia posible; un índice de recuperación bien ajustado quedaría mejor parado frente a los archivos en bruto. Pero un índice de recuperación devuelve pasajes, y lo que devuelve graphify son relaciones: la respuesta a«qué conecta la atención con el optimizador»no es un pasaje, es un camino. Son consultas distintas, y un almacén vectorial solo sirve una de las dos.

«Sin almacén vectorial»es una postura arquitectónica de verdad

La mayoría de los sistemas de recuperación trocean el texto, lo embeben y hacen búsqueda de vecinos más cercanos. Graphify se salta todo eso: análisis de AST local y determinista para el código, extracción con LLM para prosa e imágenes y, después, un grafo. No hay paso de embeddings ni búsqueda por similitud.

Lo que se obtiene a cambio es explicabilidad. Pregunta por qué dos cosas están conectadas y recibes las aristas, cada una etiquetada según si se extrajo de la fuente o la infirió el modelo. Un índice vectorial no puede decirte eso. Solo puede decirte que la distancia coseno era pequeña.

El coste es la cobertura. Un grafo solo sabe lo que encontró el extractor. Si la pasada de extracción se dejó una relación, ninguna consulta la sacará a la luz, y no hay respaldo difuso. La etiqueta AMBIGUOUS es el reconocimiento honesto de eso, y el flag --mode deep existe porque la pasada por defecto es conservadora al inferir aristas.

Dónde se gana su sitio

Dos flujos de trabajo, según mi experiencia con herramientas así.

El primero es incorporarse a una base de código desconocida. No«dónde está la función X»—para eso basta grep—, sino«cuáles son los conceptos que sostienen esto y cuáles tocan el código de facturación». Es una pregunta de grafo, y el informe de god nodes la responde en un formato que se lee en dos minutos.

El segundo es el caso multiagente. Cuando varios agentes escriben código en paralelo, el modelo del repositorio que tiene cada uno queda obsoleto en minutos. Un grafo reconstruido en cada commit (graphify hook install instala un hook post-commit) o al guardar un archivo (--watch) da a todos los agentes el mismo mapa actualizado en lugar de cinco conjeturas divergentes.

El límite evidente: esto está construido primero como skill de Claude Code. La ruta de instalación manual deja un SKILL.md en ~/.claude/skills/graphify/ y añade una línea a CLAUDE.md. Hay un modo servidor MCP (--mcp) que otros clientes pueden usar, pero la ergonomía está claramente optimizada para un solo ecosistema, y la dependencia de Claude implica que la pasada de extracción cuesta dinero real en un corpus grande.

El veredicto honesto

Graphify no es un buscador y no debería evaluarse como tal. Es un modelo persistente e inspeccionable de lo que hay en una carpeta, con la propiedad poco común de que te dice qué partes se las ha inventado. Para un proyecto con 137,000 estrellas que lleva una semana en tendencia, la pregunta interesante no es si el grafo impresiona, sino si la costumbre de etiquetar la inferencia sobrevive al contacto con usuarios que solo quieren respuestas.

Mi apuesta es que la mayoría usará query, ignorará las etiquetas de las aristas y no abrirá nunca graph.json. Quienes se queden serán los que necesitaban el mapa, no las soluciones.

Artículos relacionados