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を実行すればOKです。
https://github.com/airtaxi/codex-app-windows-arm64/…
関連して、openai/codex側のissueにもコメントを残してあります。
https://github.com/openai/codex/issues/17491#issuecomment-4369034462
公式のWindows ARM64サポートが出れば、このプロジェクトの存在意義はほぼなくなるでしょう。それまでは、Codexアプリのバージョンが上がるたびに、できる限り追従してメンテナンスしていくつもりです。
Windows on ARMデバイスでCodexアプリのx64エミュレーションにもどかしさを感じていた方は、一度試してみてもよいかもしれません。
まだコメントはありません。