Visão geral

O Cursor lê e indexa o código do teu projeto para alimentar seus recursos. Controla quais diretórios e arquivos o Cursor pode acessar usando um arquivo .cursorignore no teu diretório raiz. O Cursor bloqueia o acesso a arquivos listados em .cursorignore em:
Chamadas de ferramentas iniciadas pelo Agent, como o terminal e servidores MCP, não conseguem bloquear o acesso ao código regido por .cursorignore

Por que ignorar arquivos?

Segurança: Restringe o acesso a chaves de API, credenciais e segredos. Embora o Cursor bloqueie arquivos ignorados, não há garantia de proteção total devido à imprevisibilidade dos LLMs. Desempenho: Em codebases grandes ou monorepos, exclui trechos irrelevantes para uma indexação mais rápida e uma descoberta de arquivos mais precisa.

Arquivos de ignore globais

Define padrões de ignore para todos os projetos nas configurações do usuário e exclui arquivos sensíveis sem precisar configurar por projeto.
Lista global de ignore do Cursor
Os padrões incluídos por padrão são:
  • Arquivos de ambiente: **/.env, **/.env.*
  • Credenciais: **/credentials.json, **/secrets.json
  • Chaves: **/*.key, **/*.pem, **/id_rsa

Configurando .cursorignore

Cria um arquivo .cursorignore no diretório raiz usando a sintaxe do .gitignore.

Exemplos de padrões

config.json      # Arquivo específico
dist/           # Diretório
*.log           # Extensão de arquivo
**/logs         # Diretórios em qualquer nível
!app/           # Não ignorar (negação)

Ignorar hierárquico

Ativa Cursor Settings > Features > Editor > Hierarchical Cursor Ignore para procurar .cursorignore nos diretórios pai. Notas: Comentários começam com #. Padrões mais abaixo substituem os anteriores. Os padrões são relativos ao caminho do arquivo.

Limitar a indexação com .cursorindexingignore

Usa .cursorindexingignore para excluir arquivos apenas da indexação. Esses arquivos continuam acessíveis para os recursos de IA, mas não vão aparecer nas buscas na codebase.

Arquivos ignorados por padrão

O Cursor ignora automaticamente os arquivos no .gitignore e na lista padrão abaixo. Dá pra sobrescrever usando o prefixo ! em .cursorignore.
Somente para indexação, estes arquivos são ignorados além dos do teu .gitignore, .cursorignore e .cursorindexingignore:
package-lock.json
pnpm-lock.yaml
yarn.lock
composer.lock
Gemfile.lock
bun.lockb
.env*
.git/
.svn/
.hg/
*.lock
*.bak
*.tmp
*.bin
*.exe
*.dll
*.so
*.lockb
*.qwoff
*.isl
*.csv
*.pdf
*.doc
*.doc
*.xls
*.xlsx
*.ppt
*.pptx
*.odt
*.ods
*.odp
*.odg
*.odf
*.sxw
*.sxc
*.sxi
*.sxd
*.sdc
*.jpg
*.jpeg
*.png
*.gif
*.bmp
*.tif
*.mp3
*.wav
*.wma
*.ogg
*.flac
*.aac
*.mp4
*.mov
*.wmv
*.flv
*.avi
*.zip
*.tar
*.gz
*.7z
*.rar
*.tgz
*.dmg
*.iso
*.cue
*.mdf
*.mds
*.vcd
*.toast
*.img
*.apk
*.msi
*.cab
*.tar.gz
*.tar.xz
*.tar.bz2
*.tar.lzma
*.tar.Z
*.tar.sz
*.lzma
*.ttf
*.otf
*.pak
*.woff
*.woff2
*.eot
*.webp
*.vsix
*.rmeta
*.rlib
*.parquet
*.svg
.egg-info/
.venv/
node_modules/
__pycache__/
.next/
.nuxt/
.cache/
.sass-cache/
.gradle/
.DS_Store/
.ipynb_checkpoints/
.pytest_cache/
.mypy_cache/
.tox/
.git/
.hg/
.svn/
.bzr/
.lock-wscript/
.Python/
.jupyter/
.history/
.yarn/
.yarn-cache/
.eslintcache/
.parcel-cache/
.cache-loader/
.nyc_output/
.node_repl_history/
.pnp.js/
.pnp/

Limitações dos padrões de negação

Ao usar padrões de negação (prefixados com !), não tem como reincluir um arquivo se um diretório pai foi excluído via *.
# Ignorar todos os arquivos na pasta public
public/*

# ✅ Isso funciona, pois o arquivo existe na raiz
!public/index.html

# ❌ Isso não funciona — não é possível reincluir arquivos de subdiretórios
!public/assets/style.css
Solução alternativa: Excluir explicitamente diretórios aninhados:
public/assets/*
!public/assets/style.css # Este arquivo agora está acessível
Diretórios excluídos não são percorridos por questões de desempenho, então padrões aplicados aos arquivos dentro deles não têm efeito. Isso corresponde à implementação do .gitignore para padrões de negação em diretórios aninhados. Para mais detalhes, confere a documentação oficial do Git sobre padrões do gitignore.

Solução de problemas

Testa os padrões com git check-ignore -v [arquivo].