Graphify transforma uma pasta em grafo. O 71.5x precisa de contexto

O Graphify ganhou cerca de 7,300 estrelas nesta semana, o que o coloca no topo das tendências semanais do GitHub e leva o total para além de 137,000. O discurso cabe em uma linha: aponte seu agente de programação para uma pasta, digite /graphify . e receba de volta um grafo de conhecimento de tudo o que há ali.
O interessante não é o grafo. É o número pendurado ao lado dele: 71.5x menos tokens por consulta, medido contra a leitura dos arquivos brutos. Se isso se sustenta em geral, não é uma ferramenta de conveniência, é uma mudança na quantidade de contexto que um agente precisa carregar.
De onde veio
O autor, safishamsi, enquadra o projeto como resposta a um hábito bem específico de Andrej Karpathy: manter uma pasta /raw onde papers, tuítes, capturas de tela e notas vão sendo despejados, e nunca conseguir encontrar nada ali depois. O problema é identificável, e a origem é mais honesta que a maioria, porque descreve um modo de falha e não um mercado.
O objetivo declarado é mais estreito do que“pesquise nos seus documentos”. Trata-se de produzir algo persistente que sobreviva entre sessões e de ser explícito sobre o que foi inferido e o que foi extraído. Toda aresta do grafo recebe uma etiqueta: EXTRACTED, INFERRED ou AMBIGUOUS. É uma escolha de projeto incomum e, na minha visão, a parte mais valiosa de todo o conjunto.
O que ele faz de fato
A instalação são dois comandos, e sim, o nome do pacote no PyPI está temporariamente errado:
pip install graphifyy && graphify install
O Y dobrado vem de uma disputa de nome, não de um erro de digitação. A CLI e o comando do skill continuam sendo graphify. No Windows, se o comando não for reconhecido depois da instalação, é preciso colocar a pasta Scripts do Python no PATH, ou usar pipx install graphifyy e contornar o problema.
Depois, dentro do Claude Code, em qualquer diretório:
/graphify .
/graphify ./raw --mode deep
/graphify query "what connects attention to the optimizer?"
/graphify path "DigestAuth" "Response"
/graphify explain "SwinTransformer"
A saída cai em graphify-out/. Há um graph.html interativo para navegar clicando, uma pasta obsidian/ que abre como vault, um graph.json persistente para consultar semanas depois sem reler nada, um cache/ com chave SHA256 para que as reexecuções processem só os arquivos alterados, e um GRAPH_REPORT.md que lista os chamados god nodes — os conceitos de maior grau — além de“conexões surpreendentes”ordenadas por uma pontuação composta em que arestas de código para paper pesam mais que arestas de código para código.
A parte multimodal não é marketing. Arquivos de código passam pelo tree-sitter para análise de AST mais uma passada no grafo de chamadas. Markdown, PDFs e imagens passam pelo Claude: conceitos e relações extraídos da prosa, mineração de citações nos papers e visão para capturas de tela, diagramas, fotos de quadro branco e imagens em outros idiomas.
Há também exportações que importam para quem não quer viver dentro desta ferramenta: --svg, --graphml para Gephi ou yEd, e --neo4j, que gera um cypher.txt em vez de exigir um banco de dados rodando. A stack é NetworkX, clustering Leiden via graspologic, tree-sitter e vis.js. Sem servidor. Nada sai da máquina, exceto as chamadas ao Claude.

O 71.5x, examinado
O corpus de referência tem 52 arquivos: os repositórios do Karpathy, cinco papers, quatro imagens. Resultado: 71.5x menos tokens por consulta em comparação com a leitura dos arquivos brutos.
O repositório é incomumente honesto sobre como isso escala, o que é raro o bastante para merecer citação do conteúdo: a redução de tokens cresce com o tamanho do corpus, e com seis arquivos o valor do grafo está na clareza estrutural, não na compressão, porque seis arquivos cabem numa janela de contexto de qualquer jeito. O exemplo que eles mesmos montam, com o código do graphify mais o paper do Transformer, dá 5.4x. Com seis arquivos sintéticos de biblioteca, aproximadamente 1x.
A forma está correta. Se o seu corpus já cabe numa janela de contexto, você não está economizando tokens, está comprando um mapa. Se são cinquenta arquivos de tipos misturados, a economia é real e grande, porque a alternativa não é ler os arquivos uma vez, é relê-los repetidamente ao longo de vários turnos, sempre que um agente perde o fio.
A comparação também favorece o graphify numa direção e o subestima na outra. Ler arquivos brutos é a pior linha de base possível; um índice de recuperação bem ajustado pareceria melhor em comparação do que os arquivos brutos. Mas um índice de recuperação devolve trechos, e o que o graphify devolve são relações: a resposta para“o que conecta a atenção ao otimizador”não é um trecho, é um caminho. São consultas diferentes, e um banco vetorial atende só uma delas.
“Sem banco vetorial”é uma posição arquitetural de verdade
A maioria dos sistemas de recuperação fatia o texto, gera embeddings e faz busca por vizinhos mais próximos. O Graphify pula tudo isso: análise de AST local e determinística para código, extração por LLM para prosa e imagens, e então um grafo. Não há etapa de embedding nem busca por similaridade.
O que se ganha em troca é explicabilidade. Pergunte por que duas coisas estão conectadas e você recebe as arestas, cada uma rotulada conforme tenha sido extraída da fonte ou inferida pelo modelo. Um índice vetorial não sabe dizer isso. Ele só sabe dizer que a distância de cosseno era pequena.
O custo é cobertura. Um grafo só conhece o que o extrator encontrou. Se a passada de extração perdeu uma relação, nenhuma consulta vai trazê-la à tona, e não existe fallback difuso. A etiqueta AMBIGUOUS é o reconhecimento honesto disso, e a flag --mode deep existe porque a passada padrão é conservadora ao inferir arestas.
Onde ele conquista seu lugar
Dois fluxos de trabalho, pela minha experiência com ferramentas desse tipo.
O primeiro é entrar num código desconhecido. Não“onde fica a função X”— para isso o grep basta —, mas“quais são os conceitos que sustentam isso aqui e quais deles tocam o código de cobrança”. É uma pergunta de grafo, e o relatório de god nodes responde num formato que se lê em dois minutos.
O segundo é o caso multiagente. Quando vários agentes escrevem código em paralelo, o modelo que cada um tem do repositório fica obsoleto em minutos. Um grafo reconstruído a cada commit (graphify hook install instala um hook post-commit) ou a cada salvamento de arquivo (--watch) dá a todos os agentes o mesmo mapa atualizado em vez de cinco palpites divergentes.
O limite óbvio: isso é construído primeiro como skill do Claude Code. O caminho de instalação manual deixa um SKILL.md em ~/.claude/skills/graphify/ e acrescenta uma linha ao CLAUDE.md. Existe um modo servidor MCP (--mcp) que outros clientes podem usar, mas a ergonomia é claramente otimizada para um único ecossistema, e a dependência do Claude significa que a passada de extração custa dinheiro de verdade num corpus grande.
O veredito honesto
O Graphify não é um mecanismo de busca e não deveria ser avaliado como um. É um modelo persistente e inspecionável do que existe numa pasta, com a propriedade incomum de dizer quais partes ele chutou. Para um projeto com 137,000 estrelas que está em alta há uma semana, a pergunta interessante não é se o grafo impressiona, e sim se o hábito de etiquetar a inferência sobrevive ao contato com usuários que só querem respostas.
Meu palpite é que a maioria vai usar query, ignorar as etiquetas das arestas e nunca abrir o graph.json. Quem ficar são os que precisavam do mapa, não do gabarito.
Artigos relacionados
A Cloudflare abriu o auditor que usa em casa: o ponto é a contestação
Seis fases, três veredictos e uma regra que importa: o agente que confere um achado nunca é o que o encontrou. A Cloudflare também admite que uma execução acha mais ou menos metade.
Uma mesa de trading feita de agentes LLM: 117.000 estrelas e um aviso
Analistas, touro, urso, operador, equipe de risco, gestor de portfólio: o organograma é a arquitetura, e o aviso do README sobre a não determinabilidade é a linha mais importante.
225 mil estrelas para um Markdown: Karpathy em quatro regras
Sem código, sem build, sem benchmark: quatro princípios num CLAUDE.md atraíram mais atenção do que a maioria dos lançamentos de capacidade do ano.
Impeccable: 62 regras determinísticas contra o slop de IA
Inter em tudo, gradientes roxos, cards dentro de cards: 24 comandos e 62 regras determinísticas barram o slop no CI sem gastar um token.