GitHub Copilot
GitHub Copilot ist der Provider, mit dem OAR startet: Er ist immer verfügbar und nutzt die Copilot CLI, die auf dem Relay-Host angemeldet ist. Das Relay führt ihn auf einer von zwei Engines aus. Die SDK-Engine ist der Standard und bietet dir Nachsteuern, eine Task-Leiste für Hintergrund-Tasks und Fragen mit Mehrfachauswahl. Die Extension-Engine führt die echte Copilot CLI in einem Terminal aus, dem du zusehen kannst.
OpenAI mit deinem eigenen Key läuft auf denselben zwei Engines, daher gelten die Engine-Abschnitte dieser Seite auch dafür. Key und Modelle stehen auf der Seite OpenAI.
Was du brauchst #
- Die Copilot CLI, angemeldet, auf dem Relay-Host. Installiere sie mit
npm install -g @github/, führ einmalcopilot copilotaus und melde dich an. Dein GitHub-Konto braucht einen Copilot-Plan, der Copilot CLI enthält. - Einen Neustart des Relays nach Installation oder Upgrade der CLI. Das Relay sucht die Runtime der CLI beim Start und sieht eine spätere Installation nicht.
- Die GitHub CLI (
gh), angemeldet, füroar copilot, Sessions der Extension-Engine unter Windows und die Copilot-Karte in Check Usage (Verbrauch prüfen). - tmux (optional, Linux und macOS), wenn du das Terminal einer Session mit 🖥️ Inspect tmux console (tmux-Konsole ansehen) beobachten willst.
Das Relay installiert oder aktualisiert die Copilot CLI nicht. In Settings → Providers → Copilot (Einstellungen → Provider → Copilot) meldet die Zeile GitHub Copilot CLI oben nur ihren Zustand.
Wie OAR die CLI findet #
Die SDK-Engine steuert die Runtime, die mit der Copilot CLI kommt. Beim Start sucht das Relay im Paket-Cache der CLI und nimmt die neueste Version dort:
| System | Ordner |
|---|---|
| Linux | ~/. und ~/. |
| macOS | ~/ |
| Windows | %LOCALAPPDATA%\ |
Unter Linux folgen die beiden Ordner XDG_ und XDG_, wenn du
sie setzt. Setz COPILOT_, um einen Ordner zur Suche hinzuzufügen, oder COPILOT_, um
das copilot--Verzeichnis der Runtime direkt anzugeben. Wird nichts gefunden,
ist die SDK-Engine nicht verfügbar (siehe Die Engine wählen).
oar copilot verwenden #
oar copilot startet das Relay im Hintergrund, wenn auf seinem Port keines antwortet,
und öffnet dann die Copilot CLI (gh copilot) in deiner Shell. Ein Relay, das es
gestartet hat, stoppt wieder, wenn die Session endet. Argumente nach -- gehen an
gh copilot.
oar copilot
oar copilot --port 3400 -- --help
Jeder Lauf schreibt oder erneuert außerdem einen kleinen Wrapper in
~/., eine benutzerweite Extension, die die
Extension von OAR in die Copilot CLI lädt. oar copilot --install- tut
nur das und beendet sich (es braucht kein gh); --no-
überspringt es für einen Lauf. Fehlt gh, sagt oar copilot das und stoppt;
installiere die GitHub CLI oder starte nur das Relay mit oar start.
Die zwei Engines #
| SDK-Engine | Extension-Engine | |
|---|---|---|
| Was läuft | Ein Headless-Worker pro Konversation, der die mitgelieferte Runtime der Copilot CLI steuert | Die Copilot CLI in einer Terminal-Session, mit geladener OAR-Extension |
| Standard | Ja, seit 0.9.2 | Genutzt, wenn das Relay die SDK-Engine nicht ausführen kann |
| Braucht | Eine installierte, angemeldete Copilot CLI | Dasselbe, plus gh unter Windows |
| Während eines Turns gesendete Nachricht | Steer (Nachsteuern): Sie geht in den laufenden Turn Neu in 0.9.3 | Wartet in der Queue, bis der Turn endet |
| Hintergrund-Tasks | In der Task-Leiste des Eingabebereichs aufgelistet, jeder mit funktionierendem Stop (Stoppen) Neu in 0.9.3 | Nicht in der Leiste |
| Fragen mit Mehrfachauswahl | Ja: Das Modell kann eine Frage als Mehrfachauswahl markieren, und Auswahlkarten haben einen Schalter Select several (Mehrere auswählen) Neu in 0.9.3 | Nicht auf einer einfachen Auswahlkarte. Ein Formular mit einem Feld, das mehrere Werte annimmt, bietet mehrere an |
| Wartezeit für Fragen | 8 Stunden | 2 Stunden |
| 🖥️ Inspect tmux console | Zeigt das Log des Workers, nicht den Copilot-Bildschirm | Zeigt das live laufende Copilot-Terminal (Linux und macOS, mit tmux) |
| Agent-Tools | relay_ ist ein Tool; für preview wird dem Agent gesagt, wie er die Preview-API des Relays aufruft |
relay_ und preview über den MCP-Server von OAR |
| Relay-Modi | Native Plan- und Autopilot-Modi; plan lehnt alles ab, was nicht nur lesend ist, ask fragt vor jeder solchen Aktion | Nur eine Anweisung im Prompt |
| Kompaktierung | Die Runtime kompaktiert im Hintergrund bei 80 % des Kontextfensters und blockiert bei 95 % | OAR setzt und zeigt nichts |
| Überwachung hängender Turns | Lässt einen Turn nach 120 s Stille fehlschlagen, 300 s während einer Modellanfrage, 30 min während eines Tools | Ein Turn ist auf 2 Stunden begrenzt; 45 s Inaktivitätsfenster, während das Relay die CLI für offline hält |
| Verbrauch | Fügt der Copilot-Karte in Check Usage Last SDK worker turn (Letzter Turn des SDK-Workers) hinzu | Nur die Kontoanzeigen der Karte |
Beide Engines zeigen denselben Verlauf, dieselben Rückfrage-Karten, Plan-Boards, dieselbe Modellliste und Verbrauchszeile pro Antwort. Siehe Turns und die Queue für Steer, Queue (Einreihen) und die Fenster für hängende Turns, Relay-Modi und Kompaktieren für diese Zeilen sowie ask_user für Rückfrage-Karten.
Auf der SDK-Engine beendet Stop nur die Antwort. Hintergrund-Agents, die der Turn gestartet hat, laufen unter ihrem eigenen Stop in der Task-Leiste weiter.
Die Engine wählen #
Die Wahl ist eine Einstellung für das ganze Relay: Settings → Providers → Copilot → Copilot engine (Einstellungen → Provider → Copilot → Copilot-Engine), mit den Optionen Extension (Erweiterung) und SDK — default (SDK — Standard). Drück Save Copilot settings (Copilot-Einstellungen speichern), nachdem du sie geändert hast.
- Sie gilt für Konversationen, deren Worker danach startet. Eine bereits laufende Session behält ihre Engine, bis ihr Worker neu startet.
- Hat niemand eine Wahl gespeichert, nutzt das Relay SDK, wann immer es kann, und Extension, wenn nicht. Eine gespeicherte Wahl gewinnt immer. Das gilt auch für ein gespeichertes SDK: Findet ein späterer Neustart die CLI nicht mehr, wechselt das Relay nicht von selbst zurück, und der Worker einer neuen Konversation kann nicht starten, bis die CLI wieder gefunden wird oder du Extension speicherst.
- Die Einstellungsseite sagt, welche Engine eingestellt ist: New Copilot conversations run on the headless SDK worker. No tmux inspector for these sessions. oder New Copilot conversations run on the Copilot CLI with the web-relay extension.
Welche Engine eine laufende Konversation nutzt, erkennst du an ihrem Eingabebereich und ihrer tmux-Konsole. Während eines Turns heißt der Senden-Button auf der SDK-Engine Steer (dort heißt er Queue, solange eine Rückfrage-Karte oder Freigabe offen ist, der Turn kompaktiert oder ein Tool-Aufruf läuft) und auf der Extension-Engine immer Queue. Die tmux-Konsole zeigt nur auf der Extension-Engine einen Copilot-Bildschirm. Die Konversation selbst trägt keine Engine-Bezeichnung.
Wenn das Speichern von SDK abgelehnt wird #
Das Relay lehnt das Speichern von SDK ab, wenn es SDK nicht ausführen konnte, und zeigt den Grund anstelle der Engine-Beschreibung. Die gespeicherte Einstellung ändert sich nicht, und die Auswahl springt auf die Engine zurück, die das Relay tatsächlich ausführt.
| Meldung beginnt mit | Was zu tun ist |
|---|---|
| The Copilot SDK was not found when the relay started (COPILOT_SDK_PATH did not resolve) | Das Relay hat keine Runtime der Copilot CLI gefunden. Installiere oder aktualisiere die CLI, führ einmal copilot aus und starte das Relay neu. Siehe Wie OAR die CLI findet. |
| The SDK engine requires session worker routing, which is disabled on this relay (SESSION_WORKER_ROUTING_ENABLED) | Schalte Session worker routing (Session-Worker-Routing) in Settings → Features (Einstellungen → Funktionen) wieder ein (standardmäßig an) und starte das Relay neu. |
Einstellungen #
Unter Settings → Providers → Copilot:
| Bedienelement | Standard | Was es tut |
|---|---|---|
| GitHub Copilot CLI | Eine Statuszeile. Nur lesend: Diese CLI verwaltest du mit npm auf dem Relay-Host. | |
| Copilot engine | SDK | Welche Engine neue Copilot-Konversationen ausführt. Siehe Die Engine wählen. |
| Save Copilot settings | Speichert die Engine. |
Andere Einstellungen, die Copilot-Sessions betreffen, liegen anderswo:
| Einstellung | Standard | Wirkung auf Copilot |
|---|---|---|
| Settings → General → Background task timeout (Einstellungen → Allgemein → Timeout für Hintergrund-Tasks) | 4 h | Wie lange Hintergrund-Agents und abgelöste Shells allein eine Session nach ihrer Antwort weiterlaufen lassen dürfen. Danach werden sie gestoppt. 0 heißt kein Limit; der größte Wert ist 10 h. |
| Settings → General → Max turn duration (Einstellungen → Allgemein → Maximale Turn-Dauer) | 60 min | Wie lange ein Turn höchstens laufen darf, bevor das Relay ihn neu einreiht. |
| Settings → Features → Session worker routing | an | Die SDK-Engine braucht es. Eine Änderung gilt nach einem Neustart des Relays. |
Modelle #
Das Relay liest die Modellliste aus der installierten Runtime der Copilot CLI
wenige Sekunden nach dem Start. Jedes Modell
zeigt die Reasoning-Efforts und das Kontextfenster, die die Runtime meldet. Die
Liste beginnt mit auto und gruppiert die Modelle dann nach Hersteller (OpenAI,
Anthropic, Google, xAI, Microsoft, Azure OpenAI, Moonshot AI, dann andere
alphabetisch), neueste Version zuerst.
Bis zur ersten Erkennung bietet ein neues Relay gpt-, gpt- (der
Standard), gpt-, claude- und claude- an.
Mit 🤗 Select Models → Copilot (Modelle auswählen → Copilot) im ⋯-Menü einer Konversation wählst du, welche
Modelle im Eingabebereich erscheinen, dann 💾 Save enabled models (Aktivierte Modelle speichern). Refresh (Aktualisieren)
liest die Liste erneut. Wirkt die Liste veraltet, drück Refresh.
Verbrauch #
- Unter einer Antwort zeigt ein Copilot-Turn, was er verbraucht hat:
+Nfür die Credits, mit dem Anteil an deinem Monatsplan in Klammern, undmonth N% left. Einstale-Tag heißt, dass die Zahlen für diesen Turn nicht aktualisiert werden konnten. Nur Copilot-Turns bekommen diese Zeile; andere Provider, OpenAI eingeschlossen, verbrauchen keine Copilot-Credits. - Im Header summiert eine Session-Zeile die Konversation, zum Beispiel
Session: 1..25 AIC used - In Check Usage: Öffne 📊 Check Usage im
⋯-Menü und wähl den Copilot-Tab für das Live-Kontingent (AI-Credits oder Premium-Requests, Chat und Plan). Auf der SDK-Engine kommt Last SDK worker turn hinzu: die Credits, die dieser Turn tatsächlich verbraucht hat, seine Tokens und Modellaufrufe. Das sind die Zahlen eines Turns, keine laufende Summe, und der Abschnitt verschwindet nach sieben Tagen.
Die Copilot-Karte liest dein Konto über gh. Wenn du gh nicht nutzt, setz
GH_ oder GITHUB_ in der Umgebung des Relays.
Vorhandene Sessions importieren #
Beim Start importiert das Relay die auf dem Host gespeicherten Copilot-Sessions, sodass sie mit ihrem Verlauf in deiner Liste erscheinen. Es liest sie über die installierte Copilot-Runtime. Ist die Runtime nicht verfügbar, wird der Import als fehlgeschlagen gemeldet. Das Relay rät nicht anhand der Dateien.
Eine solche Session zu löschen blendet sie nur aus: Die eigene Session der Copilot CLI bleibt, weil das Relay sie nie ausgeführt hat.
Umgebungsvariablen #
Setz diese in der Umgebung des Relay-Prozesses und starte das Relay dann neu.
| Variable | Was sie tut |
|---|---|
COPILOT_ |
Das copilot--Verzeichnis der Runtime der Copilot CLI, statt des neuesten im Paket-Cache |
COPILOT_ |
Ein zusätzlicher Paket-Cache, in dem nach der Runtime gesucht wird |
GH_, GITHUB_ |
Ein GitHub-Token für die Copilot-Karte in Check Usage, statt gh auth token |
OAR_ |
Den MCP-Server von OAR nicht an die Extension-Engine anhängen; sie bekommt die Preview-Anweisungen als Text und kein Tool relay_ |
COPILOT_ |
Hält Session worker routing fest aus, wodurch die SDK-Engine nicht verfügbar ist |
Grenzen #
- Das Relay braucht einen Neustart, um eine Copilot CLI zu bemerken, die nach seinem Start installiert oder aktualisiert wurde.
- Auf der SDK-Engine gibt es kein Terminal zum Anhängen.
- Nachrichten während eines Turns werden auf der Extension-Engine eingereiht; man kann mit ihnen nicht nachsteuern.
- Auf der SDK-Engine gibt das Relay einem Turn 2 Minuten Stille, wenn nichts läuft, 5 Minuten während einer Modellanfrage und 30 Minuten, während ein Tool läuft, bevor es den Turn fehlschlagen lässt. Ein Turn, der auf eine Rückfrage-Karte wartet, gilt nie als hängend. Die Fenster stehen in Turns und die Queue.
- Eine OpenAI-Konversation mit deinem eigenen Key nutzt diese Engines ebenfalls, verbraucht aber deinen Key, daher tragen ihre Turns keine Copilot-Verbrauchszeile.
Wenn es nicht funktioniert #
| Was passiert | Warum, und was zu tun ist |
|---|---|
| Copilot startet nicht, oder die SDK-Engine wird mit COPILOT_SDK_PATH did not resolve abgelehnt | Beim Start wurde keine Runtime der Copilot CLI gefunden. Installiere oder aktualisiere die CLI, führ einmal copilot aus, starte das Relay neu. |
| Auf der SDK-Engine sagt die Antwort, die Copilot-Runtime konnte sich nicht authentifizieren | Führ copilot auf dem Relay-Host aus, melde dich an und sende die Nachricht erneut. |
| Neue Konversationen laufen auf Extension, obwohl du SDK wolltest | Niemand hat eine Wahl gespeichert und das Relay kann SDK nicht ausführen, oder du hast Extension gespeichert. Setz Copilot engine auf SDK und speichere; die Ablehnungsmeldung nennt die Ursache, falls es eine gibt. |
| Eine laufende Konversation hat die Engine nicht gewechselt | Die Engine wird gelesen, wenn ihr Worker startet. ☠️ Kill session (Session beenden) im ⋯-Menü stoppt den Worker; die nächste Nachricht startet ihn auf der aktuellen Engine. |
| Die Antwort sagt, GitHub Copilot hat für dieses Abrechnungsfenster keine AI-Credits mehr | Der Plan ist aufgebraucht. Öffne Check Usage für die Reset-Zeit und versuch es danach erneut, oder wechsle die Konversation zu einem anderen Provider. Das Relay versucht es hier nicht erneut. |
oar copilot sagt, die GitHub CLI fehlt |
Es führt gh copilot aus. Installiere die GitHub CLI oder starte nur das Relay. |
| Die Modellliste ist veraltet oder falsch | 🤗 Select Models → Refresh. |
| Keine Verbrauchszeile unter einer Antwort | Nur Copilot-Turns erfassen sie. |
| 🖥️ Inspect tmux console zeigt Log-Zeilen statt eines Copilot-Bildschirms | Die Konversation läuft auf der SDK-Engine. |
Agent-Sessions, Relay-Modi und anderes Verhalten, das nicht von der Engine abhängt, funktionieren wie auf den Seiten zu Sessions und Agents im Zusammenspiel beschrieben.