在 CLI 設定中使用 permission tokens 來設定代理程式可執行的操作。權限可在 ~/.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 模式。使用列印模式時,寫入檔案必須加上 --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 模式使用 ***? 萬用字元
  • 相對路徑以目前工作區為範圍
  • 絕對路徑可指向專案外的檔案
  • 拒絕規則優先於允許規則