CLIProxyAPI: Gemini、Claude & Codex API プロキシ
CLIProxyAPI: Gemini、Claude、Codex などを統一した無料プロキシ
OpenAI、Google の Gemini、Anthropic の Claude、Baidu の Qwen など、すべてが独自の API、SDK、認証モデルを提供しています。単一クリックの CLI や Web ツールを開発する際に、キーのプレフィックス、OAuth フロー、JSON 方言を管理するのは、単なる「API を呼び出す」作業よりもフルスタックプロジェクトのように感じられるかもしれません。
ここに CLIProxyAPI が登場します。軽量な Go サーバーで、これらすべての API を OpenAI 対応のエンドポイント に包み込みます。
ローカルで動作し、標準の OpenAI 対応インターフェースを公開、必要に応じて選択したプロバイダへ呼び出しを転送します。結果は?1 つの curl コマンド、1 つの SDK、1 つの認証フロー、そしてハードコーディングされたキーは不要です。
CLIProxyAPI が必要な理由: 解決する課題
| 課題 | CLIProxyAPI の解決策 |
|---|---|
| 複数キー – Gemini、Claude、Codex はそれぞれ別々の API キーまたは OAuth トークンが必要です。 | すべてのトークンを JSON または Git ベースの安全なローカルストアに保存し、ヘッダー 1 つでプロバイダーを切り替えます。 |
| リクエスト/レスポンスのスキーマが不一致 | プロキシはペイロードを OpenAI v1 スキーマに正規化し、プロバイダー版に再変換します。 |
| CLI ごとにハードコーディングされたプロバイダーロジック | プロキシにプロバイダーロジックを集中化し、CLI ツールはプロバイダーに依存しません。 |
| 複数アカウントのロードバランシング | 各プロバイダーのアカウント間でラウンドロビンを行い、重み付けやフォールバックチェーンを設定可能です。 |
| OAuth 認証 | Anthropic や Codex 用の OAuth をサポートし、ユーザーはトークンを手動で管理する必要はありません。 |
| 高度なユースケース | ストリーミング、関数呼び出し、マルチモーダル入力(テキスト+画像)、モデルフォールバック すべて組み込み済みです。 |
| --- |
クイックスタート
1. インストール
CLIProxyAPI はバイナリ、Docker、ソースからビルドのいずれかで実行できます。
Homebrew(macOS/Linux)でインストール
brew install router-for-me/cli/cli-proxy-api
cli-proxy-api --help
Docker からインストール
docker pull ghcr.io/router-for-me/cliproxyapi:latest
docker run \
--rm -it \
-p 8080:8080 \
-e CONFIG_PATH=/etc/cliproxyapi/config.yaml \
-v $(pwd)/config.yaml:/etc/cliproxyapi/config.yaml \
ghcr.io/router-for-me/cliproxyapi:latest
ソースからビルド
go install github.com/router-for-me/CLIProxyAPI/cmd/server@latest
# または
go run main.go
Tip – リポジトリには Dockerfile と Docker‑compose 例が付属しており、プロキシとフロントエンドクライアントをセットアップできます。
2. プロキシの構成
config.yaml(リポジトリの例フォルダにあります)を作成します。最小構成例:
# config.yaml
# 表示したいプロバイダのリスト
providers:
- name: gemini # Google Gemini
type: gemini
key: <YOUR_GEMINI_KEY>
- name: claude # Anthropic Claude
type: claude
key: <YOUR_CLAUDE_KEY>
- name: codex # OpenAI Codex
type: codex
key: <YOUR_OPENAI_KEY>
oauth: true
# ルーティングフォールバックチェーン
fallback:
- gemini
- claude
- codex
# HTTPS(自己署名または cert-manager または Let's Encrypt を使用)
# https:
# cert: /path/to/cert.pem
# key: /path/to/key.pem
プロキシを起動すると、次のエンドポイントが公開されます:
GET /v1/models
POST /v1/chat/completions
GET /v1/models/<model>/functions
すべてのリクエストは、OpenAI クライアントのように /v1/* へ送られます。
3. プロキシの使用
curl -X POST http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-d '{
"model": "gemini-2.5-pro",
"messages": [{"role":"user", "content":"Hello"}]
}'
model フィールドは、プロバイダー名(gemini-2.5-pro、claude-3-opus-20240229、codex-gpt-35-turbo)や、gemini-pro などプロキシ定義のエイリアスでも構いません。サーバーが自動で変換します。
4. SDK の統合
軽量の Go SDK が sdk/ フォルダに含まれています。使用は以下のように簡単です:
import "github.com/router-for-me/CLIProxyAPI/sdk"
client, err := sdk.NewClient("http://localhost:8080", &sdk.Config{BearerToken: "<TOKEN>"})
if err != nil { log.Fatal(err) }
resp, _ := client.ChatCompletion(context.Background(), &sdk.ChatRequest{
Model: "gemini-2.5-pro",
Messages: []sdk.Message{{Role: "user", Content: "Hi!"}},
})
fmt.Println(resp.Choices[0].Message.Content)
docs/sdk-usage.md を参照してください。
高度な機能
マルチアカウントロードバランシング
複数の Gemini や Claude アカウントを持っている場合は、すべてをコンフィグに追加し、名前をユニークにします。round_robin フラグを設定するとローテーションが有効になります:
providers:
- name: gemini-acc1
type: gemini
key: <KEY1>
round_robin: true
- name: gemini-acc2
type: gemini
key: <KEY2>
round_robin: true
gemini へのリクエストは gemini-acc1 と gemini-acc2 を交互に選択します。
自動モデルフォールバック
プロバイダが特定のモデルをサポートしていない場合、設定ファイルにフォールバックチェーンを設定します。たとえば Claude‑Opus が利用できない場合は claude-sonnet にフォールバックします:
fallback:
- 'claude-sonnet-2'
- 'claude-3-haiku-20240307'
プロキシはターゲットから 404 を取得すると、次のモデルへ再試行を行い、成功または上限に達するまで続行します。
関数呼び出しとストリーミング
OpenAI 標準の関数呼び出しはすぐに使えます。プロキシを通じてリクエストするだけで、サーバーが必要な tools と tool_choice を翻訳されたリクエストに追加します。
stream=true を付与した /v1/chat/completions エンドポイントでストリーミングが処理されます。レスポンスは OpenAI のイベントストリーム形式でチャンク化され、クライアントへ転送されます。
コミュニティとエコシステム
CLIProxyAPI は、成長中のツールエコシステムのハブです: - vibemacro – サブスクを CLI 用プロキシへ変換する macOS メニューバーアプリ。 - ProxyPal – プロキシ管理用 GUI。 - ProxyPilot – Windows ネイティブ TUI。 - Claude Proxy VSCode – プロキシバックエンドでモデルを切り替える拡張機能。
リポジトリの projects セクションで全リストを確認し、独自のプロジェクトを追加して貢献してください。
リポジトリは貢献を奨励しています。バグや機能リクエストの issue を歓迎し、コミュニティが文書と例を活発に保守しています。
よくある質問
Q: 各ターゲットプロバイダーごとに料金はかかりますか?
A: プロキシ自体は無料で MIT ライセンスです。使用料は各プロバイダーの利用料金にかかります。フリーティアでは Gemini 2.5 Pro、GPT‑5、Claude‑sonnet が無料で利用できます。
Q: Nginx のようなリバースプロキシを通して CLIProxyAPI を公開できますか?
A: はい。HTTPS の下で CLIProxyAPI を実行し、CORS フレンドリーなリバースプロキシを使用し、必要であればベーシック認証を追加できます。
Q: 他にどのプロバイダーがサポートされていますか?
A: 現在は Gemini、Claude、Codex(OpenAI)、Qwen、iFlow、そして任意の OpenRouter 互換 API をカスタムプロバイダーとしてサポートしています。
まずは始めましょう
公式リポジトリ https://github.com/router-for-me/CLIProxyAPI を訪れてコード、例、コミュニティを確認してください。
# クローンして実行
git clone https://github.com/router-for-me/CLIProxyAPI.git
cd CLIProxyAPI
make run
これで、シームレスに統合された AI CLI 経験に一歩近づきました。Happy coding!