37단계설정·스킬·MCP로 넓히기
자주 바꾸는 선택은 설정 파일에, 되풀이하는 일은 스킬에, 바깥 도구는 MCP에 맡기고, 자동으로 돌리는 일은 읽기 전용에서 시작합니다.
codex exec현장 장면따라 하기복사해 쓰는 프롬프트막히면 이렇게스스로 점검기억할 것더 알아보기걸리는 시간 · 읽기 약 15분 · 따라 하기 약 60분 · 난이도 ★★★ 심화
이 단계를 마치면
~/.codex/config.toml의 주요 설정을 읽고, 내게 맞게 몇 가지를 바꿀 수 있습니다.- 스킬, 플러그인, MCP, 훅, 서브에이전트가 Codex에서 어디에 있고 어떻게 확인하는지 압니다.
- Claude Code 설정을
/import로 가져오고,codex exec로 읽기 전용 점검 하나를 돌릴 수 있습니다.
Codex를 며칠 써 보면 같은 선택을 매번 반복하고 있다는 것을 알게 됩니다. 켤 때마다 모델을 고르고, 권한을 바꾸고, 같은 설명을 다시 붙여 넣습니다. 29단계에서 Claude Code를 넓혔던 것처럼, Codex에도 이런 반복을 줄이는 장치가 있습니다. 이름도 대부분 같습니다. 이 단계에서는 그 장치들이 Codex에서는 어디에 있는지 살펴보고, 마지막에 대화 없이 한 번 돌고 끝나는 codex exec를 자동 점검에 붙여 봅니다.
config.toml: 매번 고르던 것을 적어 두는 곳
Codex의 설정은 config.toml이라는 파일에 모입니다. 내 계정 전체에 쓰는 설정은 ~/.codex/config.toml에, 특정 프로젝트에만 쓰는 설정은 그 폴더의 .codex/config.toml에 둡니다. 프로젝트 설정은 내가 신뢰한다고 표시한 프로젝트에서만 읽습니다. CLI, IDE 확장, 데스크톱 앱이 같은 설정을 함께 씁니다.
설정이 여러 곳에 있으면 순서대로 우선합니다. 실행할 때 붙인 옵션과 -c가 가장 먼저이고, 다음이 프로젝트 설정, 프로필, 사용자 설정, 클라우드 관리 설정, 시스템 설정, 기본값 순입니다. 프로필은 ~/.codex/<이름>.config.toml에 두고 --profile로 골라 씁니다. 예를 들어 "읽기만 하는 점검용" 프로필을 따로 두면 편합니다.
자주 보는 설정은 아래와 같습니다. 모델 이름은 집필 시점 기준입니다.
model = "gpt-6-sol" # 기본 모델
model_reasoning_effort = "medium" # 추론 강도
approval_policy = "on-request" # 언제 멈추고 묻는가
sandbox_mode = "workspace-write" # 무엇을 할 수 있는가
web_search = "cached" # 미리 색인한 검색 결과만 쓴다
[sandbox_workspace_write]
network_access = false # 작업 중 인터넷은 끈다
approval_policy와 sandbox_mode는 33단계에서 다룬 두 층입니다. 추론 강도는 모델이 지원하는 값 가운데서 고르고, 화면에는 Light(CLI에서는 Low), Medium, High, Extra High, Max, Ultra로 나옵니다. 강도를 높이면 더 오래 생각하는 대신 사용량을 더 씁니다. 웹 검색은 기본이 cached이고, 실시간 검색이 필요하면 "live"로 바꾸거나 실행할 때 --search를 붙입니다.
회사에서 여러 사람이 Codex를 쓴다면, 관리자가 requirements.toml로 승인 정책과 샌드박스를 강제할 수 있다는 것도 알아 두십시오. 예를 들어 전부 허용하는 설정을 아예 못 쓰게 막을 수 있습니다. 개인이 설정을 바꿨는데 적용되지 않는다면 이런 관리 설정 때문일 수 있습니다.
자주 쓰는 / 명령
Codex CLI 안에서 /를 치면 명령 목록이 나옵니다. 처음에는 아래 정도만 알면 충분합니다.
| 명령 | 하는 일 | 이럴 때 |
|---|---|---|
/status |
모델, 승인 정책, 쓰기 가능 폴더, 남은 맥락, 사용량 표시 | 지금 어떤 조건으로 돌고 있는지 모를 때 |
/permissions |
승인과 샌드박스 범위 바꾸기 | 읽기 전용과 Auto 사이를 오갈 때 |
/plan |
계획 모드로 전환(Shift+Tab으로도 됨) | 여러 파일에 걸친 일을 맡기기 전 |
/diff, /review |
바뀐 내용 보기, 작업 트리 리뷰 | 커밋하기 전 |
/compact, /new |
대화를 요약해 맥락 확보, 새 대화 시작 | 대화가 길어졌거나 주제가 바뀌었을 때 |
/skills, /plugins, /mcp, /hooks |
스킬, 플러그인, MCP 도구, 훅 확인 | 무엇이 켜져 있는지 볼 때 |
/import |
Claude Code 설정 가져오기 | Codex를 처음 들일 때 |
한 가지 주의할 점이 있습니다. 집필 시점의 CLI 명령 목록에는 되돌리기 명령 /undo가 없습니다. 되돌리기는 26단계에서 익힌 Git 커밋으로 합니다. 작업 전후로 커밋해 두는 습관이 Codex에서는 더 중요합니다. 데스크톱 앱의 리뷰 화면에서는 파일이나 변경 덩어리 단위로 되돌릴 수 있습니다.
스킬, 플러그인, MCP, 훅, 서브에이전트
Claude Code에서 익힌 장치들이 Codex에도 있습니다. 이름과 위치만 정리해 둡니다.
스킬. 특정 일을 하는 방법과 양식, 참고 자료를 묶은 꾸러미입니다. Codex에서는 $스킬이름으로 부르고, /skills로 목록을 봅니다. 새 스킬은 $skill-creator에게 만들어 달라고 하면 됩니다. 스킬은 ChatGPT와 Codex가 함께 쓰는데, ChatGPT에서는 @로 부릅니다.
플러그인. 스킬, MCP 서버, 훅 같은 것을 한 묶음으로 설치하는 단위입니다. CLI에서는 /plugins로 둘러봅니다. 웹, 데스크톱, 모바일, CLI에서 쓸 수 있지만 IDE 확장에서는 쓸 수 없습니다.
MCP. 64단계에서 자세히 다룰 연결 표준입니다. Codex에서는 터미널에서 codex mcp add <이름> -- <실행 명령>으로 붙이고, codex mcp list로 목록을 보고, 로그인이 필요한 서버는 codex mcp login <이름>으로 인증합니다. 설정 파일에서는 [mcp_servers.<이름>] 아래에 적고, 대화 중에는 /mcp로 확인합니다. 데스크톱 앱과 IDE에서는 설정 > MCP servers > Add server로 추가합니다. 셋 모두 같은 MCP 설정을 씁니다. 29단계의 원칙은 그대로입니다. 읽기만 하는 연결부터 시작하고, 누가 만든 서버인지, 회사가 허락한 것인지 먼저 확인합니다.
훅. 정해진 순간에 반드시 실행되는 명령입니다. Codex에서는 hooks.json이나 config.toml의 [hooks]에 적고, /hooks에서 보고, 승인하고, 끕니다. 도구를 쓰기 전과 후, 작업을 마칠 때, 세션을 시작할 때 같은 순간에 걸 수 있습니다.
서브에이전트. 일을 나눠 맡는 보조 에이전트입니다. 직접 정의한 에이전트는 ~/.codex/agents/나 프로젝트의 .codex/agents/ 폴더에 두고, /agent로 스레드를 오갑니다.
Claude Code 설정 가져오기와 codex exec
제3부에서 Claude Code에 쌓아 둔 설정을 처음부터 다시 만들 필요는 없습니다. Codex CLI에서 /import를 입력하면 Claude Code의 설정, 스킬, 플러그인, 프로젝트, 최근 대화를 가져옵니다. 데스크톱 앱은 Claude Cowork에서도 가져올 수 있습니다. 가져와도 Claude Code 쪽 설정은 바뀌지 않습니다. 다만 무엇이 넘어왔는지는 직접 확인하십시오. 가져온 뒤 /skills, /mcp, /hooks를 차례로 열어 보면 됩니다.
codex exec(줄여서 codex e)는 대화 없이 한 번 실행하고 끝나는 명령입니다. 74~76단계에서 다룰 자동화에 Codex를 붙일 때 쓰는 입구입니다. 가장 중요한 특징은 기본값이 읽기 전용 샌드박스라는 점입니다. 따로 허락하지 않으면 파일을 읽고 보고만 하고, 고치지는 못합니다. 고치게 하려면 --sandbox workspace-write를 붙여야 합니다. 자동으로 도는 일일수록 사람이 지켜보지 않으니, 읽기 전용에서 시작하는 편이 안전합니다.
codex exec -o 점검결과.md "AGENTS.md의 확인 절차대로 이 저장소를 점검하고, 문제만 목록으로 보고해 줘. 파일은 고치지 마."
-o는 최종 답을 파일로 남기는 옵션입니다. 이 밖에 진행 상황을 기계가 읽기 좋은 형식으로 내보내는 --json, 기록을 남기지 않는 --ephemeral, 지난 실행을 이어 가는 codex exec resume --last가 있습니다. 예전 안내에 나오는 --full-auto는 사용 중단 예정입니다.
GitHub Actions처럼 서버에서 돌리는 자동화에는 API 키 로그인을 권장합니다. 이때 키는 한 번 실행할 때만 넘기고, 저장소 코드를 실행하는 작업 전체에 키를 환경 변수로 깔아 두지 말라고 공식 문서가 경고합니다. GitHub용으로는 openai/codex-action@v1이라는 Action이 따로 있습니다. 정해진 시간마다 돌리는 예약 작업은 CLI에서는 만들 수 없고, ChatGPT 웹이나 데스크톱 앱의 Scheduled 화면에서 만듭니다.
현장 장면
33단계에서 오세린 차장은 CLAUDE.md의 규칙만 손으로 AGENTS.md에 옮겼습니다. 이번에는 나머지를 옮길 차례였습니다. /import를 실행하자 Claude Code에서 쓰던 설정과 "푸시 전 점검" 스킬을 가져왔다는 안내가 나왔습니다. 오 차장은 안내만 믿지 않고 /skills와 /hooks를 차례로 열었습니다. 스킬은 목록에 있었습니다. 29단계에서 만든 인증키 검사 훅은 가져오기 안내만으로는 켜졌는지 알 수 없어, /hooks에서 무엇을 검사하는지 읽어 보고 직접 확인했습니다. 오 차장은 메모에 적었습니다. "가져온 뒤에는 목록을 연다."
다음은 매주 금요일마다 하던 점검이었습니다. 비품 신청 페이지의 안내 문구에 지난 분기 날짜가 남아 있는지, 신청자가 부서명이 아닌 이름으로 나오는 곳이 없는지를 눈으로 훑는 일이었습니다. 오 차장은 이 점검을 codex exec 명령 하나로 만들고, 결과를 점검결과.md로 받게 했습니다. 첫 실행 결과에는 "2분기 신청 마감"이라는 문구가 두 곳 남아 있다는 보고가 있었습니다. 오 차장은 파일이 하나도 바뀌지 않았다는 것을 git status로 확인했습니다. 읽기 전용 기본값이 제대로 지켜진 것입니다. 문구는 평소처럼 Local에서 고치고 커밋했습니다.
욕심도 났습니다. 분기별 비품 예산표가 있는 문서 창고를 MCP로 연결하면 예산 잔액을 화면에 자동으로 띄울 수 있을 것 같았습니다. 하지만 그 문서 창고에 쓰기 권한까지 주는 연결인지 알 수 없었습니다. 오 차장은 그 생각을 "IT팀에 물어볼 것" 목록에 올려 두었습니다.
따라 하기
- Codex CLI에서
/status를 입력해 지금 모델, 승인 정책, 쓰기 가능 폴더를 확인합니다. 성공 기준: 세 가지를 메모에 옮겨 적었습니다. ~/.codex/config.toml을 열어(없으면 아래 첫 번째 프롬프트로 초안을 받아) 모델, 추론 강도, 승인 정책, 샌드박스가 무엇으로 되어 있는지 읽습니다. 바꿀 것이 있으면 하나만 바꿉니다. 성공 기준: Codex를 다시 켠 뒤/status에 바꾼 값이 보입니다./import로 Claude Code 설정을 가져온 뒤,/skills,/mcp,/hooks를 차례로 엽니다. 성공 기준: 넘어온 것과 넘어오지 않은 것을 목록으로 적었습니다.- 되풀이하는 점검 하나를 정해 아래 두 번째 프롬프트를
codex exec -o 점검결과.md "..."형태로 실행합니다. 성공 기준:점검결과.md에 보고가 남고,git status에 바뀐 파일이 없습니다. - 붙이고 싶은 MCP 서버가 있다면 이름, 만든 곳, 읽기·쓰기 여부를 적고, 허락을 받기 전에는 연결하지 않습니다. 성공 기준: "다음에 붙일 것" 목록에 올라가 있습니다.
복사해 쓰는 프롬프트
내 Codex 설정을 정리하고 싶어. ~/.codex/config.toml은 아직 고치지 말고 먼저 설명만 해 줘.
1. 지금 설정된 모델, 추론 강도, 승인 정책, 샌드박스, 웹 검색, 네트워크 접근이 각각 무엇인지
2. 나는 [주로 하는 일]에 Codex를 쓰는데, 이 일에 맞게 바꿀 만한 것이 있다면 이유와 함께 한두 가지
3. 바꿨다가 되돌리려면 어떻게 하는지
공식 문서에서 확인해야 할 부분은 따로 표시해 줘.
이 저장소를 점검해서 보고만 해 줘. 파일은 하나도 고치지 마.
1. [점검 항목 1, 예: 화면 문구에 지난 분기 날짜가 남아 있는 곳]
2. [점검 항목 2, 예: 이름 전체나 전화번호가 화면에 그대로 나오는 곳]
3. [점검 항목 3]
항목마다 있음·없음, 있으면 파일 이름과 위치를 적어 줘.
확인하지 못한 항목은 확인하지 못했다고 적어 줘.
막히면 이렇게
| 증상 | 원인 | 해결 |
|---|---|---|
| config.toml을 고쳤는데 반영되지 않습니다 | 실행 옵션, 프로젝트 설정, 관리 설정이 먼저 적용됩니다 | /status로 실제 값을 보고, 프로젝트의 .codex/config.toml과 회사 관리 설정이 있는지 확인합니다 |
codex exec가 파일을 고치지 않습니다 |
기본이 읽기 전용 샌드박스입니다 | 보고만 받는 용도라면 정상입니다. 고쳐야 한다면 --sandbox workspace-write를 붙이고 결과를 직접 확인합니다 |
/import 뒤에 스킬이나 훅이 안 보입니다 |
가져온 항목과 켜진 항목이 다를 수 있습니다 | /skills, /hooks에서 직접 확인하고, 훅은 승인해야 켜지는지 봅니다 |
| IDE에서 플러그인 메뉴가 없습니다 | 플러그인은 IDE 확장에서 지원하지 않습니다 | CLI의 /plugins나 데스크톱 앱에서 설치합니다 |
되돌리려는데 /undo가 없습니다 |
집필 시점 CLI에는 되돌리기 명령이 없습니다 | Git 커밋으로 되돌립니다. 작업 전후 커밋을 습관으로 둡니다 |
스스로 점검
- ☐
/status와 config.toml을 보고 지금 Codex가 어떤 조건으로 도는지 말할 수 있습니까? - ☐
/import로 가져온 뒤 넘어온 것과 넘어오지 않은 것을 직접 확인했습니까? - ☐
codex exec가 기본으로 읽기 전용이라는 것을 알고, 보고만 받는 점검 하나를 돌려 봤습니까?
점검 해설 보기
/status에 나온 모델, 승인 정책, 쓰기 가능 폴더를 config.toml의 설정과 이어서 설명할 수 있으면 통과입니다. 설정을 바꿨는데 반영되지 않았다면 프로젝트의.codex/config.toml이나 회사 관리 설정이 먼저 적용되는지 확인합니다. 「config.toml: 매번 고르던 것을 적어 두는 곳」의 우선순위 설명을 다시 읽어 봅니다./import뒤에/skills,/mcp,/hooks를 열어 넘어온 것과 넘어오지 않은 것을 목록으로 적었으면 통과입니다. 가져오기 안내만 보고 끝냈다면 세 목록을 차례로 열어 확인합니다. 훅은 무엇을 검사하는지 읽어 본 뒤에 켭니다.codex exec -o형태로 점검을 돌려 결과 파일이 생기고,git status에 바뀐 파일이 없으면 통과입니다. 파일이 바뀌었다면--sandbox workspace-write같은 옵션을 붙였는지 확인하고, 그 변경은 Git으로 되돌립니다. 자동으로 도는 일은 읽기 전용에서 시작한다는 원칙을 「Claude Code 설정 가져오기와codex exec」에서 다시 봅니다.
기억할 것
- 매번 고르던 것은 config.toml에, 되풀이하는 일은 스킬에 적어 둡니다. 바꾼 뒤에는
/status로 확인합니다. - 가져오기는 편하지만, 무엇이 넘어왔는지는 목록을 열어 직접 봅니다.
- 자동으로 도는 일은 읽기 전용에서 시작합니다. 고치는 권한은 사람이 결과를 확인할 수 있을 때만 줍니다.