CLI¶
semtree é a única binary do projeto. Todos os comandos abaixo são subcomandos.
Comandos principais¶
semtree index <path>¶
Indexa um projeto.
semtree index . # projeto atual
semtree index ~/code/meu-app # projeto específico
semtree index . --force # reconstrói do zero
Cria .semtree/index.db na raiz do projeto. Reuse a indexação em runs subsequentes (incremental).
semtree context <query>¶
Gera contexto cirúrgico para uma query.
semtree context "implementar paginação"
semtree context "como funciona auth" --limit 10
semtree context "validar input" --format json
Saída padrão: lista de símbolos relevantes com assinatura + docstring. --format json para uso programático.
semtree search <pattern>¶
Busca símbolos por nome exato ou padrão.
semtree search "validate_token"
semtree search "Auth*" # wildcard
semtree search "login" --kind function
--kind filtra por tipo: function, class, method, constant.
semtree mcp¶
Inicia servidor MCP (stdio). Use através de cliente MCP (Claude, Cursor, etc).
Comandos utilitários¶
semtree stats¶
Estatísticas do índice atual.
semtree stats
# Symbols: 5,234
# Functions: 2,103
# Classes: 412
# Languages: python (4,521), typescript (713)
# Size: 2.3 MB
semtree clean¶
Remove o índice. Útil quando o projeto muda muito.
Configuração¶
Variáveis de ambiente:
| Variável | Default | Descrição |
|---|---|---|
SEMTREE_INDEX_PATH |
.semtree |
Diretório do índice |
SEMTREE_LANGUAGES |
auto-detect | Lista CSV de linguagens (ex: python,typescript) |
SEMTREE_MAX_FILE_SIZE |
1048576 |
Tamanho máximo de arquivo (1MB default) |
SEMTREE_LOG_LEVEL |
INFO |
DEBUG, INFO, WARNING, ERROR |
Casos de uso comuns¶
Pre-commit hook¶
Reindexa antes de cada commit:
CI¶
Verifica que o índice está atualizado: