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

Documentation Index

Fetch the complete documentation index at: https://kawax.biz/llms.txt

Use this file to discover all available pages before exploring further.

認証する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 Revolution\Copilot\Facades\Copilot;

$config = array_merge(
    config('copilot'),
    [
        'github_token' => $user->github_token,
    ]
);

$response = Copilot::useStdio($config)->run(prompt: '...');
Copilot::stop(); // 念のためユーザートークンを持ったクライアントを破棄

use_logged_in_user オプション

github_token を指定すると自動的に use_logged_in_userfalse になります。 これにより CLI は保存済み OAuth トークンや gh CLI 認証を使わず、明示的に渡したトークンだけを使います。 明示的に use_logged_in_usertrue にすることもできます。
$config = [
    'github_token' => $user->github_token,
    'use_logged_in_user' => true, // 明示的に有効化
];
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 モードでも、セッション単位でトークンを切り替えられます。
use Revolution\Copilot\Facades\Copilot;
use Revolution\Copilot\Types\SessionConfig;

$response = Copilot::run(
    prompt: '...',
    config: new SessionConfig(gitHubToken: $user->github_token),
);
TCP モードでの使用例:
// CLIサーバーは起動済み(TCPモード)
// セッションごとに異なるユーザートークンを渡せる
$response = Copilot::useTcp(url: 'tcp://127.0.0.1:12345')->run(
    prompt: '...',
    config: new SessionConfig(gitHubToken: $user->github_token),
);
クライアントレベルの github_token(CLI プロセス起動時のトークン)とは別に機能します。 セッション単位でユーザートークンを切り替えたい場合に使用してください。
最新情報は GitHub リポジトリ を参照してください。
Last modified on April 25, 2026