Permissões
Configure o que o agente pode fazer usando tokens de permissão na configuração da CLI. As permissões são definidas em ~/.cursor/cli-config.json (global) ou <project>/.cursor/cli.json (específica do projeto).
Tipos de permissão
Comandos do shell
Formato: Shell(commandBase)
Controla o acesso a comandos do shell. O commandBase é o primeiro token da linha de comando. Oferece suporte a padrões glob e à sintaxe opcional command:args para um controle mais preciso.
| Exemplo | Descrição |
|---|---|
Shell(ls) | Permitir a execução de comandos ls |
Shell(git) | Permitir qualquer subcomando do git |
Shell(npm) | Permitir comandos do gerenciador de pacotes npm |
Shell(curl:*) | Permitir curl com quaisquer argumentos |
Shell(rm) | Negar a remoção destrutiva de arquivos (comum em deny) |
Leitura de arquivos
Formato: Read(pathOrGlob)
Controla o acesso de leitura a arquivos e diretórios. Oferece suporte a padrões glob.
| Exemplo | Descriçã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 |
Gravação em arquivos
Formato: Write(pathOrGlob)
Controla o acesso de gravação a arquivos e diretórios. Oferece suporte a padrões glob. O modo de impressão pode usar as ferramentas de gravação e shell. Use permissions.allow, permissions.deny e --force para controlar o que é executado sem prompts.
| Exemplo | Descrição |
|---|---|
Write(src/**) | Permitir gravação em qualquer arquivo em src |
Write(package.json) | Permitir modificar package.json |
Write(**/*.key) | Negar gravação em arquivos de chaves privadas |
Write(**/.env*) | Negar gravação em arquivos de ambiente |
Consulta na web
Formato: WebFetch(domainOrPattern)
Controla quais domínios o agente pode consultar ao usar a ferramenta de consulta na web (por exemplo, para acessar documentação ou páginas da web). Sem uma entrada na lista de permissão, cada consulta solicita aprovação. Adicione domínios a allow para aprovar automaticamente consultas de fontes confiáveis.
| Exemplo | Descrição |
|---|---|
WebFetch(docs.github.com) | Permitir consultas em docs.github.com |
WebFetch(*.example.com) | Permitir consultas em qualquer subdomínio de example.com |
WebFetch(*) | Permitir consultas em qualquer domínio (use com cautela) |
Correspondência de padrões de domínio:
*corresponde a todos os domínios*.example.comcorresponde a subdomínios (por exemplo,docs.example.com,api.example.com)example.comcorresponde apenas a esse domínio exato
Ferramentas MCP
Formato: Mcp(server:tool)
Controla quais ferramentas MCP (Model Context Protocol) o agente pode executar. Use o server (do mcp.json) e o nome da tool, com * como curinga.
| Exemplo | Descrição |
|---|---|
Mcp(datadog:*) | Permite todas as ferramentas do servidor MCP Datadog |
Mcp(*:search) | Permite a ferramenta search de qualquer servidor |
Mcp(*:*) | Permite todas as ferramentas MCP (use com cautela) |
Configuração
Adicione permissões ao objeto permissions no arquivo de configuração da CLI:
{ "permissions": { "allow": [ "Shell(ls)", "Shell(git)", "Read(src/**/*.ts)", "Write(package.json)", "WebFetch(docs.github.com)", "WebFetch(*.github.com)", "Mcp(datadog:*)" ], "deny": [ "Shell(rm)", "Read(.env*)", "Write(**/*.key)", "WebFetch(malicious-site.com)" ] }}Correspondência de padrões
- Padrões glob usam os curingas
**,*e? - Caminhos relativos se aplicam ao espaço de trabalho atual
- Caminhos absolutos podem direcionar arquivos fora do projeto
- Regras de negação têm precedência sobre regras de permissão
- Use
command:args(por exemplo,curl:*) para corresponder ao comando e aos argumentos com globs