Pular para o conteúdo principal
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ícioDescrição
FocoEnvia apenas código-fonte relevante, resultando em respostas mais precisas
EficiênciaEconomiza tokens, o que reduz custos em APIs pagas
VelocidadeProcessa projetos grandes mais rapidamente ao ignorar arquivos desnecessários
Redução de ruídoEvita 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:
PrioridadeLocalDescrição
1 (maior)Variável CHATCLI_IGNORECaminho absoluto para um arquivo de regras
2.chatignore no diretório analisadoRegras específicas do projeto
3~/.chatcli/.chatignoreRegras globais do usuário
4 (menor)Regras internas padrãoIgnora .git, node_modules, etc.

Exemplo com variável de ambiente

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