Gambaran Umum

Cursor membaca dan mengindeks codebase proyekmu untuk mendukung fitur-fiturnya. Atur direktori dan file mana yang boleh diakses Cursor pakai file .cursorignore di direktori root. Cursor memblokir akses ke file yang tercantum di .cursorignore dari:
Panggilan tool yang dijalankan oleh Agent, seperti terminal dan server MCP, nggak bisa memblokir akses ke kode yang diatur oleh .cursorignore

Kenapa nge-ignore file?

Keamanan: Batasi akses ke API key, kredensial, dan secret. Meski Cursor ngeblokir file yang di-ignore, perlindungan penuh tetap nggak bisa dijamin karena ketidakpastian LLM. Performa: Di codebase besar atau monorepo, exclude bagian yang nggak relevan biar indexing lebih cepat dan penemuan file lebih akurat.

Global ignore files

Atur pola ignore untuk semua project di user settings biar file sensitif otomatis dikecualikan tanpa perlu konfigurasi per project.
Global Cursor Ignore List
Pola default mencakup:
  • File environment: **/.env, **/.env.*
  • Kredensial: **/credentials.json, **/secrets.json
  • Kunci: **/*.key, **/*.pem, **/id_rsa

Mengonfigurasi .cursorignore

Buat file .cursorignore di direktori root kamu dengan sintaks .gitignore.

Contoh pola

config.json      # File spesifik
dist/           # Direktori
*.log           # Ekstensi file
**/logs         # Direktori bertingkat
!app/           # Jangan diabaikan (negasi)

Pengabaian hierarkis

Aktifkan Cursor Settings > Features > Editor > Hierarchical Cursor Ignore untuk mencari file .cursorignore di direktori induk. Catatan: Komentar diawali dengan #. Pola yang muncul belakangan akan menimpa yang lebih awal. Pola bersifat relatif terhadap lokasi file.

Batasi pengindeksan dengan .cursorindexingignore

Gunakan .cursorindexingignore untuk mengecualikan file hanya dari pengindeksan. File ini tetap bisa diakses oleh fitur AI, tapi nggak akan muncul di pencarian codebase.

File yang diabaikan secara default

Cursor otomatis mengabaikan file di .gitignore dan daftar abaikan default di bawah. Kamu bisa menimpanya dengan awalan ! di .cursorignore.
Hanya untuk pengindeksan, file-file berikut diabaikan selain yang ada di .gitignore, .cursorignore, dan .cursorindexingignore kamu:
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/

Batasan pola negasi

Saat pakai pola negasi (diawali !), lo nggak bisa menyertakan ulang file kalau direktori induknya dikecualikan pakai *.
# Abaikan semua file di folder public
public/*

# ✅ Ini berfungsi, karena file berada di tingkat teratas
!public/index.html

# ❌ Ini tidak berfungsi — tidak bisa menyertakan kembali file dari direktori bertingkat
!public/assets/style.css
Solusi sementara: Kecualikan direktori bertingkat secara eksplisit:
public/assets/*
!public/assets/style.css # File ini sekarang bisa diakses
Direktori yang dikecualikan nggak ditelusuri demi performa, jadi pola pada file di dalamnya nggak berpengaruh. Ini sesuai dengan implementasi .gitignore untuk pola negasi di direktori bertingkat. Buat detail lebih lanjut, cek dokumentasi resmi Git tentang pola gitignore.

Pemecahan masalah

Uji pola dengan git check-ignore -v [file].