CLI yapılandırmanda izin belirteçlerini kullanarak ajanın ne yapabileceğini yapılandır. İzinler ~/.cursor/cli-config.json (global) 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 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 silme işlemlerine izin verme (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 yerde 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 dizinlere yazma erişimini kontrol eder. Glob desenlerini destekler. Yazdırma modunda kullanırken dosyaları yazmak için --force gerekir.
ÖrnekAçıklama
Write(src/**)src altındaki herhangi bir dosyaya yazmaya izin ver
Write(package.json)package.json dosyasını 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 izinleri 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 ? jokerlerini kullanır
  • Göreli yollar mevcut çalışma alanı kapsamındadır
  • Mutlak yollar projenin dışındaki dosyaları hedefleyebilir
  • Reddetme kuralları, izin verme kurallarına göre önceliklidir