Hice un script de reempaquetado para ejecutar la app de Codex en Windows ARM64
(github.com/airtaxi)Hace poco compré una ASUS Zenbook A16. El rendimiento es muy bueno y también he quedado muy satisfecho con la batería.
Pero justo entonces sentí que la nueva política de precios de GitHub Copilot no tenía mucho sentido para mí, así que empecé a mover mi agente principal de programación hacia OpenAI Codex. Codex CLI es compatible con Windows ARM64, así que funciona bastante bien. El problema era la app de Codex. La versión de Windows distribuida por Microsoft Store solo está disponible en x64, y en Windows ARM64 toda la app de Electron corre bajo emulación.
Si solo fuera algo como “la arquitectura aparece como x64”, lo habría dejado pasar, pero en la práctica la latencia al escribir y los congelamientos de la interfaz resultaban bastante molestos. También era una pena un poco extraña que Codex CLI funcionara bien en ARM64, pero la app de Codex siguiera en emulación x64.
Al final, como de todos modos es una app de Electron, y en Linux también existen casos similares de solución alternativa montando los recursos de la app upstream sobre un runtime nuevo de Electron, pensé que quizá también sería posible reempaquetarla para Windows ARM64. Así que hice un script de PowerShell que toma la app oficial de Codex para Windows x64 desde la instalación, reemplaza el runtime y los módulos nativos por versiones ARM64, y luego la vuelve a empaquetar como un MSIX autofirmado.
El repositorio está aquí.
https://github.com/airtaxi/codex-app-windows-arm64
Actualmente el método funciona más o menos así.
- Usa como fuente el paquete oficial de Codex x64 instalado desde Microsoft Store.
- Reemplaza el runtime de Electron por
win32-arm64. - Reemplaza Node.js por
win-arm64. - Reconstruye para ARM64 los módulos nativos in-process como
better-sqlite3ynode-pty. - Reemplaza por versiones ARM64 los helpers que tienen assets ARM64, como
codex.exe,codex-command-runner.exe, sandbox setup helper yrg.exe. - Deja como fallback de emulación x64 las herramientas out-of-process para las que todavía no encontré reemplazo ARM64, como
node_repl.exeytectonic.exe. - Elimina
windows-updater.node, porque la función de actualización no encaja con un paquete autofirmado. - Al final crea un MSIX ARM64 con
makeappx.exeysigntool.exe, yInstall.batse encarga de registrar la confianza del certificado y realizar la instalación.
En la release también dejé el dist.7z que compilé. Solo hay que descomprimirlo y ejecutar Install.bat.
https://github.com/airtaxi/codex-app-windows-arm64/…
También dejé un comentario relacionado en un issue de openai/codex.
https://github.com/openai/codex/issues/17491#issuecomment-4369034462
Cuando llegue el soporte oficial para Windows ARM64, este proyecto casi perderá su razón de ser. Hasta entonces, pienso intentar mantenerlo al día en la medida de lo posible cada vez que suba la versión de la app de Codex.
Si te frustraba la emulación x64 de la app de Codex en equipos Windows on ARM, quizá te convenga probarlo.
Aún no hay comentarios.