목차
- OpenAI Codex CLI는 어떻게 설치하나
- v0.129.0에서 OpenAI Codex 정식 출시 변경사항 핵심은 뭔가
- Hooks 시스템이 뭐고 왜 쓰나
- 보안 업데이트는 어떤 게 있나
- IDE 통합은 어떤 식으로 동작하나
- 플러그인 관리는 어떻게 달라졌나
- 실험적 Goals 기능은 뭔가
- OpenAI Codex 정식 출시 이후 추가로 살펴볼 것들
“OpenAI Codex 정식 출시 변경사항이 대체 뭐가 달라진 건가?” — Codex CLI를 이미 쓰고 있든, 이제 막 설치하려는 중이든 이 질문부터 떠오르는 경우가 많다. v0.129.0 릴리스(2026-05-07 기준)는 774번째 릴리스이고 main 브랜치에 6,301개 커밋이 쌓인 시점의 결과물이다. TUI Vim 모드, Hooks 강화, 보안 샌드박스 패치, 실험적 Goals 기능까지 한꺼번에 들어왔기 때문에 어디서부터 봐야 할지 모호한 것이 당연하다.
이 글은 풀스택 개발자 관점에서 자주 받는 질문을 골라 하나씩 답하는 형식으로 구성했다. OpenAI Codex 정식 출시 변경사항 전체를 훑되, 각 항목을 “왜 필요한가 → 뭐가 바뀌었나 → 어떻게 쓰나” 순서로 짧게 끊어 설명하는 방식이다.
OpenAI Codex CLI는 어떻게 설치하나
가장 먼저 오는 질문이 설치다. Codex CLI는 OpenAI가 “a coding agent from OpenAI that runs locally on your computer”로 설명하는 로컬 실행형 코딩 에이전트이며, 설치 방법은 두 가지가 있다.
npm install -g @openai/codex
npm 외에 macOS 사용자라면 Homebrew Cask로도 설치할 수 있다.
brew install --cask codex
인증은 ChatGPT 계정 로그인 또는 API 키 방식을 지원한다. 팀 단위로 API 키를 환경변수에 넣어두는 경우가 많은데, 개인 프로젝트라면 ChatGPT 계정 로그인으로 API 키 발급 없이 바로 시작할 수 있다.
npm과 Homebrew 중 어떤 걸 선택해야 하나
| 기준 | npm (@openai/codex) | Homebrew Cask |
|---|---|---|
| 플랫폼 | macOS, Linux, Windows(WSL) | macOS 전용 |
| 업데이트 | npm update -g @openai/codex | brew upgrade --cask codex |
| Node.js 필요 여부 | 필요 | 불필요 |
| 바이너리 동봉 여부 | JS 런타임 기반 | 네이티브 바이너리 포함 |
Node.js가 이미 깔려 있는 환경이라면 npm이 자연스럽고, Node.js 없이 깔끔하게 쓰려면 Homebrew Cask가 낫다. Linux x86_64 또는 aarch64 환경에서는 Codex CLI GitHub 릴리스 페이지에서 바이너리를 직접 받는 방법도 있다.
# Apple Silicon
tar xzf codex-aarch64-apple-darwin.tar.gz
# Linux x86_64
tar xzf codex-x86_64-unknown-linux-musl.tar.gz
GitHub Actions나 Jenkins 파이프라인에서 Codex CLI를 쓰려면 npm global install보다 바이너리 직접 다운로드가 캐시 히트율 면에서 유리하다. tar.gz 파일을 캐시 키로 잡아두면 매 빌드마다 npm registry를 찌를 필요가 없어진다.
v0.129.0(2026-05-07)은 기능 추가와 버그 수정이 동시에 대량으로 들어온 릴리스다. 크게 네 갈래로 나뉜다.
첫째, TUI Vim 편집 모드가 추가되었다. /vim 명령을 입력하면 터미널 UI 안에서 Vim 키바인딩으로 프롬프트를 편집할 수 있게 되는 것이다. Vim 사용자에게는 기존 readline 기반 입력이 불편했는데, 이 부분이 해소된 셈이다.
둘째, 워크플로 개선 항목이 여러 개 묶여 있다. resume/fork picker가 재설계되었고, raw scrollback 지원, /ide context 명령, workspace-aware /diff 기능이 들어왔다. 특히 /diff가 워크스페이스를 인식하게 되면서 모노레포 환경에서 특정 패키지의 변경분만 볼 수 있게 된 점은 실무에서 체감이 큰 편이다.
셋째, 플러그인 관리 체계가 정비되었다. 워크스페이스 단위 공유, 접근 제어, 마켓플레이스 업그레이드, 원격 번들 동기화가 v0.129.0에서 한꺼번에 들어왔다. 팀 전체가 동일한 플러그인 세트를 쓰도록 강제하는 것이 가능해졌다는 의미다.
넷째, 실험적 Goals 기능이다. 디스커버리, 일시정지 지속성, 검증 개선이 포함되어 있지만 “실험적”이라는 꼬리표가 붙어 있으므로 프로덕션 워크플로에 바로 넣기보다는 개인 프로젝트에서 먼저 시험해보는 것을 권장한다.
Codex CLI는 2026-05-09 기준 총 774개 릴리스, main 브랜치 6,301개 커밋이 쌓여 있다. 릴리스 주기가 상당히 빠르므로 npm update -g @openai/codex 또는 GitHub Release 알림을 주기적으로 확인하는 것이 좋다.
Hooks 시스템이 뭐고 왜 쓰나
“Codex CLI에 Hooks가 왜 필요한가?”라는 질문을 자주 받는다. 답은 간단한데, 에이전트가 코드를 수정하기 전후에 사용자 정의 로직을 끼워넣을 수 있어야 자동화 파이프라인이 완성되기 때문이다.
v0.129.0에서 Hooks 시스템이 대폭 강화되었다. 구체적으로 세 가지 변경이 핵심이다.
/hooks 브라우저
터미널에서 /hooks 명령을 치면 현재 등록된 훅 목록을 브라우저 형태로 탐색할 수 있게 된다. 기존에는 설정 파일을 직접 열어야 했는데, TUI 안에서 확인·토글이 가능해진 것이다.
pre/post-compaction 실행
컨텍스트 윈도우가 꽉 찼을 때 Codex CLI는 compaction(요약 압축)을 수행한다. 이 compaction 전후로 훅을 걸 수 있게 되었다. compaction 직전에 현재 컨텍스트를 파일로 덤프해두거나, compaction 직후에 요약 품질을 검증하는 스크립트를 붙이는 식의 활용이 가능해진 셈이다.
PreToolUse context 지원
에이전트가 도구(파일 읽기, 셸 명령 실행 등)를 호출하기 직전에 어떤 도구를 어떤 인자로 부르는지 컨텍스트가 훅에 전달된다. PreToolUse context에서 도구명과 인자를 미리 확인해 rm -rf / 같은 위험 명령을 사전 차단하는 가드레일을 구축할 수 있다. bash 훅 스크립트라면 TOOL_NAME 환경변수를 읽고 shell 계열 도구일 때 인자 문자열을 검사해 금지 패턴이 있으면 non-zero exit code를 돌려주는 구조가 일반적이다. Codex CLI는 훅의 exit code가 0이 아닌 경우 해당 도구 호출을 중단한다.
v0.129.0에서 MCP 및 hook의 출력 크기 제한이 수정 적용되었다. 이전 버전에서는 hook이 대용량 stdout을 뱉으면 메모리가 무한 증가하는 문제가 있었는데, 이제 bounds가 걸린다. 기존에 hook output을 무제한으로 쓰던 경우 출력이 잘릴 수 있으므로 확인이 필요하다.
보안 업데이트는 어떤 게 있나
보안은 로컬 에이전트를 쓸 때 가장 민감한 영역이다. Codex CLI는 샌드박스 안에서 코드를 실행하는 구조인데, v0.129.0에서 이 샌드박스 계층에 중요한 보안 패치가 들어왔다.
Bubblewrap이 0.11.2로 업데이트되었다. Bubblewrap(bwrap)은 Linux에서 네임스페이스 기반 샌드박싱을 제공하는 도구이며, Codex CLI가 에이전트 실행 환경을 격리하는 데 핵심적으로 사용하는 컴포넌트다. 이전 버전의 bwrap과 호환성 문제가 있었는데, 이번 업데이트에서 해결되었다. 추가로 standalone bwrap fallback이 도입되어 시스템에 설치된 bwrap 버전이 오래되었을 때 Codex CLI가 자체 번들된 bwrap을 대신 사용하게 된다.
Windows 환경도 마찬가지로 패치가 적용되었다. named pipes, ConPTY teardown, PowerShell exec policy wrapping 세 가지 문제가 수정된 것이 핵심이다.
| 플랫폼 | 수정 항목 | 영향 |
|---|---|---|
| Linux | Bubblewrap 0.11.2 업데이트 | 구버전 bwrap 호환성 해결 |
| Linux | standalone bwrap fallback | 시스템 bwrap 없어도 동작 |
| Windows | named pipes 수정 | 프로세스 간 통신 안정화 |
| Windows | ConPTY teardown 수정 | 터미널 세션 정리 안정화 |
| Windows | PowerShell exec policy wrapping | 실행 정책 우회 문제 해결 |
기존에 시스템 bwrap에 의존하던 환경이라면 v0.129.0 업데이트 후 Codex CLI가 standalone fallback을 쓰는지 시스템 bwrap을 쓰는지 확인할 필요가 있다. `codex –version`으로 버전을 확인하고, sandbox 관련 로그를 점검하는 것이 바람직하다.
IDE 통합은 어떤 식으로 동작하나
“터미널에서만 쓰는 건가, IDE에서도 되나?” — 이 질문도 빠지지 않는다. Codex CLI는 VS Code, Cursor, Windsurf 등 주요 IDE와 통합을 지원한다. codex app 명령을 실행하면 데스크톱 앱 형태로도 뜨기 때문에 터미널을 선호하지 않는 경우에도 사용 가능하다.
터미널 vs IDE vs 데스크톱 앱
| 사용 방식 | 실행 방법 | 장점 | 단점 |
|---|---|---|---|
| 터미널 CLI | codex 명령 직접 실행 | 가장 빠름, 스크립트 연동 용이 | GUI 없음 |
| IDE 통합 | VS Code/Cursor/Windsurf 확장 | 에디터 컨텍스트 자동 전달 | IDE별 설정 필요 |
| 데스크톱 앱 | codex app | 독립 UI, 비개발자도 접근 가능 | 터미널 대비 기능 제한 |
풀스택 개발자 입장에서는 터미널 CLI를 기본으로 쓰되, 프론트엔드 작업 시에는 IDE 통합이 편리한 경우가 많다. Codex CLI GitHub 저장소에서 IDE별 설정 가이드를 확인할 수 있다.
v0.129.0에서 추가된 /ide context 명령은 IDE 통합 환경에서 현재 열린 파일, 커서 위치, 선택 영역 같은 정보를 Codex 에이전트에 전달하는 기능이다. 이전에는 에이전트가 프로젝트 전체를 스캔해야 맥락을 파악했는데, /ide context를 쓰면 “지금 내가 보고 있는 이 파일의 이 부분”이라는 정보가 바로 넘어간다.
모노레포에서 `codex /diff`를 실행하면 워크스페이스 단위로 변경분을 보여준다. `packages/api`에서 실행하면 해당 패키지의 diff만 나오는 식이다. 전체 리포 diff를 보려면 루트에서 실행하면 되는 구조로, 대규모 모노레포에서 변경 범위를 패키지 단위로 좁혀 diff 노이즈가 줄어든다.
v0.129.0 이전에도 플러그인은 존재했지만, 팀 단위 관리가 번거로웠다. 이번 릴리스에서 플러그인 관리 체계가 네 가지 측면에서 개선되었다.
워크스페이스 공유가 가능해졌다. 플러그인 설정을 리포지토리에 커밋해두면 팀원 전체가 동일한 플러그인 세트를 자동으로 받게 되는 구조다. 기존에는 각자 수동으로 플러그인을 설치해야 했다.
접근 제어가 추가되었다. 특정 플러그인이 파일 시스템이나 네트워크에 접근하는 범위를 제한할 수 있게 된 것이다. 보안 민감한 프로젝트에서 서드파티 플러그인의 권한을 최소화하는 데 유용하다.
마켓플레이스 업그레이드로 플러그인 검색과 설치 경험이 개선되었다. 그리고 원격 번들 동기화가 추가되어 로컬에 설치된 플러그인 버전과 원격 레지스트리 버전을 자동으로 맞춰주는 기능이 생겼다.
플러그인과 Hooks의 차이
혼동하기 쉬운 부분이므로 정리하면 이렇다.
| 구분 | Hooks | 플러그인 |
|---|---|---|
| 실행 시점 | 특정 이벤트(pre/post) 트리거 | 에이전트 세션 전체에 상주 |
| 목적 | 가드레일, 로깅, 사전 검증 | 기능 확장 (새 도구, 새 컨텍스트) |
| 관리 단위 | 설정 파일 기반 | 마켓플레이스 + 워크스페이스 공유 |
| 출력 제한 | v0.129.0에서 bounds 적용 | 플러그인 자체 API 제한 |
Hooks는 “에이전트가 뭔가 하기 전후에 내 스크립트를 끼워넣는 것”이고, 플러그인은 “에이전트에게 새로운 능력을 부여하는 것”으로 이해하면 된다.
실험적 Goals 기능은 뭔가
Goals는 v0.129.0에서 “실험적” 태그로 들어온 기능이다. Codex CLI에 단순 프롬프트가 아니라 **목표(Goal)**를 설정하면, 에이전트가 그 목표를 달성하기 위한 계획을 수립하고 단계별로 실행하는 구조다.
이번 릴리스에 포함된 Goals 관련 변경은 세 가지다.
디스커버리: 프로젝트 구조를 자동으로 파악해서 목표 달성에 필요한 파일과 의존성을 식별하는 단계가 추가되었다. 기존에는 사용자가 관련 파일을 명시적으로 지정해야 했는데 이 부분이 자동화된 것이다.
일시정지 지속성: Goal 실행 중 일시정지했다가 나중에 이어서 진행할 수 있게 되었다. 장시간 리팩토링 같은 작업에서 중간에 다른 일을 하고 돌아와도 컨텍스트가 보존되는 셈이다.
검증 개선: Goal 완료 후 결과물이 목표에 부합하는지 자동 검증하는 로직이 개선되었다. 테스트 실행, 린트 체크 같은 검증 단계가 포함된다.
Goals 기능은 v0.129.0 기준으로 “실험적”이라는 태그가 명시되어 있다. API 인터페이스가 향후 릴리스에서 변경될 수 있으므로, CI/CD 파이프라인에 Goals를 직접 연동하는 것은 아직 이른 편이다. 로컬 개발 환경에서 시험해보고 안정화된 뒤에 도입하는 것이 적절하다.
OpenAI Codex 정식 출시 이후 추가로 살펴볼 것들
아직 공식 문서에서 확인되지 않는 영역
OpenAI Codex 정식 출시 변경사항을 조사하다 보면 공식 문서에서 접근이 안 되는 영역이 있다. 솔직하게 정리하면 다음과 같다.
GPT-5-Codex, codex-mini-latest 같은 API 모델 스펙은 platform.openai.com 공식 모델 문서가 403으로 접근 불가하여 확인하지 못한 상태다. 모델별 토큰 한도, 컨텍스트 윈도우 크기, 지원 언어 목록 같은 세부 사항은 공식 문서에 명시되어 있지 않다.
모델별 정식 출시 노트 역시 help.openai.com이 403으로 막혀 있어 수집이 불가능했다. GPT-5.3-Codex에서 GPT-5.4 통합 모델로의 전환에 대한 공식 마이그레이션 가이드도 현재 확인할 수 없는 상태다.
Codex 웹(클라우드) 버전의 GA 발표 — Slack 통합, SDK, 서브에이전트 등 — 에 대한 정보와 Codex API 가격 정책 상세도 공식 문서에서 접근이 제한되어 있다.
이런 gap이 존재하므로, API 모델 스펙이나 가격이 중요한 의사결정 요소라면 OpenAI 공식 채널(developers.openai.com)을 직접 확인하는 것이 필요하다. 이 글에서 다루는 내용은 Codex CLI GitHub 릴리스 노트에서 확인된 CLI 측 변경사항에 한정된다.
OpenAI Codex CLI 설치가 끝나고 v0.129.0의 변경사항을 파악했다면, 다음으로 살펴볼 만한 영역이 몇 가지 있다.
Codex 플러그인을 직접 만들어보는 것이 하나다. 마켓플레이스에 올라온 플러그인만으로는 프로젝트 특성에 맞는 도구를 구성하기 어려운 경우가 있고, 워크스페이스 공유 기능이 들어온 만큼 팀 전용 플러그인을 만들어 배포하는 흐름이 자연스러워졌다.
Codex와 다른 코딩 에이전트(Claude Code 등)를 비교해보는 것도 의미 있는 작업이다. 에이전트마다 샌드박스 구현 방식, 컨텍스트 관리 전략, 도구 호출 체계가 다르기 때문에 프로젝트 성격에 따라 적합한 도구가 달라진다.
OpenAI Codex SDK를 활용한 자동화 파이프라인 구축도 다음 단계로 고려할 수 있다. CLI 수준을 넘어서 SDK를 통해 프로그래밍 방식으로 에이전트를 제어하면 배포 자동화, 코드 리뷰 자동화 같은 워크플로를 구성할 수 있게 된다. OpenAI Codex 정식 출시 변경사항은 CLI 측면에서는 v0.129.0이 현재 기준점이고, 모델과 API 측면의 변경사항은 공식 문서가 공개되는 시점에 별도로 확인이 필요하다.