GitHub Copilot
GitHub Copilot は、OAR で最初から使えるプロバイダーです。常に利用でき、リレーのホストでサインイン済みの Copilot CLI を使います。リレーは 2 つのエンジンのどちらかで Copilot を動かします。SDK エンジンは既定のエンジンで、軌道修正、バックグラウンドタスクのパネル、複数選択の質問が使えます。拡張機能エンジンは、実際の Copilot CLI をターミナルで動かし、その様子を確認できます。
自分のキーで使う OpenAI も同じ 2 つのエンジンで動くため、このページのエンジンに関するセクションは OpenAI にも当てはまります。キーとモデルについては OpenAI のページを参照してください。
必要なもの #
- Copilot CLI:リレーのホストにインストールし、サインインしておきます。
npm install -g @github/でインストールし、copilot copilotを一度実行してサインインします。GitHub アカウントには、Copilot CLI を含む Copilot プランが必要です。 - CLI のインストールやアップグレード後のリレーの再起動。 リレーは起動時に CLI のランタイムを探すため、その後のインストールは認識されません。
- サインイン済みの GitHub CLI(
gh):oar copilot、Windows での拡張機能エンジンのセッション、Check Usage(使用状況の確認)の Copilot カードに必要です。 - tmux(任意、Linux と macOS):🖥️ Inspect tmux console(tmux コンソールを確認)でセッションのターミナルを見たい場合に必要です。
リレーは Copilot CLI をインストールも更新もしません。Settings → Providers → Copilot(設定 → プロバイダー → Copilot)の一番上にある GitHub Copilot CLI の行は、その状態を表示するだけです。
OAR が CLI を見つける方法 #
SDK エンジンは、Copilot CLI に付属するランタイムを動かします。リレーは起動時に CLI のパッケージキャッシュを探し、そこにある最新のバージョンを使います。
| システム | フォルダー |
|---|---|
| Linux | ~/. と ~/. |
| macOS | ~/ |
| Windows | %LOCALAPPDATA%\ |
Linux では、XDG_ と XDG_ を設定していれば、2 つのフォルダーはそれに従います。探すフォルダーを追加するには COPILOT_ を、ランタイムの copilot- ディレクトリを直接指定するには COPILOT_ を設定します。何も見つからない場合、SDK エンジンは使えません(エンジンの選択を参照)。
oar copilot を使う #
oar copilot は、そのポートで応答するリレーがなければリレーをバックグラウンドで起動し、シェルで Copilot CLI(gh copilot)を開きます。自分で起動したリレーは、セッションが終わると停止します。-- の後の引数は gh copilot に渡されます。
oar copilot
oar copilot --port 3400 -- --help
実行するたびに、~/. にある小さなラッパーも書き込むか更新します。これは OAR の拡張機能を Copilot CLI に読み込む、ユーザー全体の拡張機能です。oar copilot --install- はその処理だけを行って終了します(gh は不要です)。--no- を指定すると、その回だけ処理を省きます。gh がない場合、oar copilot はその旨を表示して停止します。GitHub CLI をインストールするか、oar start でリレーだけを実行してください。
2 つのエンジン #
| SDK エンジン | 拡張機能エンジン | |
|---|---|---|
| 動作するもの | 会話ごとのヘッドレスワーカー。Copilot CLI に同梱のランタイムを動かします | OAR の拡張機能を読み込んだ、ターミナルセッション内の Copilot CLI |
| 既定 | はい(0.9.2 以降) | リレーが SDK エンジンを動かせない場合に使われます |
| 必要なもの | インストール済みでサインイン済みの Copilot CLI | 同じもの。Windows では加えて gh |
| ターン中に送ったメッセージ | Steer(軌道修正):実行中のターンに入ります 0.9.3 で追加 | ターンが終わるまでキューで待ちます |
| バックグラウンドタスク | 入力欄のタスクパネルに一覧表示され、それぞれの Stop(停止)が機能します 0.9.3 で追加 | パネルには表示されません |
| 複数選択の質問 | はい。モデルは質問を複数選択にでき、選択肢カードには Select several(複数選択)スイッチがあります 0.9.3 で追加 | 通常の選択肢カードではできません。複数の値を受け付けるフィールドを持つフォームでは複数選択できます |
| 質問の待機時間 | 8 時間 | 2 時間 |
| 🖥️ Inspect tmux console | Copilot の画面ではなく、ワーカーのログを表示します | Copilot のターミナルをライブで表示します(Linux と macOS、tmux あり) |
| エージェントツール | relay_ はツールです。preview については、リレーのプレビュー API の呼び出し方がエージェントに伝えられます |
relay_ と preview は OAR の MCP サーバー経由です |
| リレーモード | ネイティブの plan モードと autopilot モード。plan は読み取り専用でない操作をすべて拒否し、ask はそうした操作の前に毎回確認します | プロンプトでの指示のみ |
| コンパクト化 | ランタイムがコンテキストウィンドウの 80% でバックグラウンドでコンパクト化し、95% でブロックします | OAR は何も設定せず、何も表示しません |
| 停滞ターンの監視 | 無出力が 120 秒(モデルへのリクエスト中は 300 秒、ツールの実行中は 30 分)続くとターンを失敗にします | 1 ターンは 2 時間までです。リレーが CLI をオフラインと見なしている間は、非アクティブの許容時間が 45 秒です |
| 使用状況 | Check Usage の Copilot カードに Last SDK worker turn(直近の SDK ワーカーのターン)を追加します | カードのアカウントのメーターのみ |
どちらのエンジンでも、トランスクリプト、質問カード、プランボード、モデル一覧、返信ごとの使用状況の行は同じように表示されます。Steer、Queue(キューに入れる)、停滞ターンの許容時間についてはターンとキューを、該当する行についてはリレーモードとコンパクト化を、質問カードについては ask_user を参照してください。
SDK エンジンでは、Stop は返信だけを終了します。ターンが開始したバックグラウンドエージェントは、タスクパネルにあるそれぞれの Stop の下で動き続けます。
エンジンの選択 #
エンジンはリレー全体で 1 つの設定です。Settings → Providers → Copilot → Copilot engine(設定 → プロバイダー → Copilot → Copilot エンジン)で、選択肢は Extension(拡張機能)と SDK — default(SDK — 既定)です。変更したら Save Copilot settings(Copilot の設定を保存)を押します。
- 変更は、その後にワーカーが起動する会話に適用されます。すでに実行中のセッションは、ワーカーが再起動するまで元のエンジンのままです。
- 誰も選択を保存していない場合、リレーは可能なときは SDK を、不可能なときは Extension を使います。保存した選択は常に優先されます。これは SDK を保存した場合も同じです。後の再起動で CLI が見つからなくなっても、リレーは自動で切り替えません。CLI が再び見つかるか Extension を保存するまで、新しい会話のワーカーは起動できません。
- パネルには、設定されているエンジンが表示されます:New Copilot conversations run on the headless SDK worker. No tmux inspector for these sessions. または New Copilot conversations run on the Copilot CLI with the web-relay extension.
実行中の会話がどちらのエンジンを使っているかは、入力欄と tmux コンソールで分かります。ターン中、送信ボタンは SDK エンジンでは Steer と表示され(質問カードや承認が開いているとき、ターンがコンパクト化中のとき、ツール呼び出しの実行中は Queue と表示されます)、拡張機能エンジンでは常に Queue と表示されます。tmux コンソールに Copilot の画面が表示されるのは拡張機能エンジンの場合だけです。会話自体にはエンジンのラベルはありません。
SDK の保存が拒否されたとき #
リレーが SDK を動かせない場合、SDK の保存は拒否され、エンジンの説明の代わりに理由が表示されます。保存されている設定は変わらず、選択欄はリレーが実際に動かしているエンジンに戻ります。
| メッセージの冒頭 | 対処 |
|---|---|
| The Copilot SDK was not found when the relay started (COPILOT_SDK_PATH did not resolve) | リレーが Copilot CLI のランタイムを見つけられませんでした。CLI をインストールまたはアップグレードし、copilot を一度実行してから、リレーを再起動してください。OAR が CLI を見つける方法を参照してください。 |
| The SDK engine requires session worker routing, which is disabled on this relay (SESSION_WORKER_ROUTING_ENABLED) | Settings → Features(設定 → 機能)で Session worker routing(セッションワーカーのルーティング)をオンに戻し(既定ではオンです)、リレーを再起動してください。 |
設定 #
Settings → Providers → Copilot には次の項目があります。
| 項目 | 既定 | 動作 |
|---|---|---|
| GitHub Copilot CLI | 状態を表示する行です。読み取り専用です。この CLI はリレーのホストで npm を使って管理します。 | |
| Copilot engine | SDK | 新しい Copilot の会話をどちらのエンジンで動かすかです。エンジンの選択を参照してください。 |
| Save Copilot settings | エンジンを保存します。 |
Copilot のセッションに関係するその他の設定は、別の場所にあります。
| 設定 | 既定 | Copilot への影響 |
|---|---|---|
| Settings → General → Background task timeout(設定 → 一般 → バックグラウンドタスクのタイムアウト) | 4 時間 | 返信の後、バックグラウンドエージェントとデタッチされたシェルだけでセッションを動かし続けられる時間です。時間を過ぎると停止されます。0 は無制限で、最大値は 10 時間です。 |
| Settings → General → Max turn duration(設定 → 一般 → ターンの最大時間) | 60 分 | 1 ターンを実行できる最長時間です。過ぎるとリレーがターンをキューに戻します。 |
| Settings → Features → Session worker routing(設定 → 機能 → セッションワーカーのルーティング) | オン | SDK エンジンに必要です。変更はリレーの再起動後に適用されます。 |
モデル #
リレーは、起動の数秒後に、インストール済みの Copilot CLI のランタイムからモデル一覧を読み込みます。各モデルには、ランタイムが報告する reasoning effort とコンテキストウィンドウが表示されます。一覧は auto から始まり、続いてベンダーごとにモデルがまとめられ(OpenAI、Anthropic、Google、xAI、Microsoft、Azure OpenAI、Moonshot AI、その他はアルファベット順)、それぞれ新しいバージョンが先に並びます。
最初のモデルの検出が終わるまで、新しいリレーは gpt-、gpt-(既定)、gpt-、claude-、claude- を提供します。
会話の ⋯ メニューにある 🤗 Select Models → Copilot(モデルを選択 → Copilot)で入力欄に表示するモデルを選び、💾 Save enabled models(有効なモデルを保存)を押します。Refresh(再読み込み)は一覧をもう一度読み込みます。一覧が古いと思われる場合は Refresh を押してください。
使用状況 #
- 返信の下には、Copilot のターンが使った量が表示されます。クレジットを示す
+N(括弧内は月間プランに対する割合)と、month N% leftです。stale(古い)タグは、そのターンの数値を更新できなかったことを示します。この行が表示されるのは Copilot のターンだけです。OpenAI を含む他のプロバイダーは Copilot のクレジットを使いません。 - ヘッダーでは、セッションの行が会話全体の合計を示します。例:
Session: 1.。25 AIC used - Check Usage では、
⋯メニューで 📊 Check Usage を開き、Copilot タブを選ぶと、ライブの割り当て(AI クレジットまたはプレミアムリクエスト、チャット、プラン)が表示されます。SDK エンジンでは Last SDK worker turn が追加されます。そのターンが実際に使ったクレジット、トークン、モデル呼び出しです。これは 1 ターン分の数値で、累計ではありません。このセクションは 7 日後に消えます。
Copilot カードは gh を通じてアカウントを読み取ります。gh を使わない場合は、リレーの環境に GH_ または GITHUB_ を設定してください。
既存のセッションの取り込み #
リレーは起動時に、ホストに保存されている Copilot のセッションを取り込みます。取り込んだセッションは履歴付きで会話リストに表示されます。取り込みには、インストール済みの Copilot ランタイムを使います。ランタイムが使えない場合、取り込みは失敗として報告されます。リレーがファイルから推測することはありません。
こうしたセッションを削除しても、非表示になるだけです。リレーが実行したセッションではないため、Copilot CLI 側のセッションは残ります。
環境変数 #
これらはリレーのプロセスの環境に設定し、リレーを再起動してください。
| 変数 | 動作 |
|---|---|
COPILOT_ |
パッケージキャッシュ内の最新のものの代わりに使う、Copilot CLI のランタイムの copilot- ディレクトリ |
COPILOT_ |
ランタイムを探す追加のパッケージキャッシュ |
GH_、GITHUB_ |
gh auth token の代わりに、Check Usage の Copilot カードに使う GitHub トークン |
OAR_ |
拡張機能エンジンに OAR の MCP サーバーを接続しません。プレビューの手順はテキストで渡され、relay_ ツールはありません |
COPILOT_ |
Session worker routing をオフに固定します。これにより SDK エンジンは使えなくなります |
制限 #
- 起動後にインストールまたはアップグレードされた Copilot CLI をリレーが認識するには、再起動が必要です。
- SDK エンジンには、接続できるターミナルがありません。
- 拡張機能エンジンでは、ターン中のメッセージはキューに入ります。軌道修正はできません。
- SDK エンジンでは、リレーはターンを失敗にするまでに、何も実行していない状態で 2 分、モデルへのリクエスト中は 5 分、ツールの実行中は 30 分の無出力を許容します。質問カードで待っているターンは、停滞とは見なされません。許容時間はターンとキューにあります。
- 自分のキーで使う OpenAI の会話もこれらのエンジンを使いますが、消費するのは自分のキーなので、そのターンには Copilot の使用状況の行が付きません。
うまくいかないとき #
| 起きること | 理由と対処 |
|---|---|
| Copilot が起動しない、または SDK エンジンが COPILOT_SDK_PATH did not resolve(COPILOT_SDK_PATH を解決できませんでした)で拒否される | 起動時に Copilot CLI のランタイムが見つかりませんでした。CLI をインストールまたはアップグレードし、copilot を一度実行してから、リレーを再起動してください。 |
| SDK エンジンで、Copilot のランタイムが認証できなかったと返信に表示される | リレーのホストで copilot を実行してサインインし、メッセージをもう一度送信してください。 |
| SDK を使いたいのに、新しい会話が拡張機能エンジンで動く | 誰も選択を保存しておらずリレーが SDK を動かせないか、Extension を保存しています。Copilot engine を SDK に設定して保存してください。原因がある場合は、拒否のメッセージにその原因が示されます。 |
| 実行中の会話のエンジンが変わらない | エンジンはワーカーの起動時に読み込まれます。⋯ メニューの ☠️ Kill session(セッションを強制終了)でワーカーを停止すると、次のメッセージで現在のエンジンのワーカーが起動します。 |
| この課金期間の AI クレジットが GitHub Copilot に残っていないと返信に表示される | プランを使い切っています。Check Usage でリセット時刻を確認してその後に再試行するか、会話を別のプロバイダーに切り替えてください。リレーはこの場合に自動で再試行しません。 |
oar copilot が GitHub CLI がないと表示する |
これは gh copilot を実行するためです。GitHub CLI をインストールするか、リレーだけを実行してください。 |
| モデル一覧が古い、または正しくない | 🤗 Select Models → Refresh(モデルを選択 → 再読み込み)を使います。 |
| 返信の下に使用状況の行がない | 使用状況が記録されるのは Copilot のターンだけです。 |
| 🖥️ Inspect tmux console に Copilot の画面ではなくログの行が表示される | その会話は SDK エンジンで動いています。 |
エンジンに関係しないエージェントセッション、リレーモード、その他の動作は、セッションとエージェントの連携のページで説明しているとおりに動きます。