O ChatCLI suporta um sistema de exclusão de arquivos inspirado no .gitignore. Isso permite que você refine o contexto enviado para a IA, evitando arquivos irrelevantes como testes, logs, dependências e builds.
Por que filtrar arquivos?
| Benefício | Descrição |
|---|
| Foco | Envia apenas código-fonte relevante, resultando em respostas mais precisas |
| Eficiência | Economiza tokens, o que reduz custos em APIs pagas |
| Velocidade | Processa projetos grandes mais rapidamente ao ignorar arquivos desnecessários |
| Redução de ruído | Evita poluir o contexto com arquivos compilados, dependências ou logs |
O arquivo .chatignore
A sintaxe é idêntica à do .gitignore:
- Linhas que começam com
# são comentários
- Para ignorar um diretório inteiro, adicione o nome seguido de
/ (ex: docs/)
- Use padrões glob (wildcards) para ignorar arquivos (ex:
*_test.go, *.log)
Exemplo prático
# Ignorar todos os arquivos de teste do Go
*_test.go
# Ignorar diretórios inteiros
docs/
e2e/
vendor/
node_modules/
dist/
build/
# Ignorar arquivos de configuração de CI e logs
.github/
golangci.yml
*.log
# Ignorar binários e arquivos compilados
*.exe
*.so
*.dylib
Hierarquia de precedência
O ChatCLI procura por um arquivo de ignore em uma ordem específica. O primeiro encontrado é utilizado e os demais são ignorados:
| Prioridade | Local | Descrição |
|---|
| 1 (maior) | Variável CHATCLI_IGNORE | Caminho absoluto para um arquivo de regras |
| 2 | .chatignore no diretório analisado | Regras específicas do projeto |
| 3 | ~/.chatcli/.chatignore | Regras globais do usuário |
| 4 (menor) | Regras internas padrão | Ignora .git, node_modules, etc. |
export CHATCLI_IGNORE="~/configs/meu_ignore_global.txt"
As regras não são mescladas. Apenas o primeiro arquivo de ignore encontrado na hierarquia é utilizado. Se você definir CHATCLI_IGNORE, os arquivos .chatignore do projeto e do diretório global serão ignorados.
Regras padrão
Quando nenhum arquivo .chatignore é encontrado, o ChatCLI usa regras internas que já ignoram automaticamente:
.git/
node_modules/
vendor/
__pycache__/
.idea/, .vscode/
- Arquivos binários e compilados
Dicas de uso
- Crie um
.chatignore na raiz de cada projeto para regras específicas
- Use o
~/.chatcli/.chatignore global para regras universais (ex: .DS_Store, Thumbs.db)
- Combine com
@file --mode smart para que a IA selecione apenas os arquivos mais relevantes dentro do escopo já filtrado