在 CLI 配置中使用权限令牌来设置代理可执行的操作。可在 ~/.cursor/cli-config.json(全局)或 <project>/.cursor/cli.json(项目级)中配置权限。

权限类型

Shell 命令

格式: Shell(commandBase) 控制对 Shell 命令的访问。commandBase 是命令行中的第一个标记(token)。
示例说明
Shell(ls)允许运行 ls 命令
Shell(git)允许任意 git 子命令
Shell(npm)允许使用 npm 包管理器命令
Shell(rm)拒绝具有破坏性的删除操作(通常放在 deny 中)

文件读取

格式: Read(pathOrGlob) 控制对文件和目录的读取访问。支持 glob 通配模式。
示例说明
Read(src/**/*.ts)允许读取 src 中的 TypeScript 文件
Read(**/*.md)允许在任意位置读取 Markdown 文件
Read(.env*)拒绝读取环境配置文件
Read(/etc/passwd)拒绝读取系统文件

文件写入

格式: Write(pathOrGlob) 控制对文件和目录的写入访问。支持 glob 通配模式。在使用 print 模式时,写入文件需要加上 --force
示例说明
Write(src/**)允许写入 src 下的任意文件
Write(package.json)允许修改 package.json
Write(**/*.key)拒绝写入私钥文件
Write(**/.env*)拒绝写入环境配置文件

配置

在 CLI 配置文件中的 permissions 对象里添加权限:
{
  "permissions": {
    "allow": [
      "Shell(ls)",
      "Shell(git)", 
      "Read(src/**/*.ts)",
      "Write(package.json)"
    ],
    "deny": [
      "Shell(rm)",
      "Read(.env*)",
      "Write(**/*.key)"
    ]
  }
}

模式匹配

  • Glob 模式使用 ***? 通配符
  • 相对路径作用域为当前工作区
  • 绝对路径可定位到项目外的文件
  • 拒绝规则优先于允许规则