OpenAI APIの従量課金を避けつつ、コードからLLMを呼びたい開発者にとって、Microsoft CopilotのWeb版をローカルAPIに変換する手法が注目を集めています。
この記事では、GitHubで公開されているWindows Copilot APIの仕組みと、セットアップから実際の呼び出し方までを整理します。
この記事でわかること
- Windows Copilot APIが解決する課題と動作の仕組み
- PythonライブラリとOpenAI互換サーバーの2つの使い方
- レート制限や同時リクエスト数など、運用上の制約
- GitHub Copilot向けの類似プロジェクトとの違い
LLM APIのコストが壁になる理由
アプリや自動化スクリプトにLLMを組み込むとき、OpenAIやAnthropicの公式APIは従量課金が前提です。プロトタイプ段階でも、試行回数が増えるほどコストが積み上がります。
一方、Microsoft Copilot(copilot.microsoft.com)はMicrosoftアカウントで無料利用できます。ただし公式のREST APIは提供されておらず、ブラウザのチャット画面からしか使えません。ここに「Web版CopilotをOpenAI互換APIとしてコードから呼べるようにする」というニーズが生まれています。
2026年6月、開発者のJaydeep氏がXでこの手法を紹介し、892ビューを記録しました(参考)。紹介先はGitHubのsums001/Windows-Copilot-APIで、公開から1週間ほどでスター数808件に達しています。
Windows Copilot APIとは
Windows Copilot APIは、Microsoft CopilotのWebチャットをリバースエンジニアリングし、OpenAI互換のREST APIとしてローカルで提供するPython製のOSSです。MITライセンスで公開されており、2026年6月19日にリポジトリが作成されました。
READMEには「Microsoft非公式プロジェクト。Microsoftの利用規約の範囲内で責任を持って使うこと」と明記されています。Microsoftの公式APIではなく、個人利用向けのブリッジツールとして位置づけられています。
動作の仕組み
仕組みは次のとおりです。
- Playwrightでブラウザを起動し、MicrosoftまたはGoogleアカウントでCopilotにサインインする
- セッション情報(Cookie・トークン)をローカルの
session/フォルダに保存する - 保存したセッションを使い、CopilotのWebSocket通信をHTTP APIに変換する
CopilotのチャットはCloudflareの保護下にあり、人間確認(cf_clearance Cookie)が必要です。ログイン時に自動で取得し、約30分で期限切れになると再認証が走ります。サーバーモードでは期限切れ時に503エラーを返し、ホスト側でpython -m copilot loginを再実行する設計です。
主な機能
Windows Copilot APIは2つの利用形態を持ちます。
Pythonライブラリとして直接呼び出す
サーバーを立てず、Pythonコードから直接Copilotに問い合わせられます。
from copilot import CopilotClient
client = CopilotClient()
reply = client.chat("Say hello in one short sentence.")
print(reply.text)
conversation_idを渡せば多ターン会話を継続でき、stream()でトークン単位のストリーミング出力にも対応しています。
OpenAI互換サーバーとして使う
python app.pyでローカルサーバーを起動すると、http://localhost:8000/v1でOpenAI形式のAPIが利用できます。公式のOpenAI Python SDKをそのまま使えます。
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="unused")
resp = client.chat.completions.create(
model="copilot",
messages=[{"role": "user", "content": "Hello!"}],
)
print(resp.choices[0].message.content)
提供エンドポイントは/v1/chat/completions(ストリーミング対応)と/v1/modelsの2つです。モデル名はcopilotの1種類のみで、Copilot側にモデル選択機能がないためです。
READMEのベンチマークによると、GPQA Diamond(198問の大学院レベル問題)で正答率40.9%を記録しており、GPT-4クラスの性能帯に位置づけられています。
セットアップ手順
動作要件はPython 3.9以上、Microsoftアカウント、Windows・macOS・Linuxのいずれかです。
git clone https://github.com/sums001/Windows-Copilot-API.git
cd Windows-Copilot-API
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
playwright install chromium
python -m copilot login
loginコマンドでブラウザが開き、サインイン完了後に自動で閉じます。初回ログイン時にCloudflareの人間確認とチャットトークンの取得が同時に行われ、以降はセッションが自動更新されます。
Dockerでも起動可能ですが、ログインはホスト側で事前に済ませ、session/フォルダをコンテナにマウントする必要があります。
料金
Windows Copilot API自体は無料のOSSです。バックエンドはMicrosoft Copilotの無料Web版を利用するため、OpenAI APIのような従量課金は発生しません。Microsoft Copilot Proなどの有料プランは不要で、通常のMicrosoftアカウントで動作します。
運用上の制約と注意点
無料で使える反面、本番サービスのバックエンドとして使うには制約があります。
レート制限 — デフォルトで1分あたり12リクエスト(RATE_LIMIT_RPM=12)、バースト4件(RATE_LIMIT_BURST=4)に制限されます。超過すると429エラーとRetry-Afterヘッダーが返ります。Microsoft側の公式上限は公開されていないため、開発者が自己設定した安全値です。
同時リクエストの直列化 — 1アカウントのCopilotソケットは並行処理に弱く、サーバーは内部ロックでリクエストを1件ずつ処理します。ストレステストでは同時4件まで成功、8件で502エラーが発生したと報告されています。
Cloudflare認証 — cf_clearance Cookieの有効期限は約30分。サーバーモードでは期限切れ時に503を返すため、定期的な再ログインが必要になる場合があります。データセンターIPやVPN経由では人間確認が厳しくなる傾向があります。
利用規約 — 非公式ツールのため、Microsoftの利用規約違反やアカウント停止のリスクがあります。個人の開発・検証用途に留めるのが妥当です。
類似ツールとの違い
LLMを無料または低コストでAPI化するOSSは他にも存在します。
| プロジェクト | 対象 | 特徴 |
|---|---|---|
| Windows Copilot API | Microsoft Copilot(Web版) | Python製、Playwright認証、localhost:8000 |
| copilot-api(ericc-ch) | GitHub Copilot | Node.js製、OpenAI/Anthropic両対応、Claude Code連携 |
Windows Copilot APIはMicrosoft Copilotの無料Web版を対象とし、GitHub Copilotのサブスクリプションは不要です。逆に、GitHub Copilot契約者向けのcopilot-apiはGitHub認証を使い、Claude CodeなどのツールをCopilotバックエンドで動かす用途に特化しています。
こんな用途向き
Windows Copilot APIが向くのは、次のようなケースです。
- ローカル開発中にLLM呼び出しを試したいが、API課金を避けたい
- 既存のOpenAI SDK互換ツールを、最小限の設定変更でCopilotに接続したい
- 匿名Copilotがブロックされる地域でも、サインイン済みセッション経由で利用したい
逆に、高スループットの本番APIや、SLAが保証された商用利用には向きません。個人ブリッジとして設計されており、並行処理やレート制限の壁が早い段階で来ます。
CopilotのWeb版をコードから呼べるようにするWindows Copilot APIは、LLM APIコストを抑えたい開発者にとって実用的な選択肢です。セットアップはログインを含めて数分で完了し、OpenAI SDK互換のエンドポイントがすぐ使えます。利用前に非公式ツールである点と、レート制限・Cloudflare認証の運用負荷を理解したうえで、個人開発の範囲で試すのがよいでしょう。