Ana içeriğe atla
CLI yapılandırmanda izin belirteçlerini kullanarak ajanın neleri yapmasına izin verildiğini ayarla. İzinler ~/.cursor/cli-config.json (genel) veya <project>/.cursor/cli.json (projeye özel) içinde belirlenir.

İzin türleri

Shell komutları

Biçim: Shell(commandBase) Shell komutlarına erişimi kontrol eder. commandBase, komut satırındaki ilk tokendir.
ÖrnekAçıklama
Shell(ls)ls komutlarının çalıştırılmasına izin ver
Shell(git)Herhangi bir git alt komutuna izin ver
Shell(npm)npm paket yöneticisi komutlarına izin ver
Shell(rm)Yıkıcı dosya silmeyi engelle (genellikle deny içinde)

Dosya okuma

Biçim: Read(pathOrGlob) Dosya ve dizinler için okuma erişimini kontrol eder. Glob desenlerini destekler.
ÖrnekAçıklama
Read(src/**/*.ts)src içindeki TypeScript dosyalarını okumaya izin ver
Read(**/*.md)Her yerdeki markdown dosyalarını okumaya izin ver
Read(.env*)Ortam dosyalarını okumaya izin verme
Read(/etc/passwd)Sistem dosyalarını okumaya izin verme

Dosya yazma

Biçim: Write(pathOrGlob) Dosya ve dizinler için yazma erişimini kontrol eder. Glob desenlerini destekler. Print modunda kullanırken dosya yazmak için --force gerekir.
ÖrnekAçıklama
Write(src/**)src altındaki herhangi bir dosyaya yazmaya izin ver
Write(package.json)package.json’ı değiştirmeye izin ver
Write(**/*.key)Özel anahtar dosyalarına yazmaya izin verme
Write(**/.env*)Ortam dosyalarına yazmaya izin verme

Yapılandırma

CLI yapılandırma dosyandaki permissions nesnesine izinler ekle:
{
  "permissions": {
    "allow": [
      "Shell(ls)",
      "Shell(git)", 
      "Read(src/**/*.ts)",
      "Write(package.json)"
    ],
    "deny": [
      "Shell(rm)",
      "Read(.env*)",
      "Write(**/*.key)"
    ]
  }
}

Desen eşleştirme

  • Glob desenleri **, * ve ? joker karakterlerini kullanır
  • Göreli yollar geçerli çalışma alanıyla sınırlıdır
  • Mutlak yollar projedeki kapsamın dışındaki dosyaları hedefleyebilir
  • Reddetme kuralları, izin verme kurallarına göre önceliklidir
I