Codex CLI의 실시간 스트리밍과 Windows 네이티브 지원: 터미널 에이전트의 크로스 플랫폼 설계

Codex CLI의 Realtime V2 스트리밍·JSONL 이벤트·Ratatui 기반 TUI와 PowerShell·Windows Sandbox·WSL2 세 가지 Windows 실행 환경 설계를 정리한다

2026-08-14 · 최초 발행 2026-05-11

OpenAI Codex CLI가 2026년 들어 실시간 에이전트 진행 스트리밍, 개선된 TUI, 풍부한 타입 선언 지원을 갖추며 터미널 AI 코딩 에이전트의 완성도를 크게 높였다. 여기에 더해 Codex 앱이 PowerShell과 Windows Sandbox를 통한 WSL 없는 Windows 네이티브 실행을 지원하면서, 크로스 플랫폼 AI 에이전트 실행 환경 설계의 새로운 기준을 제시하고 있다.

작업이 끝나기를 기다리지 않는 진행 스트리밍

Codex CLI의 2026년 최신 업데이트에서 가장 주목할 만한 변화는 Realtime V2 기반의 에이전트 진행 스트리밍이다. 기존에는 에이전트가 작업을 완료한 후에야 결과를 확인할 수 있었던 것과 달리, 이제는 작업이 진행되는 동안에도 실시간으로 상태를 확인할 수 있다.

Realtime V2는 백그라운드 에이전트의 진행 상황을 작업이 실행되는 동안 스트리밍하며, 활성 응답이 완료될 때까지 후속 응답을 큐에 대기시키는 방식으로 동작한다. 이를 통해 사용자는 에이전트가 어떤 단계에 있는지, 어떤 파일을 수정하고 있는지, 어떤 명령을 실행하고 있는지를 실시간으로 파악할 수 있다.

"OpenAI API""에이전트 루프""App Server""TUI 클라이언트""사용자""OpenAI API""에이전트 루프""App Server""TUI 클라이언트""사용자""작업 요청 입력""JSON-RPC over stdio""에이전트 루프 시작""모델 추론 요청""response.output_text.delta (스트리밍)""이벤트 emit""SSE / JSONL 스트리밍""(1) 실시간 진행 상황 렌더링""도구 호출·명령 실행""item.* 이벤트""청크 단위 전달""(2) 결과 업데이트 표시""turn.completed""완료 이벤트""(3) 최종 결과 렌더링"

비대화형 모드(non-interactive mode)에서 Codex는 stderr에 진행 상황을 스트리밍하고, stdout에는 최종 에이전트 메시지만 출력한다. --json 플래그를 활성화하면 stdout이 JSON Lines(JSONL) 스트림으로 전환되어 Codex가 실행 중에 내보내는 모든 이벤트를 캡처할 수 있다.

JSONL 이벤트 스트림에서 지원되는 주요 이벤트 타입은 다음과 같다.

이벤트 타입 설명
thread.started 새 에이전트 스레드 시작
turn.started 에이전트 턴 시작
turn.completed 에이전트 턴 완료
turn.failed 에이전트 턴 실패
item.agent_message 에이전트 메시지 항목
item.reasoning 추론 과정 항목
item.command_execution 명령 실행 항목
item.file_change 파일 변경 항목
item.mcp_tool_call MCP 도구 호출 항목
item.web_search 웹 검색 항목
item.plan_update 계획 업데이트 항목
error 오류 이벤트

이 구조를 통해 개발자는 에이전트의 모든 활동을 프로그래밍 방식으로 추적하고, 자체 모니터링 시스템이나 CI/CD 파이프라인과 통합할 수 있다.

에이전트 루프는 JSON 페이로드를 가진 이벤트 스트림을 소비하는 구조로 설계되어 있으며, 데이터 타입이 "response"로 시작하는 이벤트를 처리한다. response.output_text.delta와 같은 이벤트는 UI에서의 스트리밍을 지원하고, response.output_item.added와 같은 이벤트는 후속 API 호출에 대한 입력에 추가될 객체로 변환된다. exec-server가 프로세스 종료 이후에도 버퍼링된 출력을 유지하고 스트림 종료를 올바르게 대기하도록 개선된 것도 주목할 만한 변화다. 이전에는 프로세스가 종료된 후 버퍼에 남아 있던 출력이 유실되는 문제가 있었으나, 이제는 이 문제가 해결되었다.

Rust 위에서 서브 밀리초로 그려지는 TUI

Codex CLI의 TUI는 Rust 생태계의 Ratatui 프레임워크와 Crossterm을 기반으로 구현되어 있다. Ratatui는 즉시 모드 렌더링(immediate-mode rendering) 방식을 채택하여, 중간 버퍼를 사용해 모든 가시적 위젯을 처음부터 다시 그리는 방식으로 서브 밀리초 단위의 응답 속도를 달성한다. 주목할 만한 점은 Ratatui 프로젝트 자체가 OpenAI의 Codex 펀드의 일원이 되었다는 사실이다. 이는 OpenAI가 터미널 UI 생태계에 직접 투자하고 있음을 보여주는 상징적인 사례다.

이벤트 처리TUI 아키텍처App 컴포넌트 (전체 상태 관리)ChatWidget (대화 이력렌더링)InputWidget (다중행 입력)StatusWidget (상태 표시줄)ApprovalWidget (승인플로우)HookWidget (훅 활동 표시)키보드/마우스 이벤트AppEvent 변환Codex 코어 처리UI 업데이트 이벤트

Codex CLI TUI는 몇 가지 핵심 컴포넌트로 구성된다. 언어 모델과의 상호작용을 위한 대화 인터페이스는 대화 이력을 렌더링하고 다중행 텍스트 입력을 지원하며, 명령 실행 결과 표시는 에이전트가 실행한 명령의 결과를 실시간으로 표시하고 터미널 출력을 인라인으로 보여준다. 승인 플로우는 명령 실행 및 파일 변경에 대한 승인 인터페이스로 에이전트가 위험할 수 있는 작업을 수행하기 전에 사용자의 확인을 요청하며, 상태 표시 및 로깅은 에이전트의 현재 상태·실행 중인 작업·로그 메시지를 표시한다. Diff 시각화는 파일 변경 사항을 diff 형식으로 시각화해 에이전트가 수행하는 코드 수정 내용을 명확하게 보여준다.

2026년 최신 업데이트에서 훅 활동의 가시성이 크게 개선되었다. TUI에서 훅 활동이 더 쉽게 확인 가능하도록 재설계되었으며, 실행 중인 훅과 완료된 훅을 별도로 구분하여 표시한다. 완료된 훅의 출력은 유용한 경우에만 유지되어 화면이 불필요한 정보로 혼잡해지는 것을 방지한다. 커스텀 TUI 상태 표시줄에 스레드 제목(thread title)을 포함할 수 있게 되면서, 여러 에이전트 세션을 동시에 관리하는 경우에도 각 세션의 컨텍스트를 명확하게 파악할 수 있게 되었다.

현재 TUI는 에이전트 루프와 동일한 프로세스에서 Rust 코어 타입에 직접 접근하는 "네이티브" 클라이언트 방식으로 동작하고 있다. 그러나 Codex는 TUI를 App Server를 사용하는 방식으로 리팩터링할 계획이다. 이 변경이 완료되면 TUI는 다른 클라이언트와 동일하게 동작하게 된다. 즉, App Server 자식 프로세스를 시작하고, stdio를 통한 JSON-RPC로 통신하며, 동일한 스트리밍 이벤트와 승인 요청을 렌더링하는 구조가 된다. App Server를 통한 세션 관리도 강화되어, 이제 단일 세션에서 여러 환경을 관리하고 턴별로 환경과 작업 디렉토리를 선택할 수 있게 되었다. 이는 다중 워크스페이스 설정과 원격 실행 환경에서 특히 유용하다.

WSL 없이도 Windows에서 안전하게 실행하기

Codex CLI의 Windows 지원은 단순히 "Windows에서도 실행된다"는 수준을 넘어, 세 가지 근본적으로 다른 실행 환경 모드를 제공한다.

네이티브제한된 환경Linux 호환전용 저권한 사용자파일시스템 권한 경계방화벽 규칙기업 제한 환경폴백 모드Linux 등급 격리기존 도구 호환Windows 환경PowerShell (권한 상승샌드박스)PowerShell (비권한 샌드박스)WSL2 (Landlock/seccomp)격리된 실행

권한 상승 네이티브 PowerShell 샌드박스는 가장 강력한 Windows 네이티브 격리를 제공하는 선호 모드다. 전용 저권한 샌드박스 사용자, 파일시스템 권한 경계, 방화벽 규칙, 샌드박스 내 명령 실행에 필요한 로컬 정책 변경 등을 통해 격리를 구현한다. 비권한 네이티브 PowerShell 샌드박스는 관리자 권한을 부여받기 어려운 기업 환경에서의 폴백 모드다. 완전한 격리는 아니지만, 제한된 환경에서도 기본적인 보안을 유지한다. WSL2 실행 환경은 Windows 내에서 Linux 등급의 Landlock/seccomp 격리를 제공하는 모드로, Linux 특화 도구를 활용해야 하는 경우에 적합하다.

Windows 네이티브 모드에서 에이전트는 Windows 샌드박스를 사용하여 작업 폴더 외부의 파일시스템 쓰기를 차단하고, 명시적인 승인 없이는 네트워크 접근을 방지한다. 이는 macOS의 seatbelt와 Linux의 Landlock/seccomp에 대응하는 Windows 고유의 격리 메커니즘이다. Codex의 Windows 샌드박스는 OS 수준에서 구현되어 있으며, 오픈소스로 공개되어 구성이 가능하다. 이를 통해 조직의 보안 정책에 맞게 샌드박스 동작을 커스터마이징할 수 있다.

Windows 샌드박스 환경에서의 파일 시스템 접근은 세션 단위로 관리된다. 샌드박스가 특정 디렉토리를 읽을 수 없어 명령이 실패하는 경우, 절대 경로를 지정하여 해당 디렉토리에 대한 접근 권한을 명시적으로 부여할 수 있다. 이 접근 권한은 현재 세션 동안 유지되어 이후 명령에서도 해당 디렉토리에 접근할 수 있다.

Windows 샌드박스 격리 계층자유 접근세션 허용차단사용자 승인에이전트 프로세스작업 폴더 (읽기/쓰기)명시적 허용 디렉토리 (읽기전용)차단된 파일시스템 영역네트워크 (승인 필요)

이 설계는 에이전트가 의도하지 않은 파일 수정이나 네트워크 접근을 수행하는 것을 방지하면서도, 정상적인 개발 작업에 필요한 유연성을 보장한다.

PowerShell 통합과 크로스 플랫폼 전환

Codex의 Windows 지원에서 특히 주목할 만한 것은 PowerShell과의 깊은 통합이다. Codex는 Windows 특화 작업을 위해 PowerShell 명령을 네이티브로 실행하고, Windows 경로 규칙을 이해하며, Windows 패키지 매니저(winget, Chocolatey)와 통합되고, Visual Studio, MSBuild 등 Windows 특화 개발 도구와 상호작용할 수 있다. 크로스 플랫폼 작업도 자연스럽게 처리된다. 동일한 작업 내에서 Windows 특화 작업에는 PowerShell 명령을, Linux 특화 도구가 필요한 경우에는 WSL2를 통한 bash 명령을 전환하여 사용할 수 있다. 이를 통해 개발자는 플랫폼의 경계를 의식하지 않고 에이전트와 협업할 수 있다.

2026년 최신 업데이트에서 Windows 관련 여러 개선 사항이 포함되었다. Windows 샌드박스 시작 시 여러 CLI 버전과 설치된 앱 디렉토리를 더 잘 처리하도록 개선된 다중 CLI 버전 처리, Start-Process 호출 시 보이는 PowerShell 창이 나타나지 않도록 개선되어 사용자 경험이 향상된 백그라운드 PowerShell 창 방지, Windows 샌드박스·원격 WebSocket·이벤트 순서 처리·MCP 정리 관련 버그가 수정된 샌드박스 버그 수정이 그것이다. 현재 OpenAI는 Windows 지원을 실험적(experimental)으로 분류하고 있으며, 핵심 샌드박스 아키텍처가 구현된 상태에서 실험적 레이블 제거를 위한 강화와 테스트를 계속 진행 중이다.

Codex CLI는 실시간 에이전트 진행 스트리밍과 개선된 TUI를 통해 터미널 AI 코딩 에이전트의 투명성과 사용성을 크게 향상시켰으며, Ratatui 기반의 즉시 모드 렌더링 아키텍처는 서브 밀리초 수준의 응답성을 실현하였다. Windows 네이티브 지원은 PowerShell 통합, Windows Sandbox 격리, WSL2 옵션의 세 축으로 구성되어 WSL 없이도 안전한 에이전트 실행 환경을 제공한다. 이러한 발전은 터미널 AI 에이전트가 특정 플랫폼에 구속되지 않고 어디서나 일관된 경험을 제공하는 방향으로 나아가고 있음을 보여주는 중요한 이정표이다.

Sources

Codex CLITUI실시간스트리밍Windows Sandbox크로스플랫폼