Skip to main content

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

Socialite などを使って認証したユーザーごとの GitHub トークンで Copilot CLI を実行する方法です。
Personal Access Token では Copilot Requests の権限が必要です。Socialite のトークンでも同様の要件になるはずです。 Socialite から使えるトークンを取得できない場合は、PAT を直接入力してもらう方式にします。
この方法は stdio モードでのみ利用できます。 TCP モードは Copilot CLI プロセスを起動したまま使うため、実行時に切り替えできません。 TCP モード(cli_url)で github_tokenuse_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_userfalse になります。 これにより CLI は保存済み OAuth トークンや gh CLI 認証を使わず、明示的に渡したトークンだけを使います。 明示的に use_logged_in_usertrue にすることもできます。
github_token なしで use_logged_in_userfalse にすると、--no-auto-login フラグが追加され、CLI は自動ログインを行いません。

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

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