メインコンテンツへスキップ

認証するGitHubトークンの実行時切り替え

Socialite などを使って認証したユーザーごとの GitHub トークンで Copilot CLI を実行する方法です。
Personal Access Token では Copilot Requests の権限が必要です。Socialite のトークンでも同様の要件になるはずです。 Socialite から使えるトークンを取得できない場合は、PAT を直接入力してもらう方式にします。
この方法は stdio モードでのみ利用できます。 TCP モードは Copilot CLI プロセスを起動したまま使うため、実行時に切り替えできません。 TCP モード(cli_url)で github_token や use_logged_in_user を指定するとエラーになります。
下記の「セッションごとのGitHubトークン(v0.3.0+)」は TCP モードでも利用可能です。

github_token オプション

SDK の公式オプションです。トークンは環境変数 COPILOT_SDK_AUTH_TOKEN 経由で CLI に渡されます。

use_logged_in_user オプション

github_token を指定すると自動的に use_logged_in_user は false になります。 これにより CLI は保存済み OAuth トークンや gh CLI 認証を使わず、明示的に渡したトークンだけを使います。 明示的に use_logged_in_user を true にすることもできます。
github_token なしで use_logged_in_user を false にすると、--no-auto-login フラグが追加され、CLI は自動ログインを行いません。このとき環境変数トークン(COPILOT_GITHUB_TOKEN、GH_TOKEN、GITHUB_TOKEN)も無視されます。

セッションごとのGitHubトークン(v0.3.0+)

SessionConfig の gitHubToken フィールドを使うと、同一 CLI プロセス内でセッションごとに異なる GitHub トークンを指定できます(マルチテナント対応)。 このトークンは session.create JSON-RPC のパラメーターとして渡されるため、stdio モードと TCP モードの両方で利用可能です。CLI がすでに起動している TCP モードでも、セッション単位でトークンを切り替えられます。
TCP モードでの使用例:
クライアントレベルの github_token(CLI プロセス起動時のトークン)とは別に機能します。 セッション単位でユーザートークンを切り替えたい場合に使用してください。
最新情報は GitHub リポジトリ を参照してください。
最終更新日 2026年11月2日