これは、なにをしたくて書いたもの?
こちらのエントリーで、LiteLLM Proxy(LLM Gateway)を使ってOllamaへのプロキシサーバーを作ることを試してみました。
LiteLLM Proxy(LLM Gateway)でOllamaへのプロキシサーバーを立ててみる - CLOVER🍀
今回は、GitHub Copilotへのプロキシサーバーを作り、Claude Codeから使ってみたいと思います。
Claude CodeからGitHub Copilotのモデルを使う?
簡単に言うと、LiteLLMのモデルプロバイダーをGitHub Copilotとして
Claude Codeから使ってみましょう、という話です。
Claude Code Quickstart | liteLLM
環境
今回の環境はこちら。
$ claude --version 2.1.74 (Claude Code) $ python3 --version Python 3.12.3 $ uv --version uv 0.10.9
GitHub Copilot向けのLiteLLM Proxy(LLM Gateway)を作る
まずはGitHub CopilotをモデルプロバイダーとしたLiteLLM Proxy(LLM Gateway)を作りましょう。
uvプロジェクトを作成して、LiteLLM Proxy(LLM Gateway)を追加。
$ uv init --vcs none . $ uv add 'litellm[proxy]'
バージョン。
$ uv run litellm --version LiteLLM: Current Version = 1.82.1
依存関係など。
pyproject.toml
[project] name = "llmproxy-copilot" version = "0.1.0" description = "Add your description here" readme = "README.md" requires-python = ">=3.12" dependencies = [ "litellm[proxy]>=1.82.1", ]
$ uv pip list Package Version ------------------------- ------------ aiohappyeyeballs 2.6.1 aiohttp 3.13.3 aiosignal 1.4.0 annotated-doc 0.0.4 annotated-types 0.7.0 anyio 4.12.1 apscheduler 3.11.2 attrs 25.4.0 azure-core 1.38.2 azure-identity 1.25.2 azure-storage-blob 12.28.0 backoff 2.2.1 boto3 1.42.66 botocore 1.42.66 certifi 2026.2.25 cffi 2.0.0 charset-normalizer 3.4.5 click 8.3.1 croniter 6.0.0 cryptography 46.0.5 distro 1.9.0 dnspython 2.8.0 email-validator 2.3.0 fastapi 0.135.1 fastapi-sso 0.16.0 fastuuid 0.14.0 filelock 3.25.2 frozenlist 1.8.0 fsspec 2026.2.0 gunicorn 23.0.0 h11 0.16.0 hf-xet 1.4.0 httpcore 1.0.9 httpx 0.28.1 httpx-sse 0.4.3 huggingface-hub 1.6.0 idna 3.11 importlib-metadata 8.7.1 isodate 0.7.2 jinja2 3.1.6 jiter 0.13.0 jmespath 1.1.0 jsonschema 4.26.0 jsonschema-specifications 2025.9.1 litellm 1.82.1 litellm-enterprise 0.1.34 litellm-proxy-extras 0.4.54 markdown-it-py 4.0.0 markupsafe 3.0.3 mcp 1.26.0 mdurl 0.1.2 msal 1.35.1 msal-extensions 1.3.1 multidict 6.7.1 oauthlib 3.3.1 openai 2.26.0 orjson 3.11.7 packaging 26.0 polars 1.38.1 polars-runtime-32 1.38.1 propcache 0.4.1 pycparser 3.0 pydantic 2.12.5 pydantic-core 2.41.5 pydantic-settings 2.13.1 pygments 2.19.2 pyjwt 2.11.0 pynacl 1.6.2 pyroscope-io 0.8.16 python-dateutil 2.9.0.post0 python-dotenv 1.2.2 python-multipart 0.0.22 pytz 2026.1.post1 pyyaml 6.0.3 redis 7.3.0 referencing 0.37.0 regex 2026.2.28 requests 2.32.5 rich 13.9.4 rpds-py 0.30.0 rq 2.7.0 s3transfer 0.16.0 shellingham 1.5.4 six 1.17.0 sniffio 1.3.1 soundfile 0.12.1 sse-starlette 3.3.2 starlette 0.52.1 tiktoken 0.12.0 tokenizers 0.22.2 tqdm 4.67.3 typer 0.24.1 typing-extensions 4.15.0 typing-inspection 0.4.2 tzlocal 5.3.1 urllib3 2.6.3 uvicorn 0.41.0 uvloop 0.21.0 websockets 15.0.1 yarl 1.23.0 zipp 3.23.0
設定ファイルはこんな感じで用意。
config.yaml
model_list: - model_name: claude-haiku-4.5 litellm_params: model: github_copilot/claude-haiku-4.5 - model_name: gpt-5-mini litellm_params: model: github_copilot/gpt-5-mini - model_name: gpt-4.1 litellm_params: model: github_copilot/gpt-4.1 - model_name: gpt-4o litellm_params: model: github_copilot/gpt-4o litellm_settings: master_key: sk-1234
LiteLLM Proxy(LLM Gateway)向けのGitHub Copilotモデルプロバイダーのページを見ても、今ひとつモデル名のルールが
わからないのですが。
Visual Studio Codeのモデルを選択するところから、「Other Models」 → 「Manage Models」と選択して

モデル名にフォーカスして確認できる名前を使うのがよさそうですね。

モデル名のprefixはgithub_copilot/です。
Provider Route on LiteLLM: github_copilot/
またマスターキーの設定が必要です。
litellm_settings: master_key: sk-1234
では、起動してみます。
$ uv run litellm --config config.yaml
起動すると認証を求められるので、https://github.com/login/deviceにアクセスしてコードを入力しましょう。
LiteLLM: Proxy initialized with Config, Set models:
claude-haiku-4.5
gpt-5-mini
gpt-4.1
gpt-4o
11:01:03 - LiteLLM:WARNING: authenticator.py:149 - Error reading API endpoint from file: [Errno 2] No such file or directory: '/home/user/.config/litellm/github_copilot/api-key.json'
11:01:03 - LiteLLM:WARNING: authenticator.py:105 - No API key file found or error opening file
11:01:03 - LiteLLM:WARNING: authenticator.py:60 - No existing access token found or error reading file
Please visit https://github.com/login/device and enter code XXXX-XXXX to authenticate.
起動しました。
INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:4000 (Press CTRL+C to quit)
これで準備は完了です。
Claude Codeから使う
では、Claude Codeから使ってみましょう。こちらのドキュメントに従います。
Claude Code Quickstart | liteLLM
まずは環境変数を設定します。ANTHROPIC_BASE_URLでアクセス先をLiteLLM Proxy(LLM Gateway)に変更し、
認証トークンはマスターキーに指定します。
$ export ANTHROPIC_BASE_URL=http://0.0.0.0:4000 $ export ANTHROPIC_AUTH_TOKEN=sk-1234
そしてこのまま使おうとすると
$ claude
デフォルトのClaude Sonnet 4.6を使おうとして失敗します。
❯ 自己紹介してください ⎿ API Error: 400 {"error":{"message":"400: {'error': 'anthropic_messages: Invalid model name passed in model=claude-sonnet-4-6. Call `/v1/models` to view available models for your key.'}","type":"None","param":"None","code":"400"}}
使うモデルを指定して起動しましょう。
$ claude --model gpt-5-mini
❯ 自己紹介してください
● はじめまして。AIアシスタントです。簡単に自己紹介します。
- できること
- 質問への回答・情報検索の補助(知識に基づく説明・要約)
- 文章作成・校正・要約(メール、レポート、企画書など)
- コード作成・レビュー・デバッグ(多くの言語に対応)
- 翻訳(日本語⇄英語ほか)と語学学習のサポート
- アイデア出し、設計・計画作成、学習支援、タスク整理
- 手順説明や問題解決のためのステップ提示
- 制約と注意点
- 知識は主に2024年6月までに学んだ内容が中心です(最新情報は確認が必要な場合があります)。
- 実際の物理操作や外部サービスへの直接アクセスはできません(必要なら手順やコマンドは提示します)。
- 個人情報や機密情報は送らないでください。誤情報を出すことがあるため重要な内容は必ず検証してください。
- 対応言語:日本語・英語を中心に多数対応します。
何を手伝いしましょうか?(例:「履歴書を添削して」「PythonでAPIクライアントを書いて」「プレゼン用に短いスライド原稿を作って」など)
/modelコマンドでモデルを指定してもOKです。Claude Haiku 4.5に切り替えてみます。
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ❯ /model claude-haiku-4.5 ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ❯ /model claude-haiku-4.5 ⎿ Set model to claude-haiku-4.5
ただ、Claude Haiku 4.5ではthinkingをサポートしていないようで、実行に失敗します…。
❯ 自己紹介してください ⎿ API Error: 400 {"error":{"message":"litellm.UnsupportedParamsError: github_copilot does not support parameters: ['thinking'], for model=claude-haiku-4.5. To drop these, set `litellm.drop_params=True` or for proxy:\n\n`litellm_settings:\n drop_params: true`\n. \n If you want to use these params dynamically send allowed_openai_params=['thinking'] in your request.. Received Model Group=claude-haiku-4.5\nAvailable Model Group Fallbacks=None","type":"None","param":null,"code":"400"}}
Claude Haiku 4.5を使う場合は、Alt+tでthinkingを無効にしましょう。
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── Toggle thinking mode Enable or disable thinking for this session. 1. Enabled Claude will think before responding ❯ 2. Disabled ✔ Claude will respond without extended thinking Enter to confirm · Esc to exit
Interactive mode - Claude Code Docs
これでClaude Haiku 4.5でも使えます。
❯ 自己紹介してください ● こんにちは。Claude Haikuです。簡潔な自己紹介をします。 基本情報 - Anthropic社が開発したAIアシスタント(Claude Haikuモデル) - 軽量で高速な処理が特徴です 得意なこと - プログラミング支援(コード作成・デバッグ・レビュー) - 文章作成・編集・要約 - 質問への回答と情報検索 - ファイル操作とコード分析 - 日本語を含む多言語対応 できないこと - インターネット接続(リアルタイム情報は別途必要) - ファイルシステムへの直接的な実行 - 2024年6月以降の新しい情報 その他 - 誤った情報を提供する可能性があるため、重要な内容は検証してください - 個人情報や機密情報は共有しないでください 何かお手伝いできることがあればお知らせください!
モデルについては、環境変数で指定してもOKです。
$ export ANTHROPIC_DEFAULT_SONNET_MODEL=gpt-5-mini $ export ANTHROPIC_DEFAULT_HAIKU_MODEL=gpt-5-mini $ export ANTHROPIC_DEFAULT_OPUS_MODEL=gpt-5-mini $ claude
ただ、1度/modelで指定するとそのモデルを覚えてしまうようなので、/modelコマンドは使わずオプションか環境変数で
指定するのがよさそうです。
リクエストの利用状況はGitHubのWebページで見るか

https://github.com/settings/copilot/features
Visual Studio Codeで見ましょう、という感じでしょうね。

こんなところでしょうか。
おわりに
LiteLLM Proxy(LLM Gateway)を使って、Claude CodeからGitHub Copilotのモデルを使ってみました。
モデル名の調べ方がわからなかったり、マスターキーが必須だと思っていなかったり、実は使えないモデルがあったりと
意外とハマりましたが、1度Ollamaで通していたからかそれ以外はそこまで困りませんでした。
リクエストの消費はとても早いので、どこまで使うかは微妙ですけどね。