Show GN: Codex 앱을 Windows ARM64에서 돌리기 위한 리패키징 스크립트를 만들었습니다
(github.com/airtaxi)최근에 ASUS Zenbook A16을 샀습니다. 성능도 엄청 좋고 배터리도 아주 만족스럽게 쓰고있었습니다.
그런데 마침 GitHub Copilot의 새 가격 정책이 제 기준으로는 좀 말이 안 된다고 느껴져서, 주 개발 코딩 에이전트를 OpenAI Codex 쪽으로 옮기기 시작했습니다. Codex CLI는 Windows ARM64를 지원해서 꽤 잘 돌아갑니다. 문제는 Codex 앱이었습니다. Microsoft Store로 배포되는 Windows 버전이 x64만 제공되고, Windows ARM64에서는 Electron 앱 전체가 에뮬레이션으로 뜹니다.
이게 그냥 “아키텍처 표시가 x64로 보인다” 정도면 넘어갔을 텐데, 실제로 입력 지연이나 UI 멈춤이 꽤 거슬렸습니다. Codex CLI는 ARM64로 잘 도는데, 정작 Codex 앱은 x64 에뮬레이션이라는 점도 묘하게 아쉬웠고요.
어차피 Electron 앱이고, Linux 쪽에서도 비슷하게 upstream 앱 리소스를 새 Electron 런타임에 얹는 식의 우회 사례가 있어서, Windows ARM64용으로도 재패키징이 가능하지 않을까 싶었습니다. 그래서 공식 Windows x64 Codex 앱을 설치본에서 가져와 ARM64 런타임과 네이티브 모듈로 교체한 뒤, 자체 서명 MSIX로 다시 묶는 PowerShell 스크립트를 만들었습니다.
저장소는 여기입니다.
https://github.com/airtaxi/codex-app-windows-arm64
현재 방식은 대략 이렇습니다.
- Microsoft Store에 설치된 공식 Codex x64 패키지를 소스로 사용합니다.
- Electron 런타임을 win32-arm64로 교체합니다.
- Node.js를 win-arm64로 교체합니다.
- better-sqlite3, node-pty 같은 in-process 네이티브 모듈은 ARM64로 rebuild합니다.
- codex.exe, codex-command-runner.exe, sandbox setup helper, rg.exe 등 ARM64 asset이 있는 helper는 ARM64 버전으로 교체합니다.
- node_repl.exe, tectonic.exe처럼 아직 ARM64 대체재를 찾지 못한 out-of-process 도구는 x64 에뮬레이션 fallback으로 둡니다.
- windows-updater.node는 자체 서명 패키지에서는 업데이트 기능이 맞지 않아서 제거합니다.
- 최종적으로 makeappx.exe와 signtool.exe로 ARM64 MSIX를 만들고, Install.bat으로 인증서 신뢰 등록과 설치를 처리합니다.
릴리즈에는 제가 빌드한 dist.7z도 올려두었습니다. 압축을 풀고 Install.bat을 실행하면 됩니다.
https://github.com/airtaxi/codex-app-windows-arm64/…
관련해서 openai/codex 쪽 이슈에도 댓글을 남겨두었습니다.
https://github.com/openai/codex/issues/17491#issuecomment-4369034462
공식 Windows ARM64 지원이 나오면 이 프로젝트의 존재 이유는 거의 사라질 겁니다. 그 전까지는 Codex 앱 버전이 올라갈 때마다 가능한 한 맞춰서 유지해보려고 합니다.
Windows on ARM 장비에서 Codex 앱의 x64 에뮬레이션이 답답했던 분이 있다면 한번 써보셔도 좋을 것 같습니다.