Claude CodeとLiteLLMを組み合わせると何ができるの?
室谷今日はClaude CodeとLiteLLMの話をしましょう。これ、.AI(ドットエーアイ)のコミュニティでも最近よく話題になっていて・・・「プロキシ経由でClaude Codeを動かせる」って聞いて、興味を持つ人が増えてきているんですよね。
テキトー教師講座でも「Claude CodeってClaudeのモデル以外でも使えますか?」という質問が増えています。LiteLLMという名前を聞いたことはある、でも何がどう嬉しいのかがわからない、という方が多い印象です。
室谷そうなんですよ。一言で言うと、LiteLLMはClaude Codeと各社AIプロバイダーの間に挟む「ゲートウェイ(代理人)」なんですよね。
Claude CodeはLiteLLMに向けてリクエストを投げて、LiteLLMがそれをAWS BedrockだろうがGoogle Vertex AIだろうがOpenAIだろうが、適切な形に変換して転送する。
Claude CodeはLiteLLMに向けてリクエストを投げて、LiteLLMがそれをAWS BedrockだろうがGoogle Vertex AIだろうがOpenAIだろうが、適切な形に変換して転送する。
テキトー教師整理すると、こういう構造ですね。
Claude Code(CLI)
↓
LiteLLM Proxy(localhost:4000)
↓
AWS Bedrock / Google Vertex AI / OpenAI / Gemini など
室谷この三層構造が分かると、一気に理解が深まりますね。Claude CodeはAnthropicのAPIフォーマットで話すだけでよくて、LiteLLMが裏側の変換を全部やってくれる。

テキトー教師で、これが何に嬉しいかというと、大きく3つのユースケースがあると思っています。
1つ目が「コスト管理」。チームでClaude Codeを使っていると、誰がどのモデルをどれだけ使ったかが見えなくなりがちです。LiteLLMのダッシュボードで全部のリクエストが可視化されるのは、チームの管理者には本当に助かる機能です。
室谷MYUUUでも似たような課題があって・・・複数プロジェクトで使い始めると「どのプロジェクトがいくらAPIコストを使っているか」がブラックボックスになるんですよね。LiteLLMを間に挟むことでコストを一元管理できます。
テキトー教師2つ目が「モデルの柔軟な切り替え」。AWS BedrockやGoogle Vertex AIを使っている企業だと、セキュリティポリシー上、直接AnthropicのAPIを使えないケースがあります。
そういった企業環境でもClaude Codeが使えるようになる。
そういった企業環境でもClaude Codeが使えるようになる。
室谷3つ目が「非Anthropicモデルとの組み合わせ」ですね。LiteLLMを使えば、Claude CodeのUIを使いながらGeminiやGPT系のモデルを裏側で動かせる。
コスト削減目的で特定のタスクは安いモデルに流す、という使い方もできます。
コスト削減目的で特定のタスクは安いモデルに流す、という使い方もできます。
テキトー教師ただ、ここで正直に言っておかないといけないのが、Anthropic公式のドキュメントにもこう書かれています——「LiteLLMはサードパーティのプロキシサービスです。AnthropicはLiteLLMのセキュリティまたは機能を推奨、保守、または監査していません」と。
室谷その注意書きは大事ですね。公式が保証しているわけではない、という前提でメリット・デメリットを理解した上で使う必要があります。
LiteLLMのインストールと基本セットアップ
室谷では実際の設定方法に入りましょう。まず環境の前提から。
テキトー教師前提条件はシンプルです。Claude Codeが最新バージョンになっていること、そしてLiteLLM Proxy Serverをデプロイしてアクセスできること。
それだけです。
それだけです。
室谷インストールはuvを使うのがスマートですね。
uv tool install "litellm[proxy]"
テキトー教師pipでも入ります。
pip install "litellm[proxy]"
室谷重要なのが、インストール時のバージョン指定です。公式ドキュメントでも明確に警告が出ていて、**LiteLLM PyPIのバージョン1.82.7と1.82.8は認証情報を盗むマルウェアに汚染されていました。
** このバージョンは絶対にインストールしないでください。
** このバージョンは絶対にインストールしないでください。
テキトー教師これ、講座でも真っ先に伝えるようにしています。インストール後に
litellm --version でバージョンを確認して、もしこの2つのバージョンに当たっていたらすぐにアンインストールして認証情報をローテーションする必要があります。
室谷インストールが終わったら、設定ファイルを作ります。最小構成はこんな感じです。
# config.yaml
model_list:
- model_name: claude-sonnet-4-5
litellm_params:
model: anthropic/claude-sonnet-4-5
api_key: os.environ/ANTHROPIC_API_KEY
テキトー教師これがベースで、あとはプロバイダーを変えるだけです。OpenAIを使いたければこうなります。
model_list:
- model_name: gpt-4o
litellm_params:
model: openai/gpt-4o
api_key: os.environ/OPENAI_API_KEY
室谷設定ファイルができたらプロキシを起動します。
# マスターキーを設定してから起動
export LITELLM_MASTER_KEY="sk-your-master-key-here"
litellm --config /path/to/config.yaml
テキトー教師デフォルトでは
http://0.0.0.0:4000 で起動します。ブラウザで http://localhost:4000/ui にアクセスすると、ダッシュボードが開きます。
室谷あとはClaude Codeにプロキシのアドレスを教えてあげればOKです。
export ANTHROPIC_BASE_URL="http://localhost:4000"
export ANTHROPIC_AUTH_TOKEN="sk-your-master-key-here"
claude
テキトー教師たったこれだけです。あとは普通にClaudeとして使えます。
裏側でLiteLLMが中継しているだけなので、Claude Codeの使い勝手は変わりません。
裏側でLiteLLMが中継しているだけなので、Claude Codeの使い勝手は変わりません。
統合エンドポイントとパススルーエンドポイントの違い

室谷ここ、ちょっと混乱しやすいポイントなんですよね。LiteLLMのエンドポイントの設定方法が複数あって。
テキトー教師整理すると2種類あります。「統合エンドポイント」と「パススルーエンドポイント」です。
室谷統合エンドポイントはAnthropicが公式推奨している方式で、こういう設定です。
export ANTHROPIC_BASE_URL=https://litellm-server:4000
テキトー教師このやり方の利点がロードバランシング、フェイルオーバー、コスト追跡の一貫したサポートです。複数のモデルやプロバイダーを管理するなら基本的にこちらを使うのがいいですね。
室谷パススルーエンドポイントは、特定プロバイダーをそのまま通したい場合に使います。例えばAmazon Bedrockをそのまま通す場合はこう。
export ANTHROPIC_BEDROCK_BASE_URL=https://litellm-server:4000/bedrock
export CLAUDE_CODE_SKIP_BEDROCK_AUTH=1
export CLAUDE_CODE_USE_BEDROCK=1
テキトー教師Google Vertex AIの場合はこうなります。
export ANTHROPIC_VERTEX_BASE_URL=https://litellm-server:4000/vertex_ai/v1
export ANTHROPIC_VERTEX_PROJECT_ID=your-gcp-project-id
export CLAUDE_CODE_SKIP_VERTEX_AUTH=1
export CLAUDE_CODE_USE_VERTEX=1
export CLOUD_ML_REGION=us-east5
室谷MYUUUのケースで言うと、Bedrockを使っている案件では
CLAUDE_CODE_USE_BEDROCK=1 を設定するパターンが多いですね。企業のセキュリティポリシーで「データをAWSのリージョン内で完結させたい」という要件があるときに有効です。
テキトー教師ここで一つ補足しておくと、
これを設定しておくと、その問題を回避できます。
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 という環境変数も重要です。Anthropic Messages形式をBedrock経由で使う場合、Claude Codeが試験的なベータ機能を有効にしようとして失敗することがあります。これを設定しておくと、その問題を回避できます。
非AnthropicモデルをClaude Codeで動かす(litellm proxy gemini / openai対応)

室谷これが一番ユニークな使い方ですね。Claude CodeのインターフェースでGeminiやGPTを動かす、という。
テキトー教師コミュニティのメンバーさんからも「Claude Codeって便利なんだけど、コストが高いタスクは安いモデルで処理したい」という声をよく聞きます。LiteLLMはその橋渡しができる。
室谷設定はシンプルです。config.yamlに複数モデルを並べるだけ。
model_list:
- model_name: claude-sonnet-4-5
litellm_params:
model: anthropic/claude-sonnet-4-5
api_key: os.environ/ANTHROPIC_API_KEY
- model_name: gemini-flash
litellm_params:
model: gemini/gemini-2.5-flash
api_key: os.environ/GOOGLE_API_KEY
- model_name: gpt-4o
litellm_params:
model: openai/gpt-4o
api_key: os.environ/OPENAI_API_KEY
テキトー教師起動後は
--model フラグで切り替えられます。claude --model gemini-flash
claude --model gpt-4o
claude --model claude-sonnet-4-5
室谷これは実際かなり便利で・・・単純なコードのリファクタリングはGeminiで流して、複雑なアーキテクチャ設計はClaude Sonnetに任せる、みたいな使い分けができます。
テキトー教師ただ実務的には、非Anthropicモデルを使ったときに一部の機能が制限される場合があることを知っておいたほうがいいです。Claude Codeが持っているツール呼び出しや、特定のbetaヘッダーが必要な機能は、モデルが対応していなければ当然動かないので。
室谷「claude code litellm invalid beta flag」というエラーが出るケースがそれですね。LiteLLMが
anthropic-beta ヘッダーを正しく転送していないか、接続先のモデルがそのbeta機能に対応していない場合に発生します。
テキトー教師この場合の対処法が
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 の設定です。試験的なbeta機能を無効にすることで、エラーを回避できます。OllamaやローカルLLMとの連携(claude code litellm ollama)
室谷OllamaとLiteLLMを組み合わせると、完全にローカルで動くClaude Code環境が作れます。これは面白い使い方で・・・
テキトー教師プライバシーを重視する案件、あるいはインターネット接続できない環境でコーディング支援をしたい、という場合に有効ですね。
室谷設定はこうなります。まずOllamaを起動して、ローカルにモデルを持ってきます。
# OllamaのインストールはOllamaの公式サイトから
ollama pull llama3.3
テキトー教師続いてLiteLLMのconfig.yamlにOllamaのモデルを追加します。
model_list:
- model_name: llama3.3
litellm_params:
model: ollama/llama3.3
api_base: http://localhost:11434
室谷あとはClaude CodeをLiteLLM経由で動かせばOKです。
export ANTHROPIC_BASE_URL="http://localhost:4000"
export ANTHROPIC_AUTH_TOKEN="sk-your-key"
claude --model llama3.3
テキトー教師vLLMを使っているケースも同様です。vLLMはOpenAI互換APIを提供しているので、LiteLLMで
openai/ プレフィックスをつけて設定できます。model_list:
- model_name: my-local-model
litellm_params:
model: openai/meta-llama/Llama-3.3-70B-Instruct
api_base: http://localhost:8000/v1
api_key: none
室谷ローカルモデルの精度はClaudeやGPTには及ばないですが、内部文書や機密コードを扱う場面では選択肢として十分検討に値します。MYUUUでも一部の顧客案件でオンプレ要件があり、ローカルLLM連携を検討したことがあります。
Claude Code Maxサブスクリプションとの組み合わせ
室谷これはかなり実用的なユースケースで、チームでClaude Maxのサブスクを持っていて、それをLiteLLMで管理したいというパターン。
テキトー教師.AIのコミュニティでClaude Maxを使っている企業が増えてきて、「チームメンバーへの権限管理をどうするか」という相談を受けることが増えました。LiteLLMのバーチャルキー機能がその答えになります。
室谷仕組みとしては、
forward_client_headers_to_llm_api: true という設定を使って、ユーザーのOAuthトークンをLiteLLMがAnthropicのAPIにそのまま転送する形です。# config.yaml
general_settings:
forward_client_headers_to_llm_api: true
テキトー教師これによって、各ユーザーが自分のMaxサブスクリプションで認証しつつ、LiteLLMのダッシュボードでチーム全体の使用状況が追跡できるようになります。
室谷バーチャルキーの作り方はダッシュボードから。
http://localhost:4000/uiを開く- 「Virtual Keys」セクションで「Create New Key」をクリック
- キー名と許可するモデルを設定
- 生成されたキーをコピー
テキトー教師クライアント側の設定はこうなります。
export ANTHROPIC_BASE_URL="http://localhost:4000"
export ANTHROPIC_MODEL="claude-sonnet-4-5"
export ANTHROPIC_CUSTOM_HEADERS="x-litellm-api-key: sk-virtual-key-here"
室谷ANTHROPIC_CUSTOM_HEADERS というのが味噌で、MCPのOAuth認証が必要な場面では Authorization ヘッダーがOAuth用に使われてしまうので、LiteLLMへの認証は x-litellm-api-key という別ヘッダーで渡す設計になっています。
テキトー教師ダッシュボードでは予算管理もできます。バーチャルキー作成時に
max_budget を設定することで、月あたりの使用上限を個人や部署単位で設定できます。
室谷月あたり$100まで、みたいな上限を個人や部署単位で設定できる。経営者的にはこれが一番嬉しい機能ですね。
無制限に使われて請求が爆発するリスクを管理できます。
無制限に使われて請求が爆発するリスクを管理できます。
OpenRouterとの連携(claude code litellm openrouter)
室谷OpenRouterを使うパターンも紹介しておきましょう。OpenRouterは複数のAIプロバイダーへのAPIアクセスを一本化したサービスで、これとLiteLLMを組み合わせると相当柔軟な構成が作れます。
テキトー教師OpenRouter単体でもClaude Codeのプロキシとして使えますが、LiteLLMを組み合わせることでダッシュボードでの管理や予算管理が加わります。
室谷設定はこうです。
model_list:
- model_name: claude-sonnet-openrouter
litellm_params:
model: openrouter/anthropic/claude-sonnet-4-5
api_key: os.environ/OPENROUTER_API_KEY
api_base: https://openrouter.ai/api/v1
テキトー教師OpenRouterのAPIキーを持っていれば、100以上のモデルに同じ設定でアクセスできます。DeepSeekやQwenなどのコスパの高いモデルにも簡単にアクセスできるので、「claude code litellm deepseek」や「claude code litellm qwen」の組み合わせを試している人もいますね。
LiteLLMダッシュボードの使い方(使用状況・コスト管理)
室谷ダッシュボードの話をもう少し具体的にしましょう。LiteLLMを使う最大の実務的なメリットがここにあると思っています。
テキトー教師http://localhost:4000/ui を開くと、リクエストのログが全部見えます。具体的にはこういう情報が追跡できます。- どのモデルが使われたか
- トークン数(インプット/アウトプット)
- コスト(USD)
- レスポンスタイム
- エラーレート
室谷これが全部セッション単位で見えるんですよね。Claude Codeの各セッションに
X-Claude-Code-Session-Id というヘッダーが自動的に付与されていて、それを使ってセッションごとの集計ができる。
テキトー教師「あのエンジニアが昨日どのモデルをどれだけ使ったか」が分かるので、コスト最適化のPDCAが回せます。
室谷ロードバランシングの設定もできます。同じモデル名で複数のAPIキーを並べると、自動でラウンドロビン振り分けになります。
model_list:
- model_name: claude-sonnet-4-5
litellm_params:
model: anthropic/claude-sonnet-4-5
api_key: os.environ/ANTHROPIC_API_KEY_1
- model_name: claude-sonnet-4-5
litellm_params:
model: anthropic/claude-sonnet-4-5
api_key: os.environ/ANTHROPIC_API_KEY_2
テキトー教師同じモデル名を複数定義すると、LiteLLMが自動的にラウンドロビンで振り分けます。これでレート制限に引っかかるリスクが減ります。
MCPとLiteLLMの組み合わせ(claude code litellm mcp)
室谷MCPとLiteLLMの組み合わせも紹介しておきましょう。これ、.AIのコミュニティでも割とニッチな話題なんですが、実務で使えるシーンがあります。
テキトー教師MCPサーバーをClaude Code経由でLiteLLMに接続するパターンですね。通常の設定は特に変わりませんが、OAuth認証が必要なMCPサーバーを使う場合に注意が必要です。
室谷OAuthフローが動いている場面では
Authorization ヘッダーがOAuth用に占有されます。その場合、LiteLLMへの認証キーは x-litellm-api-key ヘッダーで渡す必要があります。export ANTHROPIC_CUSTOM_HEADERS="x-litellm-api-key: sk-your-virtual-key"
テキトー教師これを知らないとMCP経由でエラーが出て「なぜか認証が通らない」という状況になります。コミュニティのメンバーさんもここではまっている方が結構いるので、覚えておくといいですね。
よくあるエラーと対処法
室谷最後に、よくあるエラーパターンをまとめておきましょう。
テキトー教師「claude code litellm invalid beta flag」が一番よく見るエラーですね。これは先ほども触れましたが、解決策はシンプルです。
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
室谷もう一つよく見るのが、モデル名の不一致です。config.yamlで設定した
model_name と、claude --model で指定するモデル名が一致していないとエラーになります。
テキトー教師よくある問題と対処法をまとめるとこうなります。
| エラー・問題 | 原因 | 対処法 |
|---|---|---|
| invalid beta flag | betaヘッダー非対応 | CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 |
| 認証エラー(401) | APIキー or マスターキーの設定ミス | ANTHROPIC_AUTH_TOKEN の確認 |
| モデルが見つからない | モデル名の不一致 | config.yamlの model_name を確認 |
| MCPで認証エラー | Authorizationヘッダー競合 | x-litellm-api-key ヘッダーに切り替え |
| ポート競合 | 4000番ポートが使用中 | litellm --port 8080 で別ポートを指定 |
室谷バージョン関連のエラーも出ることがあります。先ほどの話と重なりますが、1.82.7と1.82.8は問答無用でアンインストールしてください。
それ以外のバージョンは基本的には問題ないですが、最新版を使うのが安全です。
それ以外のバージョンは基本的には問題ないですが、最新版を使うのが安全です。
pip install --upgrade litellm
テキトー教師Dockerで動かしている場合は、イメージのタグを固定することをおすすめします。
latest タグで引いてきたら意図しないバージョンになっていた、というケースを防げます。FAQ:よくある質問
室谷Q&Aも入れておきましょう。
テキトー教師「LiteLLMは無料ですか?」という質問が多いです。
室谷オープンソース版は無料です。GitHubで公開されているコードをセルフホストで動かす分には費用はかかりません。
ただし、LiteLLM EnterpriseというSaaS版は有料で、SSOやコンプライアンス機能が付いています。
ただし、LiteLLM EnterpriseというSaaS版は有料で、SSOやコンプライアンス機能が付いています。
テキトー教師「Claude Codeのサブスクがあれば、追加のAPIキーは不要ですか?」という質問も来ます。
室谷これはケース・バイ・ケースです。Claude Maxサブスクリプションと組み合わせる場合(
非AnthropicモデルをLiteLLM経由で使う場合は、そのプロバイダーのAPIキーが別途必要です。
forward_client_headers_to_llm_api: true を使うパターン)は、Maxの認証情報がそのまま使われます。非AnthropicモデルをLiteLLM経由で使う場合は、そのプロバイダーのAPIキーが別途必要です。
テキトー教師「LiteLLMのセキュリティは大丈夫ですか?」も、特に企業から聞かれる質問です。
室谷AnthropicはLiteLLMのセキュリティを保証していない、という公式スタンスを明確にしています。使う場合は自社のリスク判断の上で、という位置付けです。
バージョン管理と認証情報の管理をしっかりやれば、実用上は問題なく使えています。MYUUUでもいくつかの案件で使っていますが、今のところ大きな問題はないですね。
バージョン管理と認証情報の管理をしっかりやれば、実用上は問題なく使えています。MYUUUでもいくつかの案件で使っていますが、今のところ大きな問題はないですね。
まとめ
室谷改めてまとめると、Claude CodeとLiteLLMの組み合わせで実現できることは4つです。
- コスト・使用状況の可視化: チームのAPIコストをダッシュボードで一元管理
- 非AnthropicモデルへのアクセスをClaude CodeのUIから: Gemini、GPT、Ollama、DeepSeekなど
- 企業環境での活用: AWS Bedrock、Google Vertex AI経由でのセキュアなアクセス
- チームへの権限管理: バーチャルキーで個人・部署ごとに予算上限を設定
テキトー教師個人ユーザーには「非Anthropicモデルとのコスト最適化」、チーム・企業ユーザーには「コスト管理とセキュリティ」が主なメリットになりますね。Claude Code単体で十分な方にはLiteLLMは不要ですが、チームで本格的に使い始めたときに一気に価値が出てくる仕組みです。
室谷最初の設定が少し手間ですが、一度動かしてしまえばあとは透過的です。Claude Codeの使い勝手は何も変わらないまま、管理機能が追加されるイメージです。
テキトー教師まず手元で動かしてみて感覚をつかむのがおすすめです。
uv tool install "litellm[proxy]" からスタートして、config.yamlを1ファイル作るだけなので、今日の記事を見ながらやれば1時間もあれば基本構成が動くはずです。