ドキュメント

ドキュメント

GitHub Copilot CLI

Copilot CLIのBYOK利用では、GitHubの公式ドキュメントによると、環境変数4つを設定すればGitHubへのログインは不要です。Kunavoを指定すると、エージェントはAI Creditsではなく前払い残高で動作します。一方、/delegate、GitHub MCPサーバー、GitHub Code Searchは引き続きGitHubへのログインが必要です。

4つの環境変数 — COPILOT_PROVIDER_BASE_URL、COPILOT_PROVIDER_TYPE、COPILOT_PROVIDER_API_KEY、COPILOT_MODEL — でCopilot CLIを独自エンドポイントに移行できます。GitHubの説明では、BYOKにGitHubログインは不要です。

copilot の起動元となるシェル
# Set before you start Copilot CLI. Variable names and order are GitHub's;
# COPILOT_PROVIDER_BASE_URL and COPILOT_MODEL are the two marked Required.
export COPILOT_PROVIDER_BASE_URL=https://api.kunavo.com/v1   # see the note below
export COPILOT_PROVIDER_TYPE=openai                          # the default, shown for clarity
export COPILOT_PROVIDER_API_KEY=sk-kn-...
export COPILOT_MODEL=claude-sonnet-5

copilot
GitHub は Copilot CLI がどのパスを追加するか明記していないため、上記の /v1 は具体例であり、ルールではありません。 BYOK ページでは、このフィールドを「モデルプロバイダーの API エンドポイントのベース URL」とだけ定義しており、掲載例は両方の形式を示しています。リモートの OpenAI 互換エンドポイントは https://api.openai.com/v1、Ollama と Anthropic はベース URL のみです。このページでは、Kunavo に該当するリモートの OpenAI 互換形式を使用します。リクエストが 404 で返る場合、サフィックスが二重になっています。これを外して https://api.kunavo.com を使用してください。401 は URL ではなくキーであり、下の curl で両者を見分けてから CLI の問題を調べられます。
残っている~/.copilot/providers.jsonが、これらの環境変数より優先されている可能性があります。GitHubの設定ディレクトリに関するリファレンスによると、このファイルにプロバイダーまたはモデルの定義がある場合、レガシーとされるCOPILOT_PROVIDER_*環境変数よりも優先されます。しかし、BYOKの設定手順ではこのファイルに触れていません。エクスポートしたベースURLがCLIに反映されない場合は、まずこのファイルを確認してください。同リファレンスでは、ファイルの形式をprovidersとmodelsのキーを持つJSONオブジェクトとのみ説明しており、スキーマは公開していません。そのため、ここでは設定例を示していません。詳しくはGitHubが案内するcopilot help providersを参照してください。
以下の設定は、下記の日付時点のGitHub公式ドキュメントをもとにしています。KunavoはCopilot CLIからエンドポイントへの接続を実行時にテストしていません。セッション、ストリーミングによる応答、ツールの往復処理のいずれも未テストであり、このページで取り上げる他のクライアントも同様です。設定手順の公開はテスト結果ではありません。GitHubによると、BYOKモデルはツール呼び出しとストリーミングに対応している必要があり、非対応の場合はエラーが返ります。そのため、最初のタスクには単なる挨拶ではなく、ファイルを操作するものを選んでください。
Kunavoは埋め込み、テキスト読み上げ、音声文字起こしのモデルを提供していないため、このエンドポイントで対応できるのはチャットの応答のみです。GitHub Code Search、GitHub MCPサーバー、/delegateはGitHub側の機能であり、BYOKプロバイダーでは代替できません。GitHubのドキュメントによると、ログインせずにこれらの機能を使うことはできません。ログインしたうえでプロバイダーも設定すれば、引き続き利用できます。
まだキーをお持ちですか?Kunavoアカウントを作成し、キーを作成します(sk-kn-で始まります)。$10からクレジットを追加すると、呼び出しはその残高から支払われ、失敗した呼び出しは課金されません。ダッシュボードを開くと、GitHub Copilot CLI設定が表示されます。

手順

  1. /app/keys でキーを作成してコピーします。キーは一度だけ表示されます。
  2. 古い~/.copilot/providers.json(またはCOPILOT_PROVIDERS_CONFIGが指すファイル)がないか確認してください。そこにプロバイダーまたはモデルの定義があると、手順3の設定すべてより優先されます。
  3. 上記のとおり、COPILOT_PROVIDER_BASE_URL、COPILOT_PROVIDER_API_KEY、COPILOT_MODEL を環境変数として設定してください。COPILOT_PROVIDER_TYPE のデフォルト値は openai です。GitHub はこれを「その他の OpenAI Chat Completions API 互換エンドポイントすべて」に対応すると説明しています。
  4. 同じシェルからcopilotを起動します。環境変数は起動時に読み込まれるため、それ以前に開いたターミナルでは古い値が使われます。
  5. ファイルを読み取り、編集するタスクを実行させてください。Copilot CLIが必要とするのは、モデルによるツール呼び出しとストリーミングへの対応です。最初の実行で両方を試せば、挨拶だけの場合より多くのことを確認できます。2つのIDを比較する場合は、--modelを使うと1回の実行に限りCOPILOT_MODELを上書きできます。

GitHub「GitHub Copilot CLIで独自のLLMモデルを使用する」で2026年9月21日に確認しました。サードパーティの設定は変更されます。ここに記載されたフィールド名が表示内容と一致しなくなった場合は、このページではなく、そのページを正しい情報源としてください。

これが短い概要です。完全な手順 — モデルの選択、実際のセッション費用、失敗するケース — はCopilot CLIとClaude Codeの比較 — BYOKの境界と2つの請求にあります。

クライアントをデバッグする前に確認すること

1回のリクエストで、失敗の原因がエンドポイント、キー、設定ファイルのどれかを特定できます。これがJSONを返すなら、同じベースURLとキーがGitHub Copilot CLIで機能します。

# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
  -H "Authorization: Bearer sk-kn-..."

フィールドに入力するモデルID

すべてのテキストモデルにはモデルIDでアクセスできます。現在の一覧はGET /v1/models、価格付きのカタログはモデルページにあります。料金は100万トークンあたりのUSDで、入力 / 出力の順です。

モデル IDKunavo 入力 / 出力GitHub Copilot CLIでの位置付け
claude-sonnet-5$1.40 / $7.00ファイルを編集するセッションの標準モデル
claude-opus-5$3.50 / $17.50失敗のコストが大きい変更を計画する
claude-haiku-4-5$0.70 / $3.50トリアージ、要約、終日繰り返す処理など、安価に済ませたい応答
gpt-5-6-sol$2.00 / $12.00同じキーと同じベースURLで、別のモデル系列から意見を得る
請求は月額料金なしの前払い残高からトークン単位で行われます — 請求を参照してください。繰り返し送られるコンテキスト(エディターやチャットクライアントが送る内容の大半)では、プロンプトキャッシュのほうがモデル選択より請求額を大きく左右します。

別の方法: COPILOT_PROVIDER_TYPE=anthropic

GitHubのドキュメントでは3種類のプロバイダータイプが示されています。Kunavoはそのうち2つのワイヤ形式に対応しています。/v1/chat/completionsはopenai用、/v1/messagesはanthropic用です。GitHubのページにあるAnthropicの例では、4つの環境変数をエクスポートし、ベースURLにはオリジンのみのhttps://api.anthropic.comを指定しています。

  1. COPILOT_PROVIDER_TYPE=anthropic
  2. COPILOT_PROVIDER_BASE_URL — GitHubの例に倣うと、サフィックスなしのhttps://api.kunavo.comです。Anthropic独自のルートはそのオリジン配下の/v1/messagesにあり、Kunavoも同じ構成です。ただし、上記と同じ注意点があります。GitHubが示しているのは例であり、規則ではありません。
  3. COPILOT_PROVIDER_API_KEY — お使いのsk-kn-キーです。KunavoのMessagesエンドポイントはx-api-keyとAuthorization: Bearerのどちらも受け付けるため、CLIがどちらのヘッダーを選んでも認識されます。
  4. COPILOT_MODEL — プロバイダーが期待するIDです。GitHubの例ではハイフン付きのAnthropic形式の表記を使っていますが、同社の対応モデル一覧では同じ系列をドット付きで表記しています。BYOKではIDがエンドポイントに渡されるため、上の表にある表記を使ってください。

それでもこのページでopenaiタイプを先に説明する理由は、GitHubのドキュメントにAnthropicのBYOK経路がcache_control、anthropic-beta、または特定のanthropic-versionのどれを転送するか記載がないためです。コンテキストの反復は料金に影響します。プロンプトキャッシュを参照してください。文書化されていない点を、このページで推測して埋めることはできません。openaiタイプにはこの不明点がないため、具体的な設定ブロックを掲載しています。

よくある質問

GitHub Copilot CLIをカスタムAPIエンドポイントに接続するにはどうすればよいですか?

CLIを起動する前に環境変数を設定します。GitHubのBYOKページでは、COPILOT_PROVIDER_BASE_URLとCOPILOT_MODELの2つが必須とされています。また、認証が必要なエンドポイントではCOPILOT_PROVIDER_API_KEYも設定します。COPILOT_PROVIDER_TYPEのデフォルトはopenaiです。GitHubによると、これはOpenAI、Ollama、vLLM、Foundry Local、およびその他すべてのOpenAI Chat Completions API互換エンドポイントに対応します。他の値はazureとanthropicです。GitHubの別のドキュメントに記載されている注意点として、~/.copilot/providers.jsonにプロバイダーまたはモデルの定義があると、これらすべての環境変数よりも優先されます。

Copilot CLIのベースURLの末尾に /v1 は必要ですか?

GitHubのドキュメントでは明確になっていません。このフィールドは「モデルプロバイダーAPIエンドポイントのベースURL」とのみ定義されています。また、同ページの例には両方の形式があります。リモートのOpenAI互換例は https://api.openai.com/v1 ですが、OllamaとAnthropicの例はオリジンのみです。OpenAI互換エンドポイントの場合は、まずGitHubがそのケースで示す形式、https://api.kunavo.com/v1 を使ってください。リクエストが401ではなく404で失敗する場合は、サフィックスが二重になっているため、削除してください。404ならURL、401ならキーに問題があります。同じベースURLに対して単純なcurlを実行すれば、CLIの問題を調べる前に切り分けられます。

GitHub Copilot CLIのBYOKにGitHubアカウントは必要ですか?

いいえ。GitHubの認証に関するドキュメントによると、Copilot CLIで独自のLLMプロバイダーAPIキーを設定した場合、GitHub認証は不要で、CLIは設定したプロバイダーに直接接続します。この場合、/delegate、GitHub MCPサーバー、GitHub Code Searchの3つの機能は利用できません。GitHubにサインインしながらプロバイダーも設定すれば、両方を利用できます。またGitHubでは、CLIからGitHubサーバーに一切接続させない環境向けに COPILOT_OFFLINE=true も案内しています。ただし、プロバイダーがローカルの場合に限ってネットワーク接続を隔離できます。リモートのベースURLには、プロンプトとコードのコンテキストが引き続き送信されるためです。

GitHub Copilot CLIはKunavoのエンドポイントに対してテスト済みですか?

いいえ。このページの設定は、記載日現在のGitHub公式BYOKドキュメントをもとにしており、実行時の結果ではありません。セッション、ストリーミングによる応答、ツールの往復処理はいずれも未テストで、このページで取り上げる他のクライアントも同様です。GitHubによると、BYOKモデルはツール呼び出しとストリーミングに対応している必要があり、非対応の場合はエラーが返ります。まずはファイルを読み取り、編集するタスクを実行して、ご自身で確認してください。このページの記述ではなく、記録された請求額とCLIの動作を証拠として判断してください。