O que é o graphify e como ele transforma seu projeto em um grafo de conhecimento?

O graphify é uma skill que você aciona digitando /graphify no assistente de código (Claude Code, Cursor, Codex e Gemini CLI) e que transforma o seu projeto em um grafo de conhecimento consultável: código, docs, esquemas SQL, configs e PDFs viram nós e arestas que a IA percorre, em vez de sair varrendo arquivo com grep. O código é lido localmente por AST do tree-sitter, sem LLM, e a saída cai em graphify-out/ com grafo interativo, relatório em linguagem simples e o grafo bruto em JSON, pronto pra commitar no git
Fala aí, beleza? Seu assistente de IA abre o projeto, dispara um grep, lê três arquivos e responde com a maior cara de quem entendeu a arquitetura inteira
Só que ele não enxergou o projeto
Ele enxergou os pedaços que a busca por texto devolveu, e o resto ficou no escuro 😀
O graphify é uma skill que ataca exatamente esse ponto: você digita /graphify no assistente e ele transforma o projeto (código, docs, esquemas SQL, configs e PDFs) em um grafo de conhecimento consultável, em vez de varrer arquivos com grep
Ele roda como skill em assistentes como Claude Code, Cursor, Codex e Gemini CLI (a lista não para aí, e mais pra frente você vai ver como ele alcança outras plataformas), e o projeto vive no repositório Graphify-Labs/graphify, sob licença MIT
Neste post te conto o que é o graphify, como ele monta o grafo, o que muda na prática pro seu assistente e como instalar sem cair na pegadinha do nome do pacote
Como o graphify monta o grafo de conhecimento do projeto
Antes do como, o porquê: um projeto não é uma pilha de arquivos soltos, é uma teia
Aquela função chama aquele service, que lê aquela tabela, que está documentada naquele PDF que ninguém abre desde 2024 haha
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
grep não vê teia, grep vê linha que casa com o texto
Que grafo é esse, afinal? É o desenho dessa teia: cada coisa do projeto vira um nó (arquivo, função, tabela, documento) e cada relação entre elas vira uma aresta que dá pra percorrer
A montagem acontece em duas passagens bem diferentes, e essa distinção importa MUITO:
- Código: parsing determinístico via tree-sitter AST, sem LLM nenhum no meio, nada sai da sua máquina
- Docs, PDFs, imagens e vídeo: aí sim entra uma passagem semântica, usando o modelo do próprio assistente ou uma API key configurada
Ou seja: a parte de código é análise estática pura, previsível, do jeito que um compilador faria
O parsing por tree-sitter cobre 25 linguagens na versão atual do README, entre elas Python, JS, TS, Go, Rust, Java, C, C++, Ruby, C#, Kotlin, Scala, PHP, Swift, Lua, Zig, PowerShell, Elixir, Objective-C, Julia, Verilog, SystemVerilog, Vue, Svelte e Dart
E os esquemas SQL e os configs? Eles estão na lista de coisas que o graphify mapeia, mas o README não diz em qual das duas passagens eles caem, então não vou inventar mecanismo aqui
Cada conexão vem etiquetada:
Esse detalhe é dos mais massa da ferramenta
Cada aresta do grafo é marcada como EXTRACTED, quando a ligação está explícita no código-fonte, ou INFERRED, quando foi o graphify que resolveu aquela ligação
Traduzindo: dá pra saber o que é fato e o que é dedução, sem ter que confiar no chute do assistente
O que sai de uma execução:
Rodou uma vez, ele escreve o diretório graphify-out/ com três arquivos principais:
graph.html: o grafo interativo pra abrir no navegadorGRAPH_REPORT.md: um relatório em linguagem simplesgraph.json: o grafo bruto, pronto pra GraphRAG
Tem também uma pasta obsidian/, mas ela só é gerada se você passar a flag --obsidian, então não estranhe a ausência dela
O GRAPH_REPORT.md é o arquivo que eu abriria primeiro: ele destaca os "god nodes" (os nós mais conectados do projeto), as conexões cruzadas surpreendentes entre comunidades e uma lista de perguntas pra explorar
Sabe aquele arquivo que meio mundo importa e ninguém tem coragem de mexer? Ele aparece ali, com nome e sobrenome 😛
Por que um grafo muda a forma de o assistente entender seu projeto
A diferença prática é essa: em vez de varrer arquivos e encher a janela de contexto com texto cru, o assistente percorre arestas
Ele salta de nó em nó seguindo relações que já foram resolvidas antes, na hora de gerar o grafo
O README do projeto publica um benchmark próprio disso: 71,5x menos tokens por consulta em relação a ler os arquivos crus, em um corpus misto de repositórios, papers e imagens
Benchmark de casa, então trate como o que é: número do próprio projeto, medido do jeito do próprio projeto
Ainda assim, a ordem de grandeza faz sentido quando você compara "despejar arquivo inteiro no contexto" com "consultar um grafo"
O mapa é pra ser commitado:
O graphify-out/ foi pensado pra entrar no git
Aí quem faz pull já tem o assistente lendo o GRAPH_REPORT.md direto, sem nenhum passo extra
Isso é bem diferente de um índice que cada dev precisa gerar na própria máquina: aqui o time inteiro começa com o mesmo mapa
E no Claude Code?
Existe um comando de integração específico que instala um hook PreToolUse no .claude/settings.json
Esse hook injeta o lembrete quando o graphify-out/graph.json existe, ou seja: o assistente é cutucado pra consultar o grafo em vez de sair procurando texto na unha
graphify, grep e busca vetorial: qual é a diferença
Gente confunde muito os três, então bora separar
| Critério | graphify | grep / busca por texto | Busca vetorial |
|---|---|---|---|
| Forma de recuperação | Grafo com arestas percorríveis | Varredura de arquivos por padrão de texto | Embeddings guardados em vector store |
| Origem da informação | Cada conexão etiquetada como EXTRACTED ou INFERRED | Só o trecho que casou, sem relação | Trechos parecidos por similaridade |
| Artefato gerado | graphify-out/ com graph.html, GRAPH_REPORT.md e graph.json | Nenhum, é resultado efêmero | Índice de vetores |
| Rastreabilidade | Dá pra saber o que é explícito e o que foi inferido | Só o match literal | Sem etiqueta de origem |
Repara num ponto que costuma passar batido: o graphify não usa embeddings nem vector store
Não é um RAG semântico disfarçado, é um grafo de verdade, com arestas que se percorrem
Para que serve o graphify no dia a dia
Na teoria é bonito, mas cadê o uso real? Se liga nos cenários onde o grafo agrega mesmo:
Entrar em uma base de código desconhecida. Você clona o repo, roda uma vez e lê o GRAPH_REPORT.md pra descobrir quais são os nós mais conectados antes de abrir o primeiro arquivo. É o oposto de sair clicando em pasta aleatória por duas horas
Mapear a ponte entre código e banco. Esquemas SQL estão entre as entradas que o graphify mapeia, então dá pra enxergar quais partes do código estão amarradas em qual tabela
Alinhar o time. Com o graphify-out/ commitado, todo mundo (e todo assistente) parte do mesmo mapa, em vez de cada máquina ter a própria versão da verdade
Alimentar GraphRAG. O graph.json sai pronto pra isso, se você quer construir alguma coisa em cima
Consultar direto pelo terminal. Depois do grafo gerado, o README cita graphify query, graphify path e graphify explain, além da chamada query_graph via MCP
Se a sua ideia é mais organizar documentação e material de apoio do que mapear código, a lógica é parecida com montar uma base de conhecimento no NotebookLM, só que aqui o alvo é a estrutura do projeto em si
Como instalar o graphify e gerar seu primeiro grafo
Bora ver na prática? A instalação recomendada é pelo CLI, em dois tempos: instala o pacote, depois registra a skill no assistente
- Instale o pacote com o uv
uv tool install graphifyyRepara no nome: o pacote é graphifyy, com dois "y"
O comando que você chama depois é graphify, com um "y" só. O erro comum deste passo é digitar uv tool install graphify e levar erro de pacote inexistente
- Registre a skill no seu assistente
graphify install- Se você não usa uv, tem alternativa
pipx install graphifyyou
pip install graphifyy- Se preferir rodar com uvx, nomeie o pacote
uvx --from graphifyy graphify installO erro comum deste passo é tentar uvx graphify puro: falha, porque o pacote se chama graphifyy e o uvx procura pelo nome do pacote, não pelo do comando. Tome cuidado aqui, é a pegadinha mais boba e a que mais dá dor de cabeça
- Quer a skill dentro do projeto, e não no seu perfil? Use a flag
--project
Com ela a skill é gravada no diretório atual, por exemplo em .claude/skills/graphify/SKILL.md (ou .agents/skills/graphify/SKILL.md no alvo cross-framework)
Bom pra quando o projeto é de time e você quer a configuração versionada junto
- No Claude Code, rode a integração dedicada
graphify claude installEsse comando escreve uma seção chamada graphify no CLAUDE.md do projeto, mandando ler o graphify-out/GRAPH_REPORT.md antes de responder sobre arquitetura, e instala o hook PreToolUse no .claude/settings.json
- Está em uma plataforma sem suporte a hooks? Não tem drama
Aider, OpenClaw, Factory Droid e Trae recebem as mesmas regras gravadas no AGENTS.md da raiz do projeto, justamente porque não suportam hooks de ferramenta
Muda o mecanismo, a instrução continua valendo
- Gere o grafo
Com a skill registrada, é só digitar /graphify no assistente e deixar rodar
Depois abra o graph.html no navegador e leia o GRAPH_REPORT.md
O hook não dispara no Claude Code: o que aconteceu
Esse aqui é um caso bem didático de como integração quebra sem ninguém mexer em nada
Sintoma: o lembrete simplesmente parou de ser injetado no Claude Code. O grafo estava lá, o graph.json existia, e mesmo assim o assistente voltou a sair procurando arquivo na unha
Causa: o hook usava o matcher Glob|Grep. Só que o Claude Code v2.1.117 removeu as ferramentas dedicadas Grep e Glob nas builds nativas de macOS e Linux, e as buscas passaram a rodar via Bash. Com o matcher esperando ferramentas que não existiam mais, o hook nunca casava e nunca disparava
Solução: a correção trocou o matcher para Bash, casando o comando em si (grep, rg, find, fd), e saiu na v0.5.2 do graphify
Prevenção: mantenha o graphify atualizado. Esse tipo de quebra silenciosa é primo daquela situação de projeto apontando para um modelo aposentado: nada explode, nada grita, a coisa só para de funcionar do jeito que funcionava
Vale a pena usar o graphify no seu projeto?
Veredito honesto: depende do tamanho da bagunça que você tem em mãos
Em projeto pequeno, que cabe inteiro na cabeça e quase inteiro no contexto, o grafo resolve pouco
Agora em base grande, legada, com código, esquema SQL e documentação espalhados, a proposta faz muito sentido: o assistente para de adivinhar por amostragem e passa a percorrer relações que já foram resolvidas antes
Dois pontos pra colocar na balança antes de adotar
O primeiro é que a parte determinística é só o código: docs, PDFs, imagens e vídeo dependem de uma passagem semântica com modelo, então essa fatia tem custo e tem margem de erro
O segundo é que a etiqueta EXTRACTED/INFERRED existe justamente porque nem tudo no grafo é fato duro, e ignorar isso na leitura é pedir pra confiar demais em dedução
Pra dar contexto de tração: o repositório passou de 100 mil estrelas no GitHub (cerca de 108 mil), e a versão mais recente publicada nas releases é a v0.9.47, com o repositório atualizado em 17 de agosto de 2026
Projeto novo, mexendo bastante, então é bom acompanhar as mudanças
O próximo passo prático é curtinho: instala, roda uma vez no seu projeto, abre o graph.html, lê o GRAPH_REPORT.md e, se fizer sentido, commita o graphify-out/ pro time inteiro começar do mesmo mapa
Faça o teste e tira sua própria conclusão, é o tipo de ferramenta que só convence vendo o grafo do SEU projeto na tela
Até o próximo post! =)
Perguntas frequentes
Como instalar o graphify no Claude Code?
O caminho recomendado é uv tool install graphifyy (repara nos dois "y" do nome do pacote), o que deixa disponível o comando graphify. Depois é só rodar graphify install pra registrar a skill no assistente. O README também cita pipx install graphifyy ou pip install graphifyy como alternativas.
Por que uvx graphify install dá erro?
Porque o pacote publicado se chama graphifyy, com dois "y", e não graphify. Com uvx é preciso nomear o pacote e não o comando: uvx --from graphifyy graphify install. Rodar só uvx graphify falha porque o uvx procura um pacote chamado graphify, que não existe.
Dá pra instalar a skill do graphify só no projeto, sem mexer no perfil do usuário?
Sim, a flag --project grava a skill dentro do diretório atual, por exemplo em .claude/skills/graphify/SKILL.md. Em alvos cross framework, o caminho vira .agents/skills/graphify/SKILL.md. Assim o resto das configurações do seu usuário no assistente fica intacto.
O que fazer se o hook do graphify parou de disparar no Claude Code?
Esse caso está explicado no post: o Claude Code deixou de ter ferramentas dedicadas de busca nas builds nativas de macOS e Linux, as buscas passaram a rodar via Bash e o hook antigo deixou de casar. A correção já saiu em versão posterior do graphify, então o caminho é atualizar o pacote e rodar de novo a integração com graphify claude install.
O graphify manda meu código pra algum servidor?
A parte de código não: o parsing é local, via AST do tree-sitter, sem chamar nenhum LLM. Já docs, PDFs, imagens e vídeo passam por uma etapa semântica que usa o modelo do próprio assistente ou uma API key configurada, então aí sim há chamada de modelo.
O graphify funciona em assistentes que não suportam hooks, tipo Aider ou Trae?
Funciona, mas de outro jeito: Aider, OpenClaw, Factory Droid e Trae recebem as mesmas regras gravadas direto no AGENTS.md da raiz do projeto, já que essas plataformas não suportam hooks de ferramenta. É como o graphify mantém o lembrete sempre ativo mesmo sem o hook que existe no Claude Code.
Formações
Formação SAAS com IA
Tire usas ideias do papel criando softwares com IA, integre pagamentos e lance seu projeto!
- 291 aulas
- 18 projetos
- 24h 17min
Blog | Mais populares

As diferenças de var, let e const

Como fazer redirecionamento com PHP
Neste artigo você vai aprender a como fazer redirecionamento com PHP, utilizaremos abordagens fáceis de entender e de aplicar Fala programador(a), beleza? Bora aprender mais […]

ChatGPT: o que é, como usar, dicas e como acessar login
ChatGPT é uma ferramenta de processamento de linguagem natural (NLP) baseada na arquitetura GPT-3.5, desenvolvida pela OpenAI. Sua criação representa um marco significativo no campo […]
