用 CLI 設定裡的 permission token 來設定代理可以做的事。權限可以在 ~/.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 模式使用 ***? 萬用字元
  • 相對路徑以目前工作區為範圍
  • 絕對路徑可指向專案外的檔案
  • 拒絕規則優先於允許規則