mcpField
P
patch-codex-fast

patch-codex-fast

github.com/crazymsnエージェントワークフロー37130 回インストール24 週間前に更新
リポジトリ

patch-codex-fast について

API keyでCodexを使うユーザー向けに、ローカルのCodexデスクトップアプリを修正するスキルです。FastモードとPluginsの有効化、リモートSSHファイルをZedで開くための修正に対応し、確認とロールバック用のスクリプトを備えます。アプリ更新後は再適用が必要になる場合があります。

主な機能

  1. 01環境を確認してローカル修正を実行
  2. 02API keyモードでFastとPluginsを有効化
  3. 03CodexのリモートファイルをZedで開く修正
  4. 04修正を戻すスクリプト

活用シーン

  1. 01API keyモードでFastモードとPluginsを使用
  2. 02CodexのリモートSSHファイルをZedで開く
  3. 03Codexアプリの修正を確認または復元

インストール

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

$npx skills add https://github.com/crazymsn/codex-plugin --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」のフローです。

コメント