Hinweis
GitHub Copilot-CLI Erweiterungen sind derzeit ein experimentelles Feature und können geändert werden.
Mit einer Erweiterung können Sie Copilot CLI eigene Funktionen hinzufügen. Jede Erweiterung ist ein kleines Node.js Modul, das zusammen mit Ihrer interaktiven Sitzung als separater Prozess ausgeführt wird und eine Verbindung damit herstellt. Über diese Verbindung kann eine Erweiterung Folgendes hinzufügen:
- Tools , die Copilot während der Arbeit in Ihrem Auftrag aufgerufen werden können.
- Schrägstrichbefehle , die Sie selbst ausführen.
Da eine Erweiterung echten Code auf Ihrem Computer ausführt, können Sie funktionen hinzufügen, die die integrierten Tools nicht haben. Beispielsweise kann eine Erweiterung überwachen, was in einer Sitzung passiert, und eine laufende Summe über Toolaufrufe hinweg führen, die ein einmaliger Shellbefehl nicht ausführen kann.
In diesem Artikel wird erläutert, wie Erweiterungen funktionieren und wie Copilot CLI sie behandelt werden. Eine praktische Anleitung zum Erstellen eigener Erweiterungen finden Sie unter Erstellen von Erweiterungen für GitHub Copilot-CLI.
Warnung
Erweiterungen werden auf Ihrem Computer mit Ihren Berechtigungen ausgeführt. Laden Sie nur Erweiterungscode, dem Sie vertrauen, auf die gleiche Weise, wie Sie nur ein anderes Skript ausführen würden, das Sie selbst nicht geschrieben haben.
Wie Erweiterungen ermittelt werden
Beim Copilot CLI Starten wird nach Erweiterungen an mehreren Stellen gesucht. Jede Erweiterung befindet sich in einem eigenen Unterverzeichnis, und das Unterverzeichnis muss eine Eintragsdatei mit dem Namen extension.mjs, extension.cjsoder extension.js. Dies sind alle JavaScript-Dateien: Die Copilot CLI Eingabedatei wird direkt mit Node.jsausgeführt, daher muss eine Erweiterung in JavaScript geschrieben werden. TypeScript und andere Sprachen werden derzeit nicht unterstützt.
Der Name des Unterverzeichnisses wird zum Namen der Erweiterung.
| Source | Ort | Verfügbarkeit |
|---|---|---|
| Projekt | ||
.github/ im aktuellen Repository | Verfügbar für alle Personen, die in diesem Repository arbeiten. | |
| Benutzer | ~/ | In allen Cli-Sitzungen in jedem Verzeichnis verfügbar. |
| Plug-In | Ein installiertes Plug-In | Verfügbar, wo das Plug-In aktiviert ist. |
Auswählen, wo sich eine Erweiterung befindet
Wo Sie das Erweiterungsverzeichnis ablegen, bestimmt, wer es verwenden kann:
- Fügen Sie sie in
.github/extensions/ein Repository ein, wenn die Erweiterung spezifisch für dieses Projekt ist und Sie sie für alle Personen freigeben möchten, die dort arbeiten. - Setzen Sie sie ein
~/.copilot/extensions/, wenn die Erweiterung in allen Ihren eigenen Sitzungen verfügbar sein soll, unabhängig davon, in welchem Verzeichnis Sie die CLI starten.
Die beiden Speicherorte folgen genau der gleichen Struktur , einem benannten Unterverzeichnis, das eine extension.mjs Datei enthält, sodass Sie eine Erweiterung einfach von einer zur anderen verschieben können, indem Sie den Ordner neu verschieben.
Aktivieren von Erweiterungen
Erweiterungen sind derzeit ein experimentelles Feature, daher müssen Sie experimentelle Features aktivieren. Dazu können Sie eine der folgenden Aktionen ausführen:
- Starten Sie die CLI mit der
--experimentalKennzeichnung. - Führen Sie den
/experimental onSchrägstrichbefehl in einer interaktiven Sitzung aus.
Ändern der Behandlung von Erweiterungen durch die CLI
Sie können den Zugriff auf Erweiterungen einschränken Copilotoder sie vollständig deaktivieren, indem Sie den /extensions mode Befehl verwenden. Wenn Sie diesen Befehl verwenden, erhalten Sie drei Optionen:
- Load & Augment (Standard) – die CLI führt Ihre Erweiterungen aus _und_Copilot kann sie verwalten.
- Nur laden – die CLI führt Ihre Erweiterungen aus, kann sie aber Copilot nicht verwalten.
- Deaktiviert – Erweiterungen werden vollständig in der aktuellen Sitzung deaktiviert und bleiben in zukünftigen Sitzungen deaktiviert, bis Sie zu einer der anderen beiden Einstellungen wechseln. Andere aktuelle Sitzungen sind nicht betroffen.
Alle änderungen, die Sie vornehmen, werden sofort in der aktuellen Sitzung wirksam:
- Durch den Wechsel zu "Disabled" werden alle derzeit ausgeführten Erweiterungen beendet. Ihre Prozesse werden heruntergefahren, und ihre Tools sind nicht mehr verfügbar.
- Wenn Sie von "Deaktiviert" zu einer der anderen Einstellungen wechseln, werden Ihre Erweiterungen gestartet.
- Der Wechsel zwischen "Nur laden" und "Load & Augment" ändert sich nur, ob Copilot Ihre Erweiterungen verwaltet werden können.
Was "Erweiterungen verwalten" bedeutet
Im Load & Augment-Modus erhalten Sie eine kleine Reihe zusätzlicher Tools, Copilot mit denen sie direkt an dem Erweiterungssystem arbeiten können, als Teil der Durchführung Ihrer Anforderungen. Mit diesen Tools können Sie folgende Aktionen Copilot ausführen:
- Listet die erkannten Erweiterungen auf, und sehen Sie deren Status.
- Überprüfen Sie eine Erweiterung, einschließlich eines Tails der Protokolldatei, um zu diagnostizieren, dass ein Fehler aufgetreten ist oder falsch funktioniert.
- Erstellen Sie ein Gerüst für eine neue Erweiterung– generieren Sie eine Startdatei
extension.mjs, auf der Sie aufbauen können. - Laden Sie Erweiterungen neu, sodass Code (oder Sie) gerade geschrieben wurde, ohne die Sitzung neu zu starten.
Dies macht es Ihnen möglich, eine Erweiterung für Sie zu erstellen Copilot . Copilot kann die Datei erstellen, den Code schreiben und neu laden, ohne die Sitzung verlassen zu müssen.
Wählen Sie "Nur laden" aus, wenn Sie einen bekannten, vertrauenswürdigen Satz von Erweiterungen ausführen möchten, aber nicht möchten Copilot , dass Sie Erweiterungscode erstellen, neu laden oder anderweitig ändern möchten, der auf Ihrem Computer ausgeführt wird, als Nebeneffekt seiner Arbeit. Ihre vorhandenen Erweiterungen werden weiterhin ausgeführt und Copilot können weiterhin die von ihnen bereitgestellten Tools aufrufen. Sie können die Erweiterungen einfach nicht selbst verwalten.
Erweiterungen im Vergleich zu Plug-Ins
Sowohl Erweiterungen als auch Plug-Ins fügen Funktionen hinzu Copilot CLI, aber sie dienen unterschiedlichen Zwecken:
- Eine Erweiterung ist ein einzelnes JavaScript-Modul, das Sie schreiben, um Tools und Schrägstrichbefehle hinzuzufügen, die von Code unterstützt werden, der in Ihrer Sitzung ausgeführt wird.
- Ein Plug-In ist ein installierbares Paket, das wiederverwendbare Komponenten wie Agents, Fähigkeiten, Hooks und Integrationen bündelt und über einen Marketplace verteilt werden kann.
Weitere Informationen zu Plug-Ins finden Sie unter Informationen zu GitHub Copilot Plug-Ins.