RichardAtCT/claude-code-openai-wrapper
OpenAI API-compatible wrapper for Claude Code
Claude Code OpenAI API Wrapper
概要 – AnthropicのClaude CodeモデルをOpenAI APIのように見せるセルフホスト型サーバーです。このラッパーを実行することで、既存のOpenAIクライアントライブラリ(Python SDK、curlなど)をそのまま使用しながら、リクエストを公式のClaude Agent SDK経由でClaude Codeにルーティングできます。
重要性 – 多くのツール、ノートブック、統合機能はOpenAIエンドポイント (/v1/chat/completions) 向けに構築されています。これらをClaude用に再実装するのは手間がかかります。このラッパーを使えば、設定を1つ変更するだけでClaude Codeに切り替えることができ、以下のメリットを享受できます:
- Claude SDKによるリアルタイムのコストおよびトークン使用量の把握
- 呼び出し間でのセッション継続性(会話メモリ)
- オプションのツール使用(ファイル読み書き、bashなど)
- マルチプロバイダー認証(Anthropic API key、AWS Bedrock、Google Vertex AI、またはClaude CLI)
主な機能
- OpenAI互換エンドポイント –
/v1/chat/completionsおよび/v1/messages(Anthropicスタイル) がストリーミングまたは非ストリーミングレスポンスで動作します。 - ライブモデル検出 –
ANTHROPIC_API_KEYが存在する場合、ラッパーはAnthropicの現在のモデルリストを取得(1時間キャッシュ)し、最新の Sonnet モデルを自動的にデフォルトとして選択します。 - 高速デフォルトモード – ツールはデフォルトで無効になっており、純粋なチャット利用時には5〜10倍の速度向上が見込めます。ツールはリクエストごとに有効化可能です。
- セッション管理 –
session_idを含めることで会話履歴を保持します。セッションのリスト表示、確認、削除を行うエンドポイントも用意されています。セッションは1時間の非アクティブ状態で期限切れになります。 - マルチプロバイダー認証 – 追加コードなしでClaude CLI認証、生のAPI key、AWS Bedrock、またはGoogle Vertex AIを検出して使用します。
- インタラクティブなランディングページ –
http://localhost:8000/に組み込まれたUIから、APIの探索、コマンドのコピー、ライト/ダークテーマの切り替えが可能です。 - レート制限とオプションのAPIキー保護 – 悪用を防ぎ、リモートアクセス用にサーバーを保護できます。
- Dockerサポート – 公式のDockerfileとDocker-Composeの例により、迅速なデプロイが可能です。
導入方法(2分以内)
# Clone and install
git clone https://github.com/RichardAtCT/claude-code-openai-wrapper
cd claude-code-openai-wrapper
poetry install # creates a venv and pulls the Claude Agent SDK
# Authenticate (pick one)
export ANTHROPIC_API_KEY=your-key # or `claude auth login`
# Run the server (development mode with hot-reload)
poetry run uvicorn src.main:app --reload --port 8000
# Test with curl
curl http://localhost:8000/v1/models
サーバーは http://localhost:8000/v1/chat/completions でOpenAIスタイルの呼び出しを受け付けるようになります。
OpenAI Python SDKでの一般的な使用例
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1")
resp = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "Write a Python hello-world script"}],
stream=False,
)
print(resp.choices[0].message.content)
extra_body={"enable_tools": True} を追加してClaudeにファイルを読み書きさせるか、extra_body={"session_id": "my-session"} を渡してコンテキストを保持します。
本番環境での考慮事項
- 隔離されたデプロイにはDockerイメージ (
docker build -t claude-wrapper .) を使用してください。 - localhost以外にエンドポイントを公開する場合は、
API_KEYを設定するか、インタラクティブなキープロンプトを有効にして保護してください。 - 必要に応じてレート制限の環境変数 (
RATE_LIMIT_CHAT_PER_MINUTEなど) を調整してください。 - エンタープライズ環境では、
CLAUDE_AUTH_METHODを設定することで、AWS BedrockまたはGoogle Vertex AIにラッパーを向けることができます。
ステータス – Production Ready とマークされています。すべての主要エンドポイントはテスト済みで、ストリーミングも動作し、ヘルスチェック、バージョン確認、認証ステータスチェックが含まれています。
すべての詳細はリポジトリのREADMEから直接引用したものであり、追加機能の推測は含まれていません。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト