GitHub Copilot für die Kommandozeile

Abgeschlossen

GitHub Copilot ist nicht nur für integrierte Entwicklungsumgebungen(IDEs), es ist jetzt ein leistungsstarker Assistent in Ihrem Terminal. GitHub Copilot CLI bringt Copilot direkt in die Befehlszeile, wo sie Befehle erklären, Shellbefehle aus natürlicher Sprache vorschlagen und Ihnen helfen, sicher und interaktiv mit Ihren Dateien und Projekten zu arbeiten.

Copilot CLI verwendet gitHub-Authentifizierung und wird unabhängig von GitHub CLI ausgeführt, obwohl sie Ihre vorhandenen Anmeldeinformationen verwendet. Ganz gleich, ob Sie neu bei der Befehlszeile oder einem erfahrenen Entwickler sind, Copilot CLI reduziert Schätzarbeit und beschleunigt alltägliche Workflows.

Diese Einheit umfasst:

  • Installieren und Ausführen von GitHub Copilot CLI
  • Interaktive Sitzungen im Terminal
  • Slash-Befehle und Eingabe in natürlicher Sprache
  • Konfiguration und Optionen

Installieren und Starten von Copilot CLI

Installieren über Homebrew unter macOS und Linux:

brew install copilot-cli

Oder verwenden Sie das offizielle Installationsskript:

curl -fsSL https://gh.io/copilot-install | bash

Starten Sie copilot CLI im interaktiven Modus:

copilot

Der Bildschirm zeigt ein Willkommensbanner und einen Prompt an:

Screenshot des Interaktiven Copilot-Modusbanners.

Beim ersten Start fragt Copilot, ob Sie den Dateien im aktuellen Ordner vertrauen. Copilot kann Dateien in diesem Verzeichnis während der Sitzung lesen, ändern oder ausführen, sodass Sie nur an Speicherorten fortfahren, die Sie vertrauen.

Screenshot von Copilot interaktiv Verzeichnis angeben.

Sie können das @ verwenden, um eine bestimmte Datei auszuwählen, mit der Sie im Kontext arbeiten möchten.

Screenshot der Auswahl einer Datei im interaktiven Copilot-Modus.

Innerhalb einer interaktiven Sitzung haben Sie folgende Möglichkeiten:

  • Verwenden Sie Schrägstrichbefehle (/command), um die Sitzung zu steuern und Copilot CLI zu konfigurieren.
  • Geben Sie Eingabeaufforderungen für natürliche Sprache ein, um Befehle zu erläutern, vorzuschlagen oder zu überarbeiten.

Für Eingabeaufforderungen mit einem Screenshot ohne Eingabe des vollständigen interaktiven Modus:

copilot -i "explain brew install git"
copilot -i "suggest find large files and delete them"

Allgemeine Slash-Befehle

Slash-Kommandos sind explizite Sitzungssteuerungs-Kommandos. Hier sind die am häufigsten verwendeten:

Slash-Befehl Description
/help Anzeigen verfügbarer Befehle und Optionen
/explain <command> Bitten Sie Copilot, alle Shellbefehle zu erläutern.
/suggest <task> Bitten Sie Copilot, einen Shellbefehl für eine Aufgabe vorzuschlagen.
/revise Überarbeiten des letzten Vorschlags basierend auf Ihren Anweisungen
/feedback Senden von Feedback zu einer Antwort oder einem Vorschlag
/exit Interaktiven Modus beenden
/model <model> Auswählen des zu verwendenden KI-Modells
/theme [auto|dark|light] Ändern des Terminaldesigns
/skills Verwalten von Fähigkeiten für erweiterte Funktionen
/mcp Verwalten der MCP-Serverkonfiguration
/list-dirs Anzeigen zulässiger Verzeichnisse für Dateivorgänge
/reset-allowed-tools Liste der zulässigen Tools zurücksetzen

Slash-Befehle können nicht durch Prompts in natürlicher Sprache ersetzt werden. Sie sind die einzige Möglichkeit, Sitzungseinstellungen und -konfigurationen zu steuern.

Beispiel-Workflows

1. Erläutern eines Befehls

> Explain what `git reset --hard HEAD` does

Copilot wird eine ausführliche Erläuterung liefern.

Screenshot der Copilot CLI zur Erläuterung eines Befehls im interaktiven Modus.

2. Vorschlagen eines Befehls

> Find and delete all .log files in my home folder

Copilot generiert einen Befehlsvorschlag und fordert Sie auf, ihn auszuführen, wenn Sie mit seinen Vorschlägen zufrieden sind.

Screenshot der Copilot CLI, die einen Befehl im interaktiven Modus vorschlägt.

3. Überarbeiten eines Vorschlags

Nachdem Sie einen Vorschlag erhalten haben, können Sie eine Nachverfolgungsaufforderung eingeben, um den vorgeschlagenen Befehl zu überarbeiten:

> Include only files modified in the last 7 days

Screenshot von Copilot CLI zur Verbesserung eines Vorschlags auf der Grundlage des Prompts zum Nachverfolgen.

4. Feedback geben

Nach einer Antwort oder einem Vorschlag:

> /feedback

Screenshot der Verwendung des Slash-Befehls /feedack im interaktiven Modus von Copilot CLI.

Copilot fordert Sie auf, die Art des Feedbacks auszuwählen, das Sie senden möchten, und navigieren Sie dann zum entsprechenden Formular, um Ihr Feedback abzuschließen.

5. Interaktiven Modus beenden

> /exit

Konfigurationsoptionen

In Copilot CLI erfolgt die Konfiguration über:

  1. Slash-Befehle im interaktiven Modus

    • /model KI-Modell auswählen
    • /theme Terminaldesign ändern
    • /skills Verwalten erweiterter Funktionen
    • /reset-allowed-tools Zurücksetzen von Tools
    • /list-dirs Zulässige Verzeichnisse anzeigen
    • /mcp MCP-Servereinstellungen
  2. Copilot CLI-Konfiguration (nicht interaktiver Modus)

Die Copilot CLI-Konfiguration wird über Berechtigungsaufforderungen, Befehlszeilenkennzeichnungen und lokale Konfigurationsdateien verwaltet. Diese Einstellungen legen fest, worauf Copilot zugreifen kann und was es in Ihrem Auftrag tun darf.

Zu den allgemeinen Konfigurationsoptionen gehören:

  • Vertrauenswürdige Verzeichnisse – Steuern, wo Copilot Dateien lesen, bearbeiten und ausführen kann.
  • Toolberechtigungen – Zulassen oder Einschränken von Copilot beim Ausführen von Shellbefehlen oder Ändern von Dateien mithilfe von Flags wie --allow-tool oder --deny-tool.
  • Pfadberechtigungen – Steuern, auf welche Verzeichnisse Copilot zugreifen kann.
  • URL-Berechtigungen – Verwalten Sie, mit welchen externen Domänen Copilot eine Verbindung herstellen kann.

In der offiziellen GitHub Copilot CLI-Dokumentation finden Sie vollständige Konfigurationsoptionen.

Sandkastenausführungsumgebungen

GitHub Copilot CLI unterstützt Sandkastenausführungsumgebungen, mit denen Ihr System geschützt wird, während Copilot Aufgaben in Ihrem Auftrag ausführen können.

Sandkasten isoliert Befehle, Dateivorgänge und andere Aktivitäten aus Ihrer primären Entwicklungsumgebung. Je nach Workflow können Sie zwischen lokalem Sandkasten und Cloud-Sandboxing wählen.

Lokales Sandboxing

Lokales Sandboxing ermöglicht Copilot, Befehle in einer eingeschränkten Umgebung auf Ihrem Computer auszuführen.

Wenn diese Option aktiviert ist, ist der Zugriff Copilot auf Ihr Dateisystem, die Netzwerkkonnektivität und die Betriebssystemfunktionen eingeschränkt, wodurch das Risiko unbeabsichtigter Änderungen verringert wird, während Sie dennoch von agentgestützten Workflows profitieren können.

So aktivieren Sie lokale Sandboxing während einer interaktiven Sitzung:

/sandbox enable

Nach dem Aktivieren der Sandbox werden von Copilot ausgeführte Befehle innerhalb der Sandbox-Umgebung und nicht direkt auf Ihrem Hostsystem ausgeführt.

Vorteile einer lokalen Sandbox

Benefit Description
Verbesserte Sicherheit Beschränkt den Zugriff auf vertrauliche Systemressourcen.
Sicherere Experimente Ermöglicht Es Ihnen, agentgesteuerte Workflows mit reduziertem Risiko zu testen.
Lokale Ausführung Verwendet die Ressourcen Ihres Computers, ohne dass eine Cloudinfrastruktur erforderlich ist.
Größere Steuerung Bietet zusätzliche Schutzmaßnahmen bei der Verwendung autonomer Agents.

Sandboxing in der Cloud

Die Cloud-Sandboxing ermöglicht Copilot CLI-Sitzungen, die in vollständig isolierten Linux-Umgebungen ausgeführt werden, die von GitHub gehostet werden.

Im Gegensatz zu lokalen Sandkastensitzungen werden Cloud-Sandkastensitzungen vollständig in GitHub gehosteten Infrastruktur ausgeführt und bleiben von Ihrem lokalen Computer und anderen Sandkastensitzungen getrennt.

Cloud-Sandboxing basiert auf Azure Container Apps Sandboxes, wobei GitHub die Authentifizierung, Governance, die Durchsetzung von Richtlinien und die Abrechnungsintegration bereitstellt.

So starten Sie eine Cloud-Sandbox-Sitzung:

copilot --cloud

Nach dem Start können Copilot Befehle ausführen, Dateien ändern, Tests ausführen und Entwicklungsaufgaben innerhalb der Cloudumgebung statt auf Ihrem lokalen Gerät ausführen.

Vorteile der Cloud-Sandboxing

Benefit Description
Starke Isolation Workloads werden separat vom lokalen Computer ausgeführt.
Geräteflexibilität Sitzungen auf verschiedenen Geräten fortsetzen.
Auslagerung von Ressourcen Verwendet Cloudressourcen anstelle der lokalen CPU und des lokalen Arbeitsspeichers.
Parallele Ausführung Führen Sie mehrere agentgesteuerte Aufgaben gleichzeitig aus.

Fortsetzen von Sitzungen auf allen Geräten

Da Cloud-Sandkastensitzungen in GitHub gehosteten Infrastruktur ausgeführt werden, ist die Arbeit nicht an einen bestimmten Computer gebunden.

Dies ermöglicht Folgendes:

  • Starten einer Sitzung auf einem Gerät
  • Fortsetzen der gleichen Sitzung von einem anderen Gerät
  • Arbeiten fortsetzen, ohne Dateien manuell zu übertragen oder Umgebungen neu zu erstellen

Diese Flexibilität ist besonders nützlich für Entwickler, die auf mehreren Computern oder Standorten arbeiten.

Sitzungslebenszyklus der Cloud-Sandbox

Cloud-Sandbox-Sitzungen können sich in drei Zuständen befinden:

State Description
Aktiv Die Sitzung wird ausgeführt und ist für Interaktionen verfügbar.
Gestoppt Die Sitzung ist pausiert, ihr Zustand bleibt jedoch zur späteren Verwendung erhalten.
Gelöscht Die Sitzung und der gesamte gespeicherte Zustand werden dauerhaft entfernt.

Wenn eine Sitzung beendet wird, speichert GitHub eine Momentaufnahme der Umgebung, einschließlich Dateien, Umgebungsvariablen und laufender Arbeit. Durch das Fortsetzen der Sitzung wird der gespeicherte Zustand wiederhergestellt, damit Sie fortfahren können, wo Sie aufgehört haben.

Authentifizierung und Zugriff

Cloud-Sandboxes verwenden das gleiche Authentifizierungsmodell wie GitHub Copilot CLI.

Wenn Sie sich bei GitHub Copilot CLI authentifizieren und Zugriff auf GitHub Copilot haben können, ist keine zusätzliche Cloudanbieterkonfiguration erforderlich.

Sie müssen folgendes nicht tun:

  • Verwalten von API-Schlüsseln
  • Konfigurieren der Cloudinfrastruktur
  • Bereitstellen virtueller Computer
  • Verwalten von Containerumgebungen

Hinweis

Organisations- oder Unternehmensadministratoren müssen die Cloud Sandbox-Zugriffsrichtlinie aktivieren, bevor Mitglieder Cloud-Sandkastenumgebungen verwenden können.

Lokales Sandboxing vs. Sandboxing in der Cloud

Funktion Lokaler Sandkasten Cloud-Sandbox
Ausführungsstandort Lokaler Computer GitHub gehostete Umgebung
Ressourcennutzung Lokale Ressourcen Cloudressourcen
Isolationsstufe Eingeschränkte lokale Umgebung Vollständig isolierte Cloudumgebung
Geräteunabhängigkeit No Ja
Parallele Arbeitslasten Beschränkt auf lokale Hardware Einfach skalierbar

Wann sollten Sie Sandkasten verwenden?

Erwägen Sie die Verwendung von Sandkasten in folgenden Fällen:

  • Arbeiten mit unbekannten Repositorys
  • Testen von vom Agent generierten Befehlen
  • Ausführen autonomer Workflows
  • Ausführen potenziell destruktiver Vorgänge
  • Arbeiten auf mehreren Geräten
  • Entladen rechenintensiver Entwicklungsaufgaben

Sandboxing bietet eine zusätzliche Ebene der Sicherheit und Flexibilität und ermöglicht es Ihnen, die Agentfunktionen von GitHub Copilot CLI sicher zu nutzen.

Tipps zur effektiven Verwendung von Copilot CLI

  • Verwenden Sie den interaktiven Modus (copilot) für explorative Aufgaben.
  • Verwenden Sie den Einzelschussmodus (copilot -i) für schnelle Antworten.
  • Eingaben in natürlicher Sprache funktionieren – Sie benötigen nicht immer Schrägstrichbefehle.
  • Überprüfen Sie immer Befehle vor der Ausführung.
  • Kombinieren Sie copilot CLI mit GitHub CLI (gh) für Repository- und Problemverwaltung.
  • Verwenden Sie Schrägstrichbefehle , wenn Sie strukturierte Aktionen oder Feedback wünschen.