CLI 설정에서 권한 토큰으로 에이전트가 할 수 있는 작업을 설정해. 권한은 ~/.cursor/cli-config.json(글로벌)이나 <project>/.cursor/cli.json(프로젝트별)에 지정하면 돼.

권한 유형

Shell 명령어

형식: Shell(commandBase) Shell 명령어에 대한 접근을 제어해. commandBase는 명령줄의 첫 번째 토큰이야.
ExampleDescription
Shell(ls)ls 명령 실행 허용
Shell(git)모든 git 하위 명령 허용
Shell(npm)npm 패키지 관리자 명령 허용
Shell(rm)파괴적인 파일 삭제 거부 (보통 deny에 사용)

파일 읽기

형식: Read(pathOrGlob) 파일과 디렉터리에 대한 읽기 접근을 제어해. glob 패턴을 지원해.
ExampleDescription
Read(src/**/*.ts)src 내 TypeScript 파일 읽기 허용
Read(**/*.md)어디서든 Markdown 파일 읽기 허용
Read(.env*)환경 파일 읽기 거부
Read(/etc/passwd)시스템 파일 읽기 거부

파일 쓰기

형식: Write(pathOrGlob) 파일과 디렉터리에 대한 쓰기 접근을 제어해. glob 패턴을 지원해. print 모드에서 사용할 땐 파일을 쓰려면 --force가 필요해.
ExampleDescription
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) 패턴은 **, *, ? 와일드카드를 써
  • 상대 경로는 현재 워크스페이스 기준이야
  • 절대 경로는 프로젝트 밖의 파일도 지정할 수 있어
  • 거부 규칙이 허용 규칙보다 우선이야