CLI 設定で permission トークンを使って、エージェントに許可する操作を構成しよう。権限は ~/.cursor/cli-config.json(グローバル)または <project>/.cursor/cli.json(プロジェクト固有)で設定できる。

パーミッションの種類

シェルコマンド

形式: Shell(commandBase) シェルコマンドへのアクセスを制御する。commandBase はコマンドラインの先頭トークン。
説明
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 パターンでは ***? のワイルドカードを使う
  • 相対パスは現在のワークスペースがスコープになる
  • 絶対パスはプロジェクト外のファイルも対象にできる
  • deny ルールは allow ルールよりも優先される