Criei um script de reempacotamento para rodar o app Codex no Windows ARM64
(github.com/airtaxi)Recentemente comprei um ASUS Zenbook A16. O desempenho é excelente e a bateria também tem sido muito satisfatória.
Mas, justamente nessa época, passei a achar que a nova política de preços do GitHub Copilot não fazia muito sentido para o meu caso, então comecei a migrar meu principal agente de programação para o OpenAI Codex. O Codex CLI oferece suporte a Windows ARM64 e roda muito bem. O problema era o app Codex. A versão para Windows distribuída pela Microsoft Store oferece apenas x64, e no Windows ARM64 o app inteiro em Electron roda em emulação.
Se fosse só algo como “a arquitetura aparece como x64”, eu até deixaria passar, mas na prática o atraso na entrada e os travamentos da UI incomodavam bastante. Também era estranhamente frustrante ver o Codex CLI funcionando bem em ARM64, enquanto o app Codex em si ficava preso à emulação x64.
De qualquer forma, como é um app Electron e já existem casos semelhantes no Linux em que os recursos do app upstream são colocados sobre um novo runtime do Electron, achei que talvez fosse possível reempacotar também para Windows ARM64. Então criei um script em PowerShell que pega o app oficial Codex para Windows x64 a partir da instalação, substitui pelo runtime ARM64 e por módulos nativos, e depois empacota tudo novamente como um MSIX com assinatura própria.
O repositório está aqui.
https://github.com/airtaxi/codex-app-windows-arm64
Atualmente, o método funciona mais ou menos assim.
- Usa como fonte o pacote oficial Codex x64 instalado pela Microsoft Store.
- Substitui o runtime do Electron por
win32-arm64. - Substitui o Node.js por
win-arm64. - Módulos nativos in-process, como
better-sqlite3enode-pty, são recompilados para ARM64. - Helpers que têm assets ARM64, como
codex.exe,codex-command-runner.exe, sandbox setup helper erg.exe, são substituídos pelas versões ARM64. - Ferramentas out-of-process para as quais ainda não encontrei substitutos ARM64, como
node_repl.exeetectonic.exe, ficam com fallback para emulação x64. windows-updater.nodeé removido, porque o recurso de atualização não se encaixa em um pacote com assinatura própria.- No final,
makeappx.exeesigntool.exesão usados para criar um MSIX ARM64, e oInstall.batcuida do registro de confiança do certificado e da instalação.
Também publiquei no release o dist.7z que eu mesmo gerei. Basta descompactar e executar Install.bat.
https://github.com/airtaxi/codex-app-windows-arm64/…
Também deixei um comentário sobre isso na issue do openai/codex.
https://github.com/openai/codex/issues/17491#issuecomment-4369034462
Quando houver suporte oficial a Windows ARM64, a razão de existir deste projeto praticamente desaparecerá. Até lá, pretendo mantê-lo o mais alinhado possível sempre que a versão do app Codex subir.
Se você ficou frustrado com a emulação x64 do app Codex em dispositivos Windows on ARM, talvez valha a pena experimentar.
Ainda não há comentários.