Настрой, что агенту можно делать, с помощью токенов разрешений в конфигурации CLI. Разрешения задаются в ~/.cursor/cli-config.json (глобально) или <project>/.cursor/cli.json (для конкретного проекта).

Типы разрешений

Команды shell

Формат: Shell(commandBase) Управляет доступом к командам shell. commandBase — это первый токен в командной строке.
ПримерОписание
Shell(ls)Разрешить запуск команд ls
Shell(git)Разрешить любые подкоманды git
Shell(npm)Разрешить команды менеджера пакетов npm
Shell(rm)Запретить разрушительное удаление файлов (обычно используется в deny)

Чтение файлов

Формат: Read(pathOrGlob) Управляет доступом на чтение файлов и каталогов. Поддерживает glob-шаблоны.
ПримерОписание
Read(src/**/*.ts)Разрешить чтение файлов TypeScript в src
Read(**/*.md)Разрешить чтение файлов Markdown в любом месте
Read(.env*)Запретить чтение файлов окружения
Read(/etc/passwd)Запретить чтение системных файлов

Запись файлов

Формат: Write(pathOrGlob) Управляет доступом на запись в файлы и каталоги. Поддерживает glob-шаблоны. В режиме печати для записи файлов требуется флаг --force.
ПримерОписание
Write(src/**)Разрешить запись в любой файл внутри src
Write(package.json)Разрешить изменение package.json
Write(**/*.key)Запретить запись файлов приватных ключей
Write(**/.env*)Запретить запись файлов окружения

Конфигурация

Добавь разрешения в объект permissions в твоём конфигурационном файле CLI:
{
  "permissions": {
    "allow": [
      "Shell(ls)",
      "Shell(git)", 
      "Read(src/**/*.ts)",
      "Write(package.json)"
    ],
    "deny": [
      "Shell(rm)",
      "Read(.env*)",
      "Write(**/*.key)"
    ]
  }
}

Сопоставление по шаблонам

  • В шаблонах glob используются маски **, * и ?
  • Относительные пути рассматриваются в пределах текущего рабочего пространства
  • Абсолютные пути могут указывать на файлы за пределами проекта
  • Правила deny имеют приоритет над правилами allow