mcpField
P
patch-codex-fast

patch-codex-fast

github.com/yangchuansheng開発33239 回インストール24 週間前に更新
リポジトリ

patch-codex-fast について

Codex デスクトップアプリをローカルでパッチするスキルです。API key 利用者向けに Fast モード、Plugins、Zed でのリモートファイル表示を扱い、確認・適用・ロールバックの手順を備えます。

主な機能

  1. 01API key モードで Fast モードと Plugins を有効化
  2. 02リモートセッションで Zed を開く機能を追加
  3. 03環境確認とパッチ用スクリプト
  4. 04パッチのロールバック手順
  5. 05アップデート後の再確認と再適用

活用シーン

  1. 01API key 認証で Fast モードを使う場面
  2. 02API key 認証で Plugins を使う場面
  3. 03Codex のリモートファイルを Zed で開く場面
  4. 04パッチ失敗や不具合時のロールバック

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/yangchuansheng/patch-codex-fast --skill patch-codex-fast

インストール後、Claude Code で/patch-codex-fastを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

LICENSE
README.md
SECURITY.md
scripts/
macos-patch.sh
macos-rollback.sh
patch_codex_fast.py
windows-patch.ps1
windows-rollback.ps1
scripts/codex_fast_patch/
__init__.py
app.py
bundle.py
chrome.py
cli.py
patterns.py
zed_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.

その後、エージェントは手順を最後まで実行し、手動の手順を案内するだけで終わらせないでください。以下のスクリプトコマンドは、ユーザーが主な手段としてコピーするためのものではなく、エージェントが実行するためのものです。

ワークフロー

  1. この SKILL.md を含むリポジトリのルートを特定します。
  2. リポジトリのスクリプトで doctor チェックを実行します。
  3. 環境が有効な場合は、現在の OS 用のパッチスクリプトを実行します。
  4. コマンドの出力全体を読み、以下を報告します。
    • パッチ処理が適用されたかどうか。
    • 警告があったかどうか。
    • ロールバックに使う正確なコマンド。
  5. ユーザーに Codex を完全に終了してから再度開くよう伝え、以下を確認します。
    • API キーモードで Fast/Speed モードが表示される。
    • API キーモードでプラグインのサイドバーが表示される。
    • プラグインのインストールフローですべてのコネクターが利用不可と表示されなくなる。
    • Computer Use の設定に Google Chrome プラグインの行が引き続き表示される。
  6. Codex が起動しない場合、またはユーザーから不具合の報告があった場合は、直ちにロールバックを実行します。

Zed リモートオープンパッチのみの場合:

  1. doctor または zed-remote-status を実行します。
  2. 環境が有効な場合は、patch-zed-remote を実行します。
  3. 出力全体を読み、Zed のターゲットに supportsSsh が設定されたか、またリモート URL ヘルパーが挿入されたかを報告します。
  4. ユーザーに Codex を完全に終了してから再度開くよう伝え、リモートの Codex ファイルで「プログラムから開く」に Zed が表示され、Zed Remote Development で開けることを確認します。
  5. 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」のフローです。

コメント