O que meridian faz?
Grafo de conhecimento de código para agentes de IA de programação. Aponte para um repositório GitHub e obtenha um grafo consultável de cada função, classe e dependência — para seu agente parar de queimar contexto (e tokens) lendo arquivos inteiros. Tree-sitter + índice de símbolos, builds incrementais. Auto-hospedado. Python/Java/JS.
Como funciona
- Analise um repositório GitHub com Meridian, que usa Tree-sitter para parsear o código-fonte.
- Construa um grafo de conhecimento onde cada nó é uma função, classe ou arquivo, e cada aresta é uma relação (chamada de função, herança de classe, dependência de módulo).
- Consulte o grafo com perguntas como "Mostre todas as funções que chamam
validate_input" ou "Quais classes herdam deBaseModel?" - Integre com seu agente de IA (Claude Code, Cursor, Codex) para dar a ele um mapa navegável do código sem ler arquivos inteiros.
Por que usar?
- Economia de tokens: Evita que seu agente leia arquivos completos desnecessariamente. Cada consulta ao grafo custa muito menos tokens do que ler um arquivo de 500 linhas.
- Precisão: O grafo fornece relações exatas (chamadas, heranças, dependências), não aproximações.
- Builds incrementais: Meridian recarrega apenas arquivos modificados, tornando a indexação de repositórios grandes rápida e eficiente.
- Auto-hospedado: Execute localmente ou em seu servidor. Seus dados de código nunca saem do seu controle.
Plataformas suportadas
- Agentes: Claude Code, Cursor, Codex e qualquer agente que suporte consultas a APIs ou arquivos locais.
- Linguagens: Python, Java, JavaScript (com planos para TypeScript, Go, Rust).
Começando
# Clone o repositório
gh repo clone arkapatra31/meridian
cd meridian
# Instale dependências
pip install -r requirements.txt
# Analise um repositório (substitua pelo caminho ou URL)
python meridian.py --repo caminho/para/repo
# Construa o grafo
python meridian.py --build
# Consulte
python meridian.py --query "mostre todas as funções que chamam validate_input"
Exemplo de consulta
from meridian import Meridian
# Inicialize com um repositório já indexado
m = Meridian("caminho/para/repo")
# Obtenha todas as funções públicas
funcs = m.get_functions(visibility="public")
# Encontre dependências de uma classe
deps = m.get_dependencies("MinhaClasse")
# Consulte chamadas a uma função específica
callers = m.get_callers("process_data")
print(f"Funções públicas: {len(funcs)}")
print(f"Dependências de MinhaClasse: {deps}")
print(f"Quem chama process_data: {callers}")
Configuração
| Variável | Descrição | Padrão |
|---|---|---|
MERIDIAN_REPO | Caminho para o repositório a ser indexado | . |
MERIDIAN_PORT | Porta para o servidor de consultas (opcional) | 8000 |
MERIDIAN_LANG | Linguagem(s) para análise (separadas por vírgula) | python,java,javascript |
MERIDIAN_INCREMENTAL | Habilitar builds incrementais | true |
Contribuindo
Contribuições são bem-vindas! Veja o CONTRIBUTING.md para diretrizes.
Licença
MIT