OpenAI Codex CLI 0.130.0의 Vim 모드와 플러그인·Chrome 확장 구조
Codex CLI 0.130.0의 Vim 편집, 플러그인 원격 동기화, 샌드박스 권한 모델과 Chrome 브라우저 에이전트 구조를 분석한다.
2026-08-14 · 최초 발행 2026-05-24
터미널을 넘어 확장 생태계로
OpenAI Codex CLI는 0.129.0부터 0.130.0까지 이어진 업데이트에서 터미널 Vim 편집 모드, 새로 설계한 재개·분기 피커, 플러그인 원격 동기화와 /hooks 브라우저를 추가했다. Codex Chrome 확장도 정식 출시되면서, 사용자가 이미 로그인한 Chrome의 인증 상태를 활용하는 브라우저 기반 에이전트 작업이 가능해졌다.
변화의 범위는 입력창 편의 기능에 머물지 않는다. CLI 밖의 플러그인을 어떻게 연결하고 격리하는지, 브라우저 세션을 어떤 경로로 에이전트에 제공하는지까지 하나의 생태계 설계로 이어진다.
JSON-RPC로 CLI와 플러그인을 분리한다
Codex CLI 0.130.0의 플러그인 시스템은 JSON-RPC 2.0을 공통 인터페이스로 삼는다. 플러그인은 CLI 코어와 분리된 프로세스에서 실행되고, 표준 입력과 표준 출력인 stdin/stdout을 통해 요청과 응답을 주고받는다.
플러그인 구현 언어는 이 통신 경계에 종속되지 않는다. Node.js, Python, Rust처럼 서로 다른 언어로 작성해도 같은 인터페이스를 통해 CLI에 연결할 수 있다.
원격 동기화는 플러그인 레지스트리 서버와 로컬 CLI의 상태를 맞추는 역할을 한다. 데스크톱, 노트북, 원격 서버를 오가며 Codex CLI를 사용하는 경우에도 레지스트리를 통해 플러그인 설치 상태와 설정이 자동으로 동기화된다.
버전 체계에는 시맨틱 버저닝(SemVer)을 적용한다. 플러그인은 engines 필드로 CLI 코어 API와의 호환성을 선언한다. 마이너 버전 업데이트는 하위 호환성을 보장하며, 메이저 버전 업데이트는 사용자의 명시적 동의를 받은 뒤 설치된다.
플러그인 권한을 호스트와 분리하는 방법
외부 플러그인을 실행하려면 확장성만큼 권한 경계가 분명해야 한다. Codex의 모델은 최소 권한 원칙에 따라 플러그인이 필요한 권한을 설치 시점에 선언하고, 사용자가 검토하고 승인한 뒤 활성화하는 방식이다.
권한은 파일시스템 읽기·쓰기·실행, 허용 도메인 화이트리스트를 통한 네트워크 접근, 쉘 명령 실행, 환경 변수 접근의 네 범주로 나뉜다.
격리 수단은 운영체제에 맞춰 달라진다. macOS에서는 App Sandbox와 Seatbelt 프로파일을 사용하고, Linux에서는 seccomp 필터와 네임스페이스 격리를 적용한다. Windows에서는 Job Object와 AppContainer가 같은 역할을 맡는다. 플러그인 프로세스를 여러 층으로 제한해 악성 플러그인이 호스트에 미칠 수 있는 피해 범위를 줄이는 구조다.
Chrome과 CLI 사이의 메시지 경로
Codex Chrome 확장은 CLI와 브라우저 사이에서 양방향 메시지를 전달한다. 내부 구조는 Background Service Worker, Content Script, DevTools Panel로 나뉜다.
Background Service Worker는 로컬 Codex CLI 프로세스와 WebSocket으로 연결되어 명령과 결과를 중계한다. Content Script는 현재 페이지의 DOM에 접근해 요소 조작, 폼 입력, 텍스트 추출을 담당한다. DevTools Panel에서는 에이전트가 수행하는 작업의 상태와 실행 로그를 실시간으로 확인할 수 있다.
이 브릿지는 Origin 검증과 메시지 서명으로 보호된다. CLI와 확장 사이의 WebSocket은 localhost 루프백 인터페이스에만 바인딩해 외부 네트워크의 접근을 차단한다. 각 메시지에는 세션별 HMAC 서명이 포함되며, 이를 통해 중간자 공격(MITM)을 방지한다.
로그인 상태는 활용하고 자격증명은 노출하지 않는다
Chrome 확장을 사용하면 Jira, GitHub, Notion처럼 브라우저에서 이미 로그인한 서비스에 별도 자격증명을 제공하지 않고도 에이전트 작업을 연결할 수 있다. 에이전트가 활용하는 것은 인증된 세션 컨텍스트다.
쿠키나 토큰 값 자체를 에이전트에 공개하는 방식은 아니다. 허용된 DOM 조작과 네트워크 요청만 인증된 세션 안에서 실행하며, 가능한 작업 유형도 허용 목록으로 제한한다. 결제나 계정 설정 변경 같은 민감 작업은 사용자가 명시적으로 확인해야 실행된다.
긴 프롬프트와 세션을 다루는 터미널 UX
Vim 키바인딩에 익숙한 개발자는 Codex CLI 입력창에서도 같은 편집 감각을 이어갈 수 있다. 기본 편집 모드에서 : 명령으로 Vim 모드를 전환하면 텍스트 오브젝트 선택, 모션 명령, 매크로 실행 같은 핵심 편집 기능을 사용할 수 있다. 긴 프롬프트를 반복해서 수정할 때 특히 유용한 변화다.
재개·분기 피커(Resume/Branch Picker)도 세션 ID를 직접 입력하던 방식에서 대화형 목록으로 바뀌었다. 퍼지 검색으로 이전 세션을 찾을 수 있고, 대화의 특정 시점 상태를 분기점으로 삼아 새 세션을 시작할 수도 있다.
/hooks 브라우저는 pre-tool, post-tool, on-error 같은 훅을 CLI 안에서 시각적으로 탐색하고 시험하는 도구다. 커스텀 훅을 개발하면서 즉시 실행하고 출력을 확인할 수 있어 수정과 검증의 반복 주기를 줄인다.
Codex와 Claude Code가 확장 범위를 잡는 방식
Claude Code CLI와 Codex CLI는 강조점이 다르다. Claude Code는 에이전트 오케스트레이션과 멀티 에이전트 세션 관리에 강점을 두고, Codex CLI는 터미널 UX와 플러그인 생태계의 확장성에 무게를 싣는다.
Chrome 확장은 이 차이를 브라우저 작업까지 넓힌다. Codex 에이전트는 Linear, Jira, Asana 같은 웹 프로젝트 관리 도구에서 이슈를 만들거나 수정할 수 있고, GitHub 웹 UI를 통해 PR 리뷰 코멘트를 직접 게시할 수도 있다.
Claude Code가 API 기반 통합에 의존하는 데 비해, Codex의 브라우저 에이전트는 API를 제공하지 않는 레거시 웹 도구와도 상호작용할 수 있다. Vim 모드와 세션 피커가 터미널 안의 작업 흐름을 다듬는다면, JSON-RPC 플러그인과 Chrome 메시지 브릿지는 CLI가 도달할 수 있는 작업 영역 자체를 넓힌다. Codex CLI 0.130.0의 방향은 Claude Code와 구별되는 생태계 전략이며, 두 도구의 경쟁은 AI 코딩 CLI 분야의 혁신 속도를 높이고 있다.