핵심 요약
OpenAI Codex CLI는 2025~2026년에 걸쳐 TypeScript 구현에서 Rust 네이티브 바이너리로 전환됐으며, 현재 유지보수되는 기본 CLI는 Rust 빌드다(〈GitHub openai/codex〉, 〈June 2025 Status Update〉). Homebrew brew install codex도 Rust CLI를 기본 설치한다(〈GitHub Discussion #1405〉 2025-07-01). 설정은 레거시 JSON에서 ~/.codex/config.toml 로 바뀌었고, MCP 서버 연동·parallel tool calls·샌드박스 모드(sandbox, workspace-write, danger-full-access 등)가 Rust 전용 기능으로 확장됐다. 팀이 예전 npm 기반 가이드를 그대로 쓰면 설정 미적용·샌드박스 정책 누락이 발생할 수 있어, 2026년 6월 기준으로 설정 파일·설치 경로를 재점검할 시점이다.
무슨 일이 있었나
Rust Cutover 배경
OpenAI maintainer bolinfest는 2025년 6월 GitHub Discussion에서 Rust CLI Cutover 계획을 공개했고, 2025년 7월 1일 Homebrew formula가 Rust CLI(codex-cli 0.2.0+) 를 기본으로 설치하도록 병합됐다고 밝혔다(〈GitHub Discussion #1405〉).
Rust 구현의 공식 README(〈openai/codex codex-rs〉)는 Codex CLI를 standalone native executable로 제공해 zero-dependency install을 목표로 한다고 설명한다. 주요 crate는 core(비즈니스 로직), exec(헤드less CLI), tui(Ratatui 풀스크린 UI), cli(서브커맨드 통합)로 나뉜다.
설정·기능 변화 요약
| 항목 | 레거시 TypeScript CLI | Rust CLI (현재) |
|------|----------------------|-----------------|
| 설정 파일 | JSON 계열 | config.toml |
| 설치 | npm 등 Node 의존 | 단일 바이너리, Homebrew/GitHub Releases |
| MCP | 제한적 | codex mcp add/list, parallel tool calls |
| 비대화형 실행 | 제한 | codex exec PROMPT |
| 샌드박스 | 기본적 | 모드별 파일·네트워크 경계 |
Augment Code(2026) 분석에 따르면 MCP parallel tool calls 지원으로 동일 시나리오 월 시간 58초→31초 수준 개선 사례가 보고됐다(환경·프롬프트에 따라 상이).
실무 설정 가이드
1. 설치 확인
`bash
codex --version
which codex
`
Homebrew 사용 시 brew info codex로 0.2.0 이상(Rust) 인지 확인한다. Node/npm 구버전이 PATH 앞에 있으면 레거시 바이너리를 실행할 수 있다.
2. config.toml 골격
Digital Applied(2026) 플레이북 기준, 팀 공통 설정 예시는 다음과 같다.
`toml
# ~/.codex/config.toml (예시 — 환경에 맞게 수정)
model = "gpt-5.3-codex" # 공식 문서·릴리스 노트에서 최신 모델명 재확인
[profiles.default]
sandbox = "workspace-write"
# MCP 서버는 codex mcp add 로 등록 후 config에 반영
`
프로필([profiles.NAME]) 로 프로젝트·고객별 모델·샌드박스를 분리하면, 실수로 danger-full-access를 기본값으로 두는 사고를 줄일 수 있다.
3. MCP 등록
`bash
codex mcp add my-server --url http://localhost:8080/mcp
codex mcp list
`
MCP 서버가 parallel tool calls를 지원하는지 README·플래그를 확인한다. 미지원 시에도 동작하지만 지연 시간이 늘 수 있다.
4. CI·자동화
헤드less 파이프라인에서는:
`bash
codex exec "Run tests and summarize failures" < ./context.txt
`
RUST_LOG=info로 내부 동작 로그를 켤 수 있다(〈codex-rs README〉). API 키는 OPENAI_API_KEY 등 환경 변수로 주입하고, 레포에 커밋하지 않는다.
5. 샌드박스 선택 기준
sandbox: 읽기·제한적 쓰기 — 일반 리팩터workspace-write: 워크스페이스 내 쓰기 — 로컬 개발 기본값 후보danger-full-access: 네트워크·파일 전면 — 좁은 범위·감사 로그 필수
고유 인사이트 — Rust CLI가 의미하는 '에이전트 OS' 층
Codex CLI Rust 전환은 단순 언어 교체가 아니라, 터미널 에이전트를 OS에 가까운 레이어로 두겠다는 신호다. 단일 바이너리·샌드박스·MCP·exec 서브커맨드는 IDE 플러그인과 달리 CI·서버·SSH 환경에 그대로 붙는다. 팀 표준을 정할 때 "개발자 노트북용 코파일럿"과 "파이프라인용 codex exec"를 같은 config.toml 프로필 체계로 묶으면, 로컬에서 검증한 샌드박스 정책을 배포 환경에 복제하기 쉽다 — 이게 TypeScript 시대에는 JSON·npm 버전 지옥으로 깨지기 쉬웠다.
체크포인트와 리스크
- 체크포인트
- 레거시 JSON 설정 잔존 여부 (
~/.codex/전체 목록) codex mcp listvs 실제 도구 호출 성공률- Homebrew/nix 버전 고정 (팀 전체 동일 빌드)
- ChatGPT 플랜 vs API 키 과금·한도 차이
- 리스크 요인
- 구 가이드대로 npm install 시 레거시 CLI 혼선
danger-full-access기본값 → 프로덕션 데이터 유출- MCP 서버 장애 시 조용한 도구 실패 (타임아웃·로그 설정 필요)
마무리
2026년 6월 현재 Codex CLI는 Rust = 정식, TypeScript = 레거시로 이해하는 것이 맞다. config.toml·MCP·샌드박스·codex exec 네 가지를 팀 runbook에 반영하면, Gemini/Antigravity·Claude Code 등 다른 터미널 에이전트와 병행할 때도 역할 분담(로컬 대화 vs CI 배치)이 명확해진다.
참고 자료
- June 2025 Status Update - openai/codex Discussion #1405 (2025-06-27, 2025-07-01)
- Codex CLI (Rust Implementation) - openai/codex codex-rs README
- OpenAI releases Codex CLI: what developers should know - Augment Code (2026)
- Codex CLI Rust Migration Playbook: Config Changes 2026 - Digital Applied (2026)
'개발이야기' 카테고리의 다른 글
| 에이전트 루프 비용 폭주…토큰 인플레이션을 막는 설계 패턴 (0) | 2026.06.26 |
|---|---|
| Gemini CLI 종료 후 Antigravity CLI — 개발자가 6월 18일 이후 확인할 것 (0) | 2026.06.25 |
| Gemini 3.5 Flash 'Computer Use' 내장 — 에이전트 개발자가 바꿔야 할 설계 (0) | 2026.06.25 |
| Node.js 24.18.0 'Krypton' LTS — 운영팀이 먼저 확인할 변경점 (0) | 2026.06.24 |
| Loop Engineering이란? Claude Code /goal·/loop로 바뀌는 AI 코딩 방식 (1) | 2026.06.23 |