Leg fest, was der Agent darf, indem du Berechtigungstokens in deiner CLI-Konfiguration verwendest. Berechtigungen werden in ~/.cursor/cli-config.json (global) oder <project>/.cursor/cli.json (projektspezifisch) definiert.

Berechtigungstypen

Shell-Befehle

Format: Shell(commandBase) Steuert den Zugriff auf Shell-Befehle. Die commandBase ist das erste Token in der Befehlszeile.
BeispielBeschreibung
Shell(ls)Ausführen von ls-Befehlen erlauben
Shell(git)Beliebige git-Subcommands erlauben
Shell(npm)Befehle des npm-Paketmanagers erlauben
Shell(rm)Zerstörerisches Löschen von Dateien verweigern (häufig in deny)

Dateilesen

Format: Read(pathOrGlob) Steuert den Lesezugriff auf Dateien und Verzeichnisse. Unterstützt Glob-Muster.
BeispielBeschreibung
Read(src/**/*.ts)Lesen von TypeScript-Dateien in src erlauben
Read(**/*.md)Lesen von Markdown-Dateien überall erlauben
Read(.env*)Lesen von Umgebungsdateien verweigern
Read(/etc/passwd)Lesen von Systemdateien verweigern

Dateischreiben

Format: Write(pathOrGlob) Steuert den Schreibzugriff auf Dateien und Verzeichnisse. Unterstützt Glob-Muster. Im Print-Modus ist --force erforderlich, um Dateien zu schreiben.
BeispielBeschreibung
Write(src/**)Schreiben in beliebige Dateien unter src erlauben
Write(package.json)Ändern von package.json erlauben
Write(**/*.key)Schreiben von privaten Schlüsseldateien verweigern
Write(**/.env*)Schreiben von Umgebungsdateien verweigern

Konfiguration

Füg dem Objekt permissions in deiner CLI-Konfigurationsdatei Berechtigungen hinzu:
{
  "permissions": {
    "allow": [
      "Shell(ls)",
      "Shell(git)", 
      "Read(src/**/*.ts)",
      "Write(package.json)"
    ],
    "deny": [
      "Shell(rm)",
      "Read(.env*)",
      "Write(**/*.key)"
    ]
  }
}

Pattern Matching

  • Glob-Muster verwenden die Platzhalter **, * und ?
  • Relative Pfade beziehen sich auf deinen aktuellen Workspace
  • Absolute Pfade können Dateien außerhalb des Projekts adressieren
  • Deny-Regeln haben Vorrang vor Allow-Regeln