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

İzin türleri

Shell komutları

Biçim: Shell(commandBase) Shell komutlarına erişimi kontrol eder. commandBase, komut satırındaki ilk belirteçtir.
ÖrnekAçıklama
Shell(ls)ls komutlarını çalıştırmaya 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 reddet (genellikle deny içinde)

Dosya okuma

Biçim: Read(pathOrGlob) Dosya ve dizinlere 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ı okumayı reddet
Read(/etc/passwd)Sistem dosyalarını okumayı reddet

Dosya yazma

Biçim: Write(pathOrGlob) Dosya ve dizinlere yazma erişimini kontrol eder. Glob desenlerini destekler. Yazdırma 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 yazmayı reddet
Write(**/.env*)Ortam dosyalarına yazmayı reddet

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şleme

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