Codex에서 권한을 고를 때 먼저 헷갈리는 건 설정 위치입니다.
CLI에서는 /permissions와 실행 플래그를 씁니다.
IDE에서는 입력창 아래 모드 선택 메뉴를 씁니다.
Codex app에서는 권한 설정과 함께 Local·Worktree·Cloud 같은 실행 위치도 고릅니다.
위치를 잡고 나면 그다음은 단순합니다.
할 일을 먼저 고르고, 필요한 권한만 엽니다.
어디서 바꾸나
CLI에서는 대화 중 /permissions를 씁니다. 시작할 때 정하고 싶으면 --sandbox와 --ask-for-approval 플래그를 붙입니다. 반복해서 같은 설정으로 쓰고 싶으면 config.toml에 기본값을 둡니다.
codex --sandbox workspace-write --ask-for-approval on-request
IDE에서는 입력창 아래 모드 선택 메뉴를 씁니다. 문서 기준 기본은 Agent입니다. 계획이나 대화만 필요하면 Chat을 고르고, 더 넓게 맡길 때는 Agent (Full Access)를 고릅니다.
Codex app에서는 권한 설정과 함께 실행 위치도 고릅니다.
| 앱 모드 | 쓰임 |
|---|---|
Local | 현재 프로젝트에서 바로 작업 |
Worktree | 원래 폴더는 안 건드리고, 분리된 작업 공간(Git worktree)에서 작업 |
Cloud | 설정한 클라우드 환경에서 실행 |
앱에서도 approval과 sandbox 설정이 Codex 행동을 제한합니다. 실행 위치와 권한 설정을 같이 보는 구조입니다.
어디까지 할 수 있고, 언제 물어보나
Codex 권한을 정할 때는 두 가지를 확인합니다.
하나는 어디까지 접근할 수 있는가, 곧 Codex가 움직일 수 있는 울타리입니다. 이게 sandbox_mode입니다.
다른 하나는 언제 멈춰서 물어보는가입니다. 이게 approval_policy입니다.
| 항목 | 정하는 것 | 대표 값 |
|---|---|---|
sandbox_mode | 파일과 네트워크 접근 범위 | read-only · workspace-write · danger-full-access |
approval_policy | 승인 질문이 필요한 시점 | untrusted · on-request · never |
참고 — 승인 요청을 사람이 볼지 자동 리뷰어가 볼지는 approvals_reviewer(기본 user)로 정합니다. 이건 /permissions나 플래그가 아니라 config.toml에서 따로 켜고, approval_policy가 on-request일 때만 동작합니다.
계획만 보고 싶을 때
처음 보는 저장소나 큰 작업은 바로 고치게 두기보다 계획부터 보는 편이 편합니다.
이때 CLI에서는 /plan을 씁니다. Codex가 맥락을 읽고, 필요한 질문을 하고, 구현 전에 계획을 세웁니다. 문서도 Plan mode를 구현 전 계획 단계로 설명합니다.
IDE에서는 Chat을 같은 용도로 쓸 수 있습니다. 대화만 하거나, 변경 전에 계획을 보고 싶을 때 쓰는 모드로 문서화돼 있습니다.
| 상황 | 시작점 |
|---|---|
| 작업 범위가 아직 분명하지 않다 | /plan |
| 여러 파일을 건드릴 것 같다 | /plan |
| 먼저 설명이나 선택지를 듣고 싶다 | read-only 또는 IDE Chat |
계획이 괜찮으면 그다음 실행 권한을 고릅니다. 계획 단계와 실행 단계가 나뉘어 있으면 중간에 방향을 고치기 쉽습니다.
읽기만 시킬 때
파일을 고칠 필요가 없으면 read-only가 맞습니다.
예를 들어 이런 일입니다.
| 하고 싶은 일 | 권한 |
|---|---|
| 저장소 구조 설명 | read-only |
| 회의록·문서 요약 | read-only |
| 로그나 설정을 보고 원인 후보 정리 | read-only |
| 변경 전 계획 수립 | read-only 또는 /plan |
CLI에서는 시작할 때 이렇게 줄 수 있습니다.
codex --sandbox read-only --ask-for-approval on-request
파일을 읽기만 하면 되는 일에는 이 설정이면 충분합니다. Codex가 필요한 파일을 보고 설명하되, 수정은 별도로 넘겨야 합니다.
작업 폴더 안에서 수정할 때
일반적인 로컬 작업은 workspace-write + on-request가 기본 선택지에 가깝습니다.
CLI로 쓰면 이런 형태입니다.
codex --sandbox workspace-write --ask-for-approval on-request
이 조합에서 Codex는 작업 폴더 안 파일을 읽고, 고치고, 일반적인 로컬 명령을 실행할 수 있습니다. 작업 폴더 밖을 고치거나 네트워크가 필요한 명령을 쓰려 할 때는 승인을 묻습니다.
문서는 Auto 프리셋도 이 조합으로 설명합니다. 작업 폴더 안의 보통 일은 맡기고, 경계를 넘는 일은 한 번 확인하는 방식입니다.
반복 작업으로 돌릴 때
스크립트나 자동화에서는 codex exec가 기본 입구입니다.
공식 문서에 따르면 codex exec는 기본으로 read-only sandbox에서 실행됩니다. 자동화에서는 필요한 권한만 명시해 두는 편이 관리하기 쉽습니다.
예를 들어 파일 수정까지 필요한 반복 작업이면 이렇게 시작할 수 있습니다.
codex exec --sandbox workspace-write "..."
자동화에서 작업 폴더 밖 접근이 필요하면 sandbox 범위를 넓힐 수 있습니다. 다만 자동화는 사람이 화면을 계속 보고 있지 않는 흐름이므로, 작업 폴더와 네트워크 접근을 좁게 잡는 편이 관리하기 쉽습니다.
approval_policy = "never"를 쓰는 경우에도 sandbox는 별도로 정합니다. 승인 질문을 줄이는 것과 접근 범위를 넓히는 것은 다른 설정입니다.
격리된 환경에서 더 넓게 맡길 때
danger-full-access나 IDE의 Agent (Full Access)는 격리된 환경에서 더 넓게 맡길 때 쓰는 선택지입니다.
공식 문서는 full access를 sandbox_mode = "danger-full-access"와 approval_policy = "never"를 함께 쓰는 조합으로 설명합니다. IDE 문서는 Agent (Full Access)를 파일 수정, 명령 실행, 네트워크 접근까지 승인 없이 맡길 때 쓰는 모드로 설명하고, 신중하게 쓰라고 적습니다.
이 모드가 어울리는 곳은 격리된 환경 — 망가져도 버리면 그만인 곳입니다.
CI runner.
컨테이너.
일회용 VM.
버려도 되는 실험용 worktree.
이런 곳에서는 실패해도 피해 범위가 비교적 뚜렷합니다. 반대로 평소 쓰는 작업 폴더에서 필요한 게 폴더 하나 더 쓰는 정도라면, full access보다 --add-dir(쓸 수 있는 폴더를 하나만 더 여는 설정)나 writable roots가 더 좁은 선택입니다.
이렇게 고른다
| 상황 | 보통의 시작점 |
|---|---|
| 설명, 요약, 계획만 필요하다 | /plan, read-only, IDE Chat |
| 파일을 읽기만 하면 된다 | read-only |
| 현재 프로젝트 안 파일을 고친다 | workspace-write + on-request |
| 반복 작업을 스크립트로 돌린다 | codex exec + 필요한 최소 sandbox |
| 네트워크와 외부 폴더까지 승인 없이 맡긴다 | 격리 환경에서 danger-full-access 또는 Agent (Full Access) |
코드 작업이 아니어도 기준은 같습니다.
회의록을 읽고 요약하면 read-only.
현재 폴더의 보고서 초안을 고치면 workspace-write + on-request.
매일 같은 보고서를 만드는 자동화라면 codex exec와 필요한 최소 권한.
무엇을 맡길지 먼저 정하면, 권한 선택도 따라옵니다.
이번에 직접 확인한 것
이 글에서 제가 직접 확인한 CLI는 codex-cli 0.142.4입니다. 확인일은 2026년 7월 1일(KST)입니다.
codex --help에서 --sandbox 값은 세 가지로 나왔습니다.
read-onlyworkspace-writedanger-full-access
--ask-for-approval 값은 네 가지가 보였습니다.
untrustedon-failureon-requestnever
문서와 도움말 모두 on-failure는 deprecated로 둡니다. 새로 고를 값으로는 interactive run에서 on-request, non-interactive run에서 never를 보라는 쪽입니다.
codex exec --help에는 --sandbox가 직접 보였습니다. --ask-for-approval은 exec 도움말 안에 직접 나오지는 않았지만, codex -a never exec --help처럼 승인 플래그를 상위 전역 플래그 자리에 두면 받아들여졌습니다.
앱과 IDE의 화면 설명은 공식 문서 기준입니다. 이번 글에서는 Agent, Chat, Agent (Full Access), permissions selector, Local/Worktree/Cloud 화면을 직접 열어 확인하지는 않았습니다.
필요한 만큼만 열기
Codex 권한 모드는 외울 목록이라기보다 작업 전 점검표에 가깝습니다.
먼저 할 일을 고릅니다.
계획을 볼지.
읽기만 할지.
작업 폴더 안에서 수정할지.
반복 작업으로 돌릴지.
격리된 환경에서 더 넓게 맡길지.
그다음 그 일에 필요한 만큼만 sandbox와 approval을 엽니다.
한 줄로 줄이면 이렇습니다.
할 일을 먼저 고르고, 필요한 권한만 엽니다.
참고한 문서
- OpenAI Codex: Best practices
- OpenAI Codex: Agent approvals & security
- OpenAI Codex: Sandbox
- OpenAI Codex: Slash commands in Codex CLI
- OpenAI Codex: Command line options
- OpenAI Codex: Codex IDE extension features
- OpenAI Codex: Codex app features
- OpenAI Codex: Non-interactive mode
- OpenAI Codex: Auto-review
codex --version,codex --help,codex exec --help— 직접 관측 /codex-cli 0.142.4