Configura o que o agente pode fazer usando tokens de permissão na tua configuração da CLI. As permissões são definidas em ~/.cursor/cli-config.json (global) ou <project>/.cursor/cli.json (específico do projeto).

Tipos de permissão

Comandos de shell

Formato: Shell(commandBase) Controla o acesso a comandos de shell. O commandBase é o primeiro token da linha de comando.
ExemploDescrição
Shell(ls)Permite executar comandos ls
Shell(git)Permite qualquer subcomando do git
Shell(npm)Permite comandos do gerenciador de pacotes npm
Shell(rm)Nega remoção destrutiva de arquivos (geralmente em deny)

Leitura de arquivos

Formato: Read(pathOrGlob) Controla o acesso de leitura a arquivos e diretórios. Suporta padrões glob.
ExemploDescrição
Read(src/**/*.ts)Permite ler arquivos TypeScript em src
Read(**/*.md)Permite ler arquivos Markdown em qualquer lugar
Read(.env*)Nega a leitura de arquivos de ambiente
Read(/etc/passwd)Nega a leitura de arquivos do sistema

Escrita de arquivos

Formato: Write(pathOrGlob) Controla o acesso de escrita a arquivos e diretórios. Suporta padrões glob. Ao usar no modo de impressão, --force é obrigatório para gravar arquivos.
ExemploDescrição
Write(src/**)Permite escrever em qualquer arquivo dentro de src
Write(package.json)Permite modificar o package.json
Write(**/*.key)Nega a gravação de arquivos de chave privada
Write(**/.env*)Nega a gravação de arquivos de ambiente

Configuração

Adiciona permissões ao objeto permissions no teu arquivo de configuração da CLI:
{
  "permissions": {
    "allow": [
      "Shell(ls)",
      "Shell(git)", 
      "Read(src/**/*.ts)",
      "Write(package.json)"
    ],
    "deny": [
      "Shell(rm)",
      "Read(.env*)",
      "Write(**/*.key)"
    ]
  }
}

Correspondência de padrões

  • Padrões glob usam os curingas **, * e ?
  • Caminhos relativos têm escopo no workspace atual
  • Caminhos absolutos podem apontar para arquivos fora do projeto
  • Regras de negação têm precedência sobre regras de permissão