Claudex Gateway
概要
このスキルを使用して、ユーザーのローカル Claude Code → Codex OAuth ゲートウェイを安全かつ一貫して運用します。
デプロイされたスタックは、ユーザーが明示的に再設計を依頼しない限り、CLAUDEX_GATEWAY_HOME を信頼できる情報源として扱います。
このスキルでは、以下の規約を使用します。
SKILL_ROOT: このclaudex-gatewayスキルディレクトリのインストール先パスCLAUDEX_GATEWAY_HOME: ローカルプロキシスタックの実行時ディレクトリ。設定されていない場合、ヘルパースクリプトは最初に${XDG_DATA_HOME:-$HOME/.local/share}/claudex-gatewayを、次にレガシーな${XDG_DATA_HOME:-$HOME/.local/share}/cliproxyapi-codex-testを探します。CLAUDEX_WRAPPER:claudexラッパーのパス。設定されていない場合、デフォルトで${HOME}/.local/bin/claudexになります。
クイックスタート
- 新規マシンをブートストラップ:
python3 "$SKILL_ROOT/scripts/bootstrap_stack.py" ~/.codex/auth.jsonからローカル認証ファイルを更新:python3 "$SKILL_ROOT/scripts/sync_codex_auth.py"- ゲートウェイの現在の状態を確認:
claudex status - ローカルプロキシを再起動:
claudex restart - スタックのスモークテスト:
python3 "$SKILL_ROOT/scripts/probe_stack.py" - ラッパーを介して Claude Code を起動:
claudex --resume
ワークフロー
0. ゲートウェイスタックがまだ存在しない場合は、最初にブートストラップする
CLAUDEX_GATEWAY_HOMEがない場合、ファイルを一つずつ手動で作成しないでください。python3 "$SKILL_ROOT/scripts/bootstrap_stack.py"を実行して、ランタイムディレクトリ、設定、ランチャー、環境ファイル、status/start/stop/restartを備えたclaudexラッパー、およびビルド済みのcli-proxy-apiバイナリを作成します。- ブートストラップスクリプトは以下を前提とします:
codexとclaudeがすでにインストールされていることgitとgoが利用可能で、CLIProxyAPI のクローンとビルドが行えること - ブートストラップ後、デバッグを開始する前に認証を同期し、プロキシを起動します。
1. どのパスが使用されているか確認する
- 動作パスは以下であると想定します:
Claude Code → claudex ラッパー → CLIProxyAPI → chatgpt.com/backend-api/codex - ユーザーが現在の
claudexセットアップについて質問している場合、LiteLLM から始めないでください。 - アーキテクチャを変更したりトレードオフを説明する前に、current-stack.md を参照してください。
2. 動作が古くなっているように見える場合は、まず認証情報を更新する
python3 "$SKILL_ROOT/scripts/sync_codex_auth.py"を実行します- これにより、現在の Codex OAuth トークンが
~/.codex/auth.jsonからプロキシ認証ファイルにコピーされます:"$CLAUDEX_GATEWAY_HOME/auth/codex-current.json" - ユーザーが Codex からログアウトしている場合は、まず再認証を行ってください。
3. Claude Code に触れる前にローカルプロキシを確認する
- ラッパーコマンドを raw のランナー呼び出しよりも優先します:
claudex statusclaudex startclaudex restart - ヘルスチェック、
/v1/messages、ツール使用、トークンカウントをプローブ:python3 "$SKILL_ROOT/scripts/probe_stack.py" - ラッパー生成自体をデバッグする場合にのみ、raw の
run.shを使用します。
4. ユーザーがより深い変更を要求しない限り、モデルルーティングは env ファイル内でのみ変更する
- ラッパー
claudexは以下をソースとして読み込みます:"$CLAUDEX_GATEWAY_HOME/claude-code-gpt54.env" - 現在のマッピングはそこに保持されています。
CLAUDEX_WRAPPER内のラッパー契約を維持します: サービスサブコマンドを優先 それ以外の場合は env をソースし、exec "$CLAUDE_BIN" "$@"を実行- 常に raw の引数パススルーを維持します。
claudex --resumeは、環境変数が注入された状態でclaude --resumeとまったく同じように動作する必要があります。
5. デプロイされたバイナリが存在しないか壊れている場合にのみ再ビルドする
- デプロイされたバイナリは以下です:
"$CLAUDEX_GATEWAY_HOME/cli-proxy-api" - 再ビルドが必要な場合は、アップストリームリポジトリを使用します:
git clone --depth=1 https://github.com/router-for-me/CLIProxyAPI.git /tmp/CLIProxyAPIcd /tmp/CLIProxyAPI && go build -o "$CLAUDEX_GATEWAY_HOME/cli-proxy-api" ./cmd/server - ユーザーが明示的に要求しない限り、ランタイム設定と認証ディレクトリは変更しないでください。
重要なルール
- ユーザーが明示的に再設計を要求しない限り、CLIProxyAPI を LiteLLM に置き換えてスタックを「修正」しないでください。
- ポート、認証ファイルの場所、ラッパーのセマンティクスを黙って変更しないでください。
claudexの引数パススルーを壊さないでください。- 並列バリアントを作成するよりも、現在デプロイされているファイルを編集することを優先してください。
- スタックについて説明するときは、動作パスが
chatgpt.com/backend-api/codexを使用しており、直接api.openai.comの Responses 呼び出しではないことを明確にしてください。
リソース
scripts/
bootstrap_stack.py: 新規マシンにローカルゲートウェイランタイムを作成しますsync_codex_auth.py:~/.codex/auth.jsonからプロキシ認証ファイルを更新しますprobe_stack.py: ヘルス、Claude メッセージ、ツール使用、トークンカウントをプローブしますshow_status.sh: 現在のファイルレイアウト、環境マッピング、ポート状態を表示します
references/
- current-stack.md: 背景、ファイルレイアウト、コマンド、トラブルシューティングメモ