J’ai créé un script de reconditionnement pour faire tourner l’app Codex sur Windows ARM64
(github.com/airtaxi)J’ai récemment acheté un ASUS Zenbook A16. Les performances sont excellentes et l’autonomie est vraiment très satisfaisante.
Mais au même moment, j’ai eu l’impression que la nouvelle politique tarifaire de GitHub Copilot n’avait pas vraiment de sens selon mes critères, donc j’ai commencé à déplacer mon principal agent de codage vers OpenAI Codex. Codex CLI prend en charge Windows ARM64 et fonctionne plutôt bien. Le problème, c’était l’app Codex. La version Windows distribuée via le Microsoft Store n’est proposée qu’en x64, et sur Windows ARM64, toute l’app Electron tourne en émulation.
Si ce n’avait été qu’une simple question du type « l’architecture affichée apparaît en x64 », j’aurais pu passer outre, mais en pratique la latence à la saisie et les gels de l’interface étaient assez agaçants. Le fait que Codex CLI tourne correctement en ARM64 alors que l’app Codex reste en émulation x64 était aussi un peu frustrant.
Comme il s’agit de toute façon d’une app Electron, et qu’il existe aussi côté Linux des contournements consistant à réinjecter les ressources de l’app upstream dans un nouveau runtime Electron, je me suis dit qu’un reconditionnement pour Windows ARM64 serait peut-être possible également. J’ai donc créé un script PowerShell qui récupère l’app officielle Codex Windows x64 depuis son installation, remplace le runtime et les modules natifs par leurs équivalents ARM64, puis reconditionne le tout en MSIX auto-signé.
Le dépôt est ici.
https://github.com/airtaxi/codex-app-windows-arm64
La méthode actuelle fonctionne globalement comme suit.
- Le paquet officiel Codex x64 installé depuis le Microsoft Store est utilisé comme source.
- Le runtime Electron est remplacé par
win32-arm64. - Node.js est remplacé par
win-arm64. - Les modules natifs in-process comme
better-sqlite3etnode-ptysont recompilés pour ARM64. - Les helpers disposant d’assets ARM64, comme
codex.exe,codex-command-runner.exe, le sandbox setup helper etrg.exe, sont remplacés par leurs versions ARM64. - Les outils out-of-process pour lesquels je n’ai pas encore trouvé d’alternative ARM64, comme
node_repl.exeettectonic.exe, restent en fallback via l’émulation x64. windows-updater.nodeest supprimé, car la fonction de mise à jour ne convient pas à un paquet auto-signé.- Enfin, un MSIX ARM64 est créé avec
makeappx.exeetsigntool.exe, etInstall.batse charge d’ajouter le certificat aux autorités de confiance et de lancer l’installation.
Dans les releases, j’ai aussi publié le dist.7z que j’ai compilé. Il suffit de le décompresser puis d’exécuter Install.bat.
https://github.com/airtaxi/codex-app-windows-arm64/…
À ce sujet, j’ai également laissé un commentaire sur une issue du dépôt openai/codex.
https://github.com/openai/codex/issues/17491#issuecomment-4369034462
Quand une prise en charge officielle de Windows ARM64 arrivera, la raison d’être de ce projet disparaîtra presque complètement. D’ici là, je vais essayer de le maintenir autant que possible à chaque montée de version de l’app Codex.
Si l’émulation x64 de l’app Codex vous frustravait sur une machine Windows on ARM, cela vaut peut-être le coup d’essayer.
Aucun commentaire pour le moment.