graph.html: como explorar o grafo do seu projeto no navegador

O graph.html é a saída visual do Graphify: um arquivo HTML interativo que nasce em graphify-out/ junto do GRAPH_REPORT.md e do graph.json. Você roda /graphify . dentro do assistente pra mapear o projeto, abre o graphify-out/graph.html no navegador e explora o grafo clicando nos nós, vendo source_file, file_type e o grau de cada um no painel lateral. A busca filtra nós por label em tempo real e a legenda de comunidades escurece ou destaca clusters. Pra pergunta fechada com citação file:line, a CLI (query, path, explain) resolve melhor, lendo o mesmo grafo
Fala aí, beleza? Entender um projeto grande lendo arquivo por arquivo é o caminho mais lento que existe
Dá pra ver o negócio inteiro de uma vez, com os módulos, os clusters e quem conversa com quem, tudo numa tela só
É isso que o graph.html faz: ele é a saída visual do Graphify, gerada dentro da pasta graphify-out/ junto com o GRAPH_REPORT.md (o relatório de arquitetura) e o graph.json (o grafo legível por máquina)
Neste post tu vai ver como chegar até esse arquivo, clicar nos nós, buscar conceitos, filtrar por comunidade e, principalmente, quando essa visão no navegador ajuda MAIS que rodar uma consulta por comando
Bora?
O que você precisa antes de abrir o grafo
Antes do grafo existir, alguém tem que gerar ele, né? E pra isso o Graphify precisa estar instalado na máquina
A instalação recomendada é pelo pacote PyPI graphifyy, com uv, pipx ou pip:
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 114 aulas
- 4 projetos
- 9h 18min
uv tool install graphifyy
# alternativas
pipx install graphifyy
pip install graphifyy
Se liga nisso: o pacote se chama graphifyy (com dois "y" no fim), mas o comando que fica disponível no terminal é graphify
Depois de instalar o pacote, tem um segundo passo que registra a skill nos assistentes de IA detectados na máquina:
graphify install
Esse comando copia a skill /graphify pra configuração dos assistentes encontrados. E ela não é exclusiva de um só: a descrição oficial do repositório cita Claude Code, Cursor, Codex e Gemini CLI
Em instalação com escopo de projeto, a skill é escrita dentro do diretório atual, em .claude/skills/graphify/SKILL.md (ou .agents/skills/graphify/SKILL.md), com uma pasta references/ que é carregada sob demanda
E o que ele consegue mapear?
O Graphify monta um grafo único cobrindo 36 linguagens de código, além de Markdown, PDFs, documentos Office, schemas SQL, PostgreSQL ao vivo e Terraform
Ou seja: não é só o código, o "redor" do projeto entra junto
Passo a passo: do comando ao grafo aberto no navegador
- Mapeie o projeto rodando a skill dentro do assistente
/graphify .
Esse passo é o que mapeia o projeto para graphify-out/
O erro comum aqui: tentar consultar o grafo antes de gerar ele. Todos os comandos da CLI leem o graph.json produzido nesse passo, então sem ele não existe nada pra consultar
- Confira as três saídas em
graphify-out/
ls graphify-out/
# graph.html -> visualização interativa
# GRAPH_REPORT.md -> relatório de arquitetura
# graph.json -> grafo legível por máquina
Cada um serve a um público diferente: o .html é pra você olhar, o .md é pra ler, o .json é pra máquina consumir
- Abra o
graphify-out/graph.htmlno navegador
A função to_html do Graphify gera um HTML standalone, com busca, filtro e interação já embutidos, renderizado com a biblioteca vis.js
- Clique num nó pra ver as conexões e o painel lateral
Ao selecionar um nó, a sidebar de metadados é populada com source_file, file_type e estatísticas de degree (o grau do nó, ou seja, o tamanho da vizinhança dele)
É aqui que o grafo deixa de ser desenho bonito e vira informação: um nó com grau alto é um ponto de concentração do seu projeto, e mexer nele tende a respingar em muita coisa
- Use a barra de busca e navegue com zoom e pan
A busca é em tempo real e filtra os nós por label, então dá pra digitar um pedaço do nome e ver a nuvem se afunilar na sua frente
Com zoom e pan tu circula pela região que sobrou
- Filtre por comunidade pela legenda clicável
O graph.html traz uma legenda de comunidades clicável, que escurece (dim) ou destaca (highlight) clusters específicos, com as cores da paleta COMMUNITY_COLORS
Esse é o filtro mais subestimado: em vez de olhar 40 arquivos, tu isola um cluster e olha só o bairro que interessa
- Entenda a física antes de achar que travou
A engine de física usa o solver forceAtlas2Based e é desativada automaticamente depois que o grafo estabiliza
O erro comum deste passo: ver os nós se mexendo sozinhos e achar que deu ruim. Não deu, o layout ainda está se acomodando, deixa ele terminar
- Projeto grande? Tem teto de nós
A visualização tem um limite de 5.000 nós, definido pela constante MAX_NODES_FOR_VIZ, justamente pra não fritar o navegador
Esse limite é sobrescrevível pela variável de ambiente GRAPHIFY_VIZ_NODE_LIMIT:
export GRAPHIFY_VIZ_NODE_LIMIT=8000
Tome cuidado ao subir muito esse número: o teto existe por um motivo, e não é frescura
- Mantenha o grafo atualizado
Código muda todo dia, e grafo velho mente
graphify query "onde o login é validado" --update
A flag --update faz um re-scan incremental, ou seja, revisita só o que mudou desde a última execução em vez de reconstruir tudo do zero
E quando a pergunta for cabeluda, existe o --mode deep, que faz uma análise multi-passo mais profunda
Quando o navegador ajuda mais que a consulta por comando
Agora a parte que quase ninguém fala: o graph.html e a CLI leem O MESMO grafo, mas não servem pra mesma coisa
O navegador ganha na exploração aberta, aquela em que você ainda não sabe direito o que está procurando
Entender a topologia geral, achar clusters, ver o que orbita um módulo específico, mostrar a arquitetura pra outra pessoa numa call sem precisar abrir 15 arquivos… é o cenário dele
A CLI ganha na pergunta fechada, quando você quer uma resposta que dê pra colar num PR:
graphify query "como o upload de arquivo chega no storage"
graphify query "como o upload de arquivo chega no storage" --dfs
graphify path "UploadController" "S3Client"
graphify explain "UploadController"
O query faz BFS por padrão, com --dfs opcional, o path devolve o caminho mais curto entre dois nós e o explain abre um nó específico
E o detalhe que faz diferença: as respostas trazem caminhos explícitos com citação file:line, e cada aresta vem rotulada como EXTRACTED, INFERRED ou AMBIGUOUS
Saber que uma ligação foi INFERIDA e não extraída muda completamente o quanto você confia nela, beleza?
| Situação | Melhor ferramenta | Por quê |
|---|---|---|
| Não sei nem por onde começar no projeto | graph.html |
vê a topologia inteira e os clusters de uma vez |
| Quero achar o que orbita um módulo | graph.html |
clique no nó + legenda de comunidades isolam a vizinhança |
| Apresentar a arquitetura pra alguém | graph.html |
visual, com zoom, pan e busca por label |
| "Onde exatamente isso é validado?" | graphify query |
resposta com citação file:line |
| Ligar dois pontos distantes do código | graphify path |
caminho mais curto entre os nós |
| Entender um nó específico a fundo | graphify explain |
abre o nó com as arestas rotuladas |
Por padrão, os comandos da CLI leem o graphify-out/graph.json, e a flag --graph <caminho> aponta pra outro graph.json quando você tiver mais de um por perto
Tudo isso roda localmente, o que já resolve boa parte da desconfiança de mandar código pra fora
Tem ainda um terceiro caminho: o Graphify expõe um servidor MCP com 10 ferramentas sobre o mesmo grafo, entre elas query_graph, get_node, get_neighbors e shortest_path
O registro manual vai no .mcp.json do projeto, em mcpServers:
{
"mcpServers": {
"graphify": {
"command": "python",
"args": ["-m", "graphify.serve", "graphify-out/graph.json"]
}
}
}
Com isso o assistente passa a consultar o grafo sozinho, e você para de repetir a estrutura do projeto em toda conversa nova (na mesma linha de raciocínio de organizar conversas no Claude Desktop, que evita o mesmo retrabalho)
E se a tua ideia for levar esse grafo pra dentro de uma ferramenta tua, aí entra outra decisão de arquitetura, tipo escolher entre API da Anthropic ou Agent SDK pra montar o wrapper
Próximo passo: gere o grafo do seu projeto hoje
O fluxo mínimo é curtinho, se liga
Instala o pacote graphifyy, roda graphify install pra registrar a skill, chama /graphify . dentro do assistente e abre o graphify-out/graph.html
Depois disso, o combo que rende mais é usar o navegador pra ESCOLHER o alvo (aquele cluster estranho, aquele nó com grau alto demais) e a CLI pra pegar a resposta citada com file:line
Um explora, o outro comprova
O repositório oficial hoje fica em Graphify-Labs/graphify, organização fundada por Safi Shamsi, e as URLs antigas em safishamsi/graphify apontam pro mesmo projeto
E, de novo, tudo roda localmente, o que deixa o teste bem barato de fazer
Agora é contigo: gera o grafo do teu projeto e vai clicando 😀
até o próximo post!
Perguntas frequentes
Onde fica o graph.html depois de gerado?
Ele fica dentro da pasta graphify-out/, junto com o GRAPH_REPORT.md e o graph.json. Os três são gerados no mesmo passo, quando você roda /graphify . dentro do assistente.
Preciso gerar o grafo antes de abrir o graph.html?
Sim, sem isso não existe arquivo pra abrir. Rode /graphify . primeiro: esse comando mapeia o projeto e cria o graph.json que alimenta o graph.html e todos os comandos da CLI.
O graph.html só funciona no Claude Code?
Não. A skill /graphify que gera o grafo é citada oficialmente para Claude Code, Cursor, Codex e Gemini CLI. O graph.html resultante é um HTML autocontido, então abre normalmente em qualquer navegador depois de gerado.
O graph.html trava em projetos com muitos arquivos?
A visualização tem um teto de 5.000 nós, definido pela constante MAX_NODES_FOR_VIZ, justamente pra não pesar o navegador. Dá pra sobrescrever esse limite com a variável de ambiente GRAPHIFY_VIZ_NODE_LIMIT.
Como atualizar o graph.html depois de mudar o código?
Use graphify query com a flag –update, que faz um re-scan incremental em vez de reconstruir o grafo do zero. Isso atualiza o graph.json, que é a base tanto do graph.html quanto dos outros comandos da CLI.
Quando vale mais abrir o graph.html do que rodar uma consulta na CLI?
O graph.html ganha na exploração aberta, quando você ainda não sabe direito o que está procurando e quer ver clusters, comunidades e conexões numa tela só. Já a CLI, com graphify query, path e explain, ganha na pergunta fechada, com resposta pontual citando arquivo e linha.
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares
O que é o graphify e como ele transforma seu projeto em um grafo de conhecimento?
O graphify transforma seu projeto em um grafo de conhecimento que a IA consulta direto, sem grep. Leitura do código é local, via tree-sitter, sem LLM.
Graphify funciona no Cursor, Codex e Gemini CLI ou só no Claude Code?
O Graphify funciona no Cursor, Codex, Gemini CLI e mais 14 assistentes: veja como a integração muda de ferramenta pra ferramenta antes de instalar.
O que é o Graphify e como ele muda a forma como o Claude Code entende seu projeto?
O Graphify transforma seu projeto em um grafo de conhecimento consultável pelo Claude Code, Cursor, Codex e Gemini CLI. Entenda como funciona.
