patch-codex-fast について
Codex デスクトップアプリをローカルでパッチするスキルです。API key 利用者向けに Fast モード、Plugins、Zed でのリモートファイル表示を扱い、確認・適用・ロールバックの手順を備えます。
主な機能
- 01API key モードで Fast モードと Plugins を有効化
- 02リモートセッションで Zed を開く機能を追加
- 03環境確認とパッチ用スクリプト
- 04パッチのロールバック手順
- 05アップデート後の再確認と再適用
活用シーン
- 01API key 認証で Fast モードを使う場面
- 02API key 認証で Plugins を使う場面
- 03Codex のリモートファイルを Zed で開く場面
- 04パッチ失敗や不具合時のロールバック
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ yangchuansheng/ patch-codex-fast --skill patch-codex-fastインストール後、Claude Code で/patch-codex-fastを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEREADME.mdSECURITY.mdscripts/macos-patch.shmacos-rollback.shpatch_codex_fast.pywindows-patch.ps1windows-rollback.ps1scripts/codex_fast_patch/__init__.pyapp.pybundle.pychrome.pycli.pypatterns.pyzed_remote.py詳細
Codex Fast をパッチする
ユーザーが、ChatGPT の OAuth ログインではなく API キーを使って Codex を実行しているときに、Codex デスクトップの Fast/Speed モードまたはプラグインを有効にしたい場合に、このスキルを使用します。また、Codex のリモート SSH セッションで Zed からファイルを開けるかどうかを尋ねられた場合や、リモートファイルを Zed で開けるように Codex にパッチを適用したい場合にも使用します。
このスキルは、npx skills または手動のシンボリックリンクを使ってインストールした後のメインインターフェースです。README の長いシェルコマンドをユーザーにコピーさせないでください。このリポジトリのスクリプトを実行用アセットとして使用し、現在の OS に適したコマンドを実行してから、結果と確認手順を報告します。
これは非公式のローカルパッチです。アプリを変更する前に、インストール済みの Codex デスクトップバンドルを変更し、選択された Electron のインテグリティ・フューズを無効化すること、また Codex の更新後に再適用が必要になる場合があることをユーザーが理解しているか確認してください。
意図
ユーザーは次のように指示できる必要があります。
[$patch-codex-fast] Patch my local Codex app so Fast mode and Plugins work in API key mode.
その後、エージェントは手順を最後まで実行し、手動の手順を案内するだけで終わらせないでください。以下のスクリプトコマンドは、ユーザーが主な手段としてコピーするためのものではなく、エージェントが実行するためのものです。
ワークフロー
- この
SKILL.mdを含むリポジトリのルートを特定します。 - リポジトリのスクリプトで doctor チェックを実行します。
- 環境が有効な場合は、現在の OS 用のパッチスクリプトを実行します。
- コマンドの出力全体を読み、以下を報告します。
- パッチ処理が適用されたかどうか。
- 警告があったかどうか。
- ロールバックに使う正確なコマンド。
- ユーザーに Codex を完全に終了してから再度開くよう伝え、以下を確認します。
- API キーモードで Fast/Speed モードが表示される。
- API キーモードでプラグインのサイドバーが表示される。
- プラグインのインストールフローですべてのコネクターが利用不可と表示されなくなる。
- Computer Use の設定に Google Chrome プラグインの行が引き続き表示される。
- Codex が起動しない場合、またはユーザーから不具合の報告があった場合は、直ちにロールバックを実行します。
Zed リモートオープンパッチのみの場合:
doctorまたはzed-remote-statusを実行します。- 環境が有効な場合は、
patch-zed-remoteを実行します。 - 出力全体を読み、Zed のターゲットに
supportsSshが設定されたか、またリモート URL ヘルパーが挿入されたかを報告します。 - ユーザーに Codex を完全に終了してから再度開くよう伝え、リモートの Codex ファイルで「プログラムから開く」に Zed が表示され、Zed Remote Development で開けることを確認します。
- Codex が起動しない場合、またはユーザーから不具合の報告があった場合は、直ちにロールバックを実行します。
コマンド
クロスプラットフォーム対応の Python エントリーポイントを優先してください。
python3 scripts/patch_codex_fast.py doctor
python3 scripts/patch_codex_fast.py patch
python3 scripts/patch_codex_fast.py patch-zed-remote
python3 scripts/patch_codex_fast.py zed-remote-status
python3 scripts/patch_codex_fast.py rollback
Windows では、python3 が使用できない場合は python を使用してください。
python .\scripts\patch_codex_fast.py doctor
python .\scripts\patch_codex_fast.py patch
python .\scripts\patch_codex_fast.py patch-zed-remote
python .\scripts\patch_codex_fast.py zed-remote-status
python .\scripts\patch_codex_fast.py rollback
ラッパーも利用できます。
./scripts/macos-patch.sh
./scripts/macos-rollback.sh
.\scripts\windows-patch.ps1
.\scripts\windows-rollback.ps1
デフォルトのパス
macOS:
- リソース:
/Applications/Codex.app/Contents/Resources - アプリのパス:
/Applications/Codex.app
Windows:
- リソース:
%LOCALAPPDATA%\Programs\Codex\resources - アプリのパス:
%LOCALAPPDATA%\Programs\Codex\Codex.exe
Codex が別の場所にインストールされている場合は、Python コマンドに --resources-dir と --app-path を指定します。
ロールバックポリシー
ロールバックはスキルの一部であり、後回しにするものではありません。ファイルの変更後にパッチ処理が失敗した場合、またはアプリが起動しない場合は、次を実行します。
python3 scripts/patch_codex_fast.py rollback
Windows の場合:
python .\scripts\patch_codex_fast.py rollback
ロールバックスクリプトは、app/ を削除する前に app.asar を復元し、その後、Electron の標準フューズを復元して macOS では再署名する必要があります。macOS で Operation not permitted により /Applications/Codex.app 内への書き込みがブロックされた場合は、app/ を削除する前に作業を止めてください。App Management へのアクセスを許可するか、アプリバンドルをいったん別の場所に移動してから戻し、app.asar を復元して再署名します。
バンドル更新への対応
Codex を更新すると、バンドルのハッシュや圧縮された変数名が変わることがあります。まず、通常どおりスキルを再実行してください。スクリプトが No patches were applied と報告した場合は、次の検索を使用して、展開された app/webview/assets ディレクトリを調べてください。
grep -rl "authMethod" *.js | xargs grep -l "fast_mode"
grep -rl "pluginsDisabledTooltip" *.js
# Gate exported from gradient-*.js. Two known variants live in the wild:
# older builds: function e(e){return e===`apikey`}
# newer builds: function e(e){return e!==`chatgpt`}
# Both should be rewritten to `return false`.
grep -rlE 'return [A-Za-z_$]+(===|!==)`(apikey|chatgpt)`' *.js | grep -v locale
grep -rl "connector-unavailable" *.js | grep plugin
自動パターンが一致しなくなった場合は、README に記載されている同じ論理ゲートにパッチを適用してください。また、次のアプリバンドルの箇所を確認して、Chrome が引き続き利用できるようにしてください。
grep -rl "chrome-internal" app/.vite/build
grep -rl "externalBrowserUseAllowed" app/.vite/build
grep -rl "isExternalBrowserUseAvailable" app/webview/assets
現在の修正では、Dev ランタイムの Chrome プラグイン名を chrome-internal から chrome に変更し、外部ブラウザーの機能ゲートによって Chrome のマーケットプレイス記述子が除外されないようにして、isExternalBrowserUseAvailable が false の場合にレンダラーのプラグイン一覧で Chrome が非表示にならないようにしています。
Zed のリモートオープンをサポートするには、メインプロセスのオープンターゲットバンドルを調べてください。
grep -rl "id:\`zed\`" app/.vite/build
grep -rl "supportsSsh" app/.vite/build
grep -rl "vscode-remote://" app/.vite/build
Zed のパッチでは、ローカルでの Zed の動作を変更せず、Codex のリモートセッションで Zed を SSH 対応としてマークし、Codex から渡されたリモートパスを ssh://user@host[:port]/path のような Zed Remote Development URL に変換します。Zed が誤ったローカルの macOS ユーザー名にフォールバックしないよう、表示用のエイリアスよりも Codex の構造化された SSH 設定フィールドを優先してください。
成功条件
エージェントがパッチ適用またはロールバックの経路を示すコマンドの証拠を提示し、Codex の UI で何を確認すべきかをユーザーに正確に伝えるまでは、タスクは完了していません。確認対象は、Fast/Plugins パッチの場合は「Computer Use」内の Google Chrome の行、Zed のリモートパッチの場合はリモートの「Open With」→「Zed」のフローです。