blog by izumiz

blog by izumiz

Claude CodeでサブスクGPT-5.6を使う

私は普段、Claude Code を利用しています。

しかし、MCP やらプラグインなど、いろいろ環境が育ててしまったので、別の CLI に移動して同じ環境をもう一度作るのはめんどくさい!

なので、Claude Code のまま GPT-5.6 を使いたい。

ということで、ローカルに CLIProxyAPI を立てて、Claude Code から ChatGPT Plus の Codex 利用枠につなげてみました。

shell
claude   # いつもの Claude Pro
claudex  # ChatGPT Plus / Codex → GPT-5.6
ℹ️
OpenAI API キーは使いません。
API の従量課金ではなく、契約している ChatGPT Plus の利用枠を使います。

TL;DR

  • Claude Code の接続先を localhost の CLIProxyAPI に切り替える
  • ChatGPT Plus の Codex 利用枠で GPT-5.6 Sol / Terra / Luna を使う
  • いつもの claude はそのまま、GPT-5.6 は claudex で起動する
  • MCP、プラグイン、サブエージェントも使えるようにしている

導入したい人は、以下を Claude Code などのコーディングエージェントへ渡してみてください。

plain text
以下の Gist を読んで、setup-agent-prompt.md の指示に従い、
既存の Claude Code 環境を壊さないようにセットアップしてください。

https://gist.github.com/izumiz-dev/f6ecabab1e9055fd62655c8afdfdb4e2

何ができるか

セットアップすると、こんな感じで使い分けられます。

bash
# いつもの Claude Code
claude

# GPT-5.6 で Claude Code を起動
claudex

# モデルを指定
claudex sol
claudex terra
claudex luna

ローカルプロキシの状態確認と停止もできます。

bash
claudex status
claudex stop

claude は今までどおり Claude Pro につながります。

claudex のときだけ、Claude Code の接続先を localhost の CLIProxyAPI に切り替えます。

plain text
Claude Code
    ↓ Anthropic 互換 API
CLIProxyAPI(localhost)
    ↓ ChatGPT OAuth
Codex / GPT-5.6 Sol・Terra・Luna

起動時の環境変数で、接続先とモデル名を差し替えています。

Claude Code の環境はそのまま

普段の Claude Code は壊したくないので、設定ディレクトリを分けています。

plain text
~/.claude      → 通常の Claude Code
~/.claude-sol  → claudex

ただし完全に分離すると、MCP やプラグインも別管理になってしまいます。

そこで claudex を起動するとき、通常の Claude Code 環境から必要なものだけを一方向に同期するようにしました。

  • グローバルの MCP サーバー設定
  • プロジェクトごとの MCP サーバー設定
  • インストール済みプラグイン
  • プラグインのマーケットプレイス情報
  • 有効化しているプラグイン

履歴、権限、hooks、通知、テーマなどは同期しません。

通常の ~/.claude を正として、GPT-5.6 用の ~/.claude-sol へ必要なものだけコピーする形です。

なので、普段どおり Claude Code 側へ MCP やプラグインを追加しておけば、次回の claudex 起動時にだいたい同じ環境になります。

サブエージェントも動く

Claude Code は、Explore などのサブエージェントを内部で起動することがあります。

メインモデルに GPT-5.6 Sol を指定するだけだと、サブエージェントが Claude のモデル名でローカルプロキシへ飛んでいき、unknown provider で落ちました。

そのため、claudex の中では Claude Code のモデル階層も以下のように割り当てています。

plain text
Fable  → GPT-5.6 Sol
Opus   → GPT-5.6 Sol
Sonnet → GPT-5.6 Terra
Haiku  → GPT-5.6 Luna

バグの詳細はどうでもいいのですが、これで Explore なども普通に動いています。

導入は LLM にやらせる

セットアップ手順をブログへ全部書くと、それだけでめちゃくちゃ長くなるのでやめました。

Gist に手順と、コーディングエージェントへ渡すためのプロンプトを置いています。

Claude Code などのコーディングエージェントへ、以下のように頼んでみてください。

plain text
以下の Gist を読んで、setup-agent-prompt.md の指示に従い、
既存の Claude Code 環境を壊さないようにセットアップしてください。

https://gist.github.com/izumiz-dev/f6ecabab1e9055fd62655c8afdfdb4e2

プロンプトの Markdown を直接渡す場合はこちら。

バイナリの取得、設定ファイルの作成、シェル関数の追加、MCP・プラグイン同期の実装、動作確認までやるように書いています。

途中で ChatGPT の OAuth ログインが必要になるので、そこだけはブラウザで自分で操作します。

こういう面倒な環境構築こそ、LLM にやってもらえばいいじゃんね。

セキュリティ的な注意

ローカルプロキシは 127.0.0.1 だけで待ち受けるようにしています。

LAN やインターネットへ公開してはいけない。ngrok や Cloudflare Tunnel で外へ出すのもやめましょう。

API キーや OAuth の認証情報は、所有者だけが読める権限にします。当然ながら Git にも入れません。

このあたりも Gist のプロンプトに含めていますが、LLM がやったから安全だろうとは思わず、最後に自分で確認したほうがいいです。

bash
lsof -nP -iTCP:8317 -sTCP:LISTEN

以下のように 127.0.0.1 だけなら OK。

plain text
TCP 127.0.0.1:8317 (LISTEN)

実際に使ってみて

Claude Code の UI、ツール実行、MCP、プラグインを使いながら、中で動くモデルだけ GPT-5.6 にできます。

Anthropic や OpenAI が公式に案内している構成ではないため、アップデートで突然動かなくなる可能性はあります。MCP、画像入力、セッション復元、長時間のツール実行など、すべてが完全に動く保証もありません。

私の環境では、ファイル編集、MCP、プラグイン、Explore サブエージェントあたりまでは動いています。