Auf künstlicher Intelligenz basierende Assistenzsysteme sind auf dem Vormarsch. Ein populäres Beispiel im Microsoft-Umfeld ist der GitHub Copilot und dessen Integration in Visual Studio Code. Nun erobern KI-basierte Assistenten auch Befehlszeileninterpreter und unterstützen den Nutzer schon bei simplen Einzeilern und der Analyse von Fehlern. In diesem Artikel befassen wir uns mit den ersten Testversionen von Microsofts AI Shell, die seit Ende 2024 verfügbar sind.
Anders als der Name vermuten lässt, ist die AI Shell nicht als eigenständige Anwendung konzipiert. Sie verbindet vielmehr die PowerShell mit einer Reihe konfigurierbarer Assistenzsysteme wie Microsofts Copilot oder den GPTs (Generative Pre-trained Transformer) von OpenAI. Die AI Shell wird folgerichtig vom PowerShell-Team entwickelt und bringt keine eigene Intelligenz mit. Der Nutzer benötigt in jedem Fall ein Zugangskonto für einen KI-Anbieter, auf dessen Dienste er über die Integration der AI Shell zugreifen will.
Kontakt mit OpenAIs REST-API
Zum besseren Verständnis der Konfigurationsoptionen in der AI Shell lohnt vorab ein Blick auf den direkten, skriptbasierten Zugriff auf die API des KI-Pioniers OpenAI. Das Unternehmen gilt als Vorreiter der KI-Revolution, der populäre Chatbot ChatGPT steht sinnbildlich für die Innovationssprünge der jüngeren Vergangenheit. Über Kooperationen gelangt die Technologie in zahlreiche Angebote, etwa Microsofts "Azure AI Services", die einen Korb an Technologien in einem gemeinsamen Angebot bündeln.
Für den skriptbasierten Zugriff auf OpenAIs Dienste benötigen Sie einen API-Key, der wiederum ein Zugangskonto zur Plattform des Softwareherstellers erfordert. Über [1] können Sie beides erstellen. Schon mit einem kostenfreien Konto ist eine Reihe unterschiedlicher Nutzungsmöglichkeiten verbunden. Laufen Sie irgendwann doch in ein Nutzungslimit oder eine sonstige Einschränkung hinein, sollten Sie überlegen, ein kleines Guthaben einzuzahlen. Bereits mit fünf Euro lässt sich ordentlich herumprobieren.
Anders als der Name vermuten lässt, ist die AI Shell nicht als eigenständige Anwendung konzipiert. Sie verbindet vielmehr die PowerShell mit einer Reihe konfigurierbarer Assistenzsysteme wie Microsofts Copilot oder den GPTs (Generative Pre-trained Transformer) von OpenAI. Die AI Shell wird folgerichtig vom PowerShell-Team entwickelt und bringt keine eigene Intelligenz mit. Der Nutzer benötigt in jedem Fall ein Zugangskonto für einen KI-Anbieter, auf dessen Dienste er über die Integration der AI Shell zugreifen will.
Kontakt mit OpenAIs REST-API
Zum besseren Verständnis der Konfigurationsoptionen in der AI Shell lohnt vorab ein Blick auf den direkten, skriptbasierten Zugriff auf die API des KI-Pioniers OpenAI. Das Unternehmen gilt als Vorreiter der KI-Revolution, der populäre Chatbot ChatGPT steht sinnbildlich für die Innovationssprünge der jüngeren Vergangenheit. Über Kooperationen gelangt die Technologie in zahlreiche Angebote, etwa Microsofts "Azure AI Services", die einen Korb an Technologien in einem gemeinsamen Angebot bündeln.
Für den skriptbasierten Zugriff auf OpenAIs Dienste benötigen Sie einen API-Key, der wiederum ein Zugangskonto zur Plattform des Softwareherstellers erfordert. Über [1] können Sie beides erstellen. Schon mit einem kostenfreien Konto ist eine Reihe unterschiedlicher Nutzungsmöglichkeiten verbunden. Laufen Sie irgendwann doch in ein Nutzungslimit oder eine sonstige Einschränkung hinein, sollten Sie überlegen, ein kleines Guthaben einzuzahlen. Bereits mit fünf Euro lässt sich ordentlich herumprobieren.
Sobald Sie einen API-Key generiert haben, nehmen Sie direkt an der Kommandozeile Kontakt mit der REST-API auf – ein Programm oder eine besondere Erweiterung jenseits der Bordmittel benötigen Sie zu Beginn nicht. Die API-Keys aus Listing 1 sind als Beispiele zu verstehen, die Sie durch Ihre eigenen Schlüssel ersetzen müssen.
Listing 1: Anschluss der REST-API von OpenAI
## A: Ein einfacher Test für Windows, Linux und macOS
Beispiel A aus dem Listing sollte unter Linux, macOS und Windows funktionieren. Der Befehl curl ist seit geraumer Zeit unter Windows 10/11 im Lieferumfang enthalten. Achten Sie aber darauf, dass Sie in der Windows PowerShell den Befehl gleich doppelt vorfinden: als "curl.exe" sowie als Alias für "Invoke-WebRequest". Für das Beispiel in Zeile 2 von Listing 1 sollten Sie sicherheitshalber "curl.exe" verwenden.
Mit den Beispielen aus dem Listing 1 erhalten Sie eine Übersicht über die für Sie verfügbaren GPTs. Beispiel B und C erweitern den Befehl um die reine Ausgabe der GPT-Bezeichnungen in alphabetischer Sortierung. Es bietet sich an, den API-Key in einer Variable zu speichern. Die Übersetzung der Befehlszeile B mit curl, jq und sort in sein PowerShell-Äquivalent mit Invoke-RestMethod, Select-Object und Sort-Object demonstriert zugleich Ähnlichkeit und Unterschiede zwischen diesen Technologien.
AI Shell unter Windows installieren
Unter dem Projektnamen "Mercury" entwickelt, erschien bis zum Redaktionsschluss die zweite Vorabversion der AI Shell (1.0.0.-preview.2). Einen kurzen ersten Eindruck vermittelt der Blogartikel des Entwicklerteams [2]. Analog zur plattformübergreifenden PowerShell unterstützt die AI Shell Windows, macOS und Linux. In weiteren Verlauf werfen wir einen Blick auf die Integration in Windows. Die AI Shell bringt künstliche Intelligenz in die Kommandozeile, erweitert idealerweise das Gespann aus Windows Terminal und PowerShell 7 um Funktionen zur Fehlersuche und -behebung. Für die Installation empfiehlt sich das offizielle Installationsskript, das PowerShell 7.4.6 erfordert und Windows und macOS unterstützt:
Eine vorkompilierte Version lässt sich auch ohne das Installationsskript auf der Release-Seite des Projekts [3] herunterladen, in ein beliebiges Verzeichnis entpacken und mit dem Aufruf des Executables "aish.exe" starten. Das Skript erleichtert die Arbeit, sofern es drei Teilaufgaben in einem Vorgang erledigt:
- Herunterladen und Entpacken der Programmdateien in "C:\Users\<Benutzername>\AppData\Local\Programs\AIShell\aish.exe"
- Erweitern der Pfadvariablen um das Programmverzeichnis.
- Herunterladen des PowerShell-Moduls "AIShell" aus der PowerShell-Gallery und Bereitstellung im Benutzerkontext.
Von der Installation mittels AppInstaller/WinGet ist derzeit abzuraten, denn das WinGet-Manifest erscheint zum jetzigen Zeitpunkt weder ausgereift noch vollständig funktionstüchtig.
Erste Schritte
Zum besseren Verständnis, was die AI Shell im Kern an Funktionalität bereitstellt, bietet sich ein erster Gehversuch mit der alleinstehenden Variante an. Rufen Sie einfach aish.exe auf, zum Beispiel mittels "Start / Ausführen". Nun gilt es, sich für einen der beiden vordefinierten KI-Agenten zu entscheiden. Der Begriff Agent beschreibt jenen Code, der im Hintergrund die Verbindung zu den Assistenzsystemen bereitstellt:
1. openai-gpt (Azure OpenAI Agent)
2. azure (Copilot in Azure)
Die Benennung der Agenten ist jedoch äußerst missverständlich. Im Kern bietet die erste Option die Anbindung an eine zu OpenAI kompatible REST-API und den dort verfügbaren GPTs. Wählen Sie für eine erste Konfigurationsanpassung zunächst "openai-gpt". Nach dem Start der Shell steht Ihnen eine Reihe von sogenannten chat commands zur Verfügung, deren Aufruf mit einem Schrägstrich beginnt. Neben dem obligatorischen /help konfigurieren Sie mit /agent config Ihren Zugang zu den KI-Diensten, die Sie einbinden wollen. Die Datei "openai.agent.json" wird dann mit der Standardanwendung für JSON-Dateien gestartet.
Um eine funktionstüchtige Konfiguration zu erzeugen, müssen Sie zunächst eine Reihe von Kommentarzeichen in der geöffneten JSON-Datei entfernen. Als Kommentarzeichen verwendet das JSON-Format entweder die doppelten Schrägstriche "//" oder einen mehrzeiligen Kommentarblock "/* */". Hinterlegen Sie dann Ihren OpenAI-API-Key im Konfigurationsblock "ps-gpt4o" (Zeile 18 in Bild 1). Auf die Schlüsselworte "Endpoint" und "Deployment" können Sie in diesem Fall vollständig verzichten.
Der Konfigurationsblock "ps-az-gpt4" kann zunächst unverändert bestehen bleiben. Im Abschnitt "Weitere KI-Anbieter einbinden" gehen wir näher auf diese Konfiguration ein. Die unterschiedlichen Abschnitte verstehen sich als alternative Konfigurationsoptionen, mit denen Sie verschiedene Dienstanbieter einbinden. Die aktuell verwendete Konfiguration legen Sie mit dem Schlüsselwort "Active" fest (Zeile 22 in Bild 1).
Bild 1: Über die JSON-Datei "openai.agent.json" nehmen Sie eine detaillierte Konfiguration des KI-Agenten vor.
Nun formulieren Sie Ihren ersten Prompt, etwa "Übersetze ‘Hallo Welt!’ in Esperanto!". Ein besonderes Chatkommando benötigen Sie hierfür nicht. Für den Agenten "ps-gpt4o" bedarf es darüber hinaus keiner weiteren Anpassungen. Wie zu erwarten, ist das vorkonfigurierte Modell GPT-4o auch gut zum Erstellen von PowerShell-Code geeignet. Testen wir dies anhand einer Standardaufgabe, dargestellt in Listing 2.
Listing 2: Fibonacci-Berechnung
## Prompt 1
## Erstelle eine Funktion zur Berechnung der Fibonacci-Reihe!
## Prompt 2
## Ich möchte in der Ausgabe großer Zahlen keine Exponentialschreibweise verwenden.
# Beispiel: Berechnung der ersten zehn natürlichen Fibonacci-Zahlen
Get-Fibonacci -n 10
Auf explizite Nachfrage verwendet der Agent den Datentyp [bigint], sodass selbst große Zahlen wie im Prompt 2 gewünscht ohne Exponentialschreibweise ausgegeben werden. ChatGPT lässt sich in der AI Shell kurz gefasst genauso verwenden, wie Sie es vom Webinterface kennen. Um die Code-Snippets, die der Chatbot generiert, ausführen zu können, reicht der Chat-Befehl /code copy und die Code-Snippets aus der Antwort landen in der Zwischenablage des Betriebssystems.
PowerShell-Integration
AI Shell ist als Erweiterung für die PowerShell (ab v7.4.5) konzipiert. In der PowerShell Gallery findet sich ein Modul zur Integration, das die bereits installierte AI Shell voraussetzt:
Install-Module -Name 'AIShell' -AllowPrerelease
Get-Command -Module 'AIShell'
Achtung: "Install-Module" ist nicht erforderlich, wenn Sie das Installationsskript genutzt haben. Das Modul bringt in der getesteten Preview drei Cmdlets, die die Integration in die PowerShell-Console erlauben:
- Start-AIShell: startet die AI Shell in einem Split-Screen. Mit dem "-path"-Parameter übergeben Sie den Pfad zur AI Shell explizit.
- Invoke-AIShell: übergibt einen Prompt an die rechte Seite des Terminals. Interessant ist hierbei, dass Sie explizit den Agenten, das KI-Modell benennen können, etwa mit Invoke-AIShell -Query 'Erstelle eine Funktion, um die öffentliche IP auszugeben.' -Agent openai-gpt.
- Resolve-Error: übergibt die Fehlermeldung des letzten Befehls an die AI Shell. Es muss sich hierbei um einen "echten" PowerShell-Fehler handeln, wie er in der $error-Variable erfasst wird. Auch hier lässt sich wieder der Agent bestimmen und auf Wunsch der Inhalt der Zwischenablage an die KI übergeben, zum Beispiel mit Resolve-Error -IncludeOutputFromClipboard -Agent openai-gpt.
Die Möglichkeit der Fehleranalyse mit Resolve-Error dürfte aktuell der interessanteste Anwendungsfall für die AI Shell sein. Im Terminal entwickeln wohl die wenigsten Admins komplexe Funktionen oder Skripte. Sehr viel häufiger geht es um Konfigurationsänderungen für den laufenden Betrieb und – praktisch unvermeidbar – die Fehlersuche. Denken Sie an die Arbeit mit Microsoft 365, Entra und vielen weiteren Azure-Diensten. Da ist es dann häufig der Einzeiler, der die nötige Anpassung vornimmt. In einem solchen Kontext ist die erweiterte Hilfefunktion der AI Shell sicher eine interessante Ergänzung.
Weitere KI-Anbieter einbinden
Zu Beginn des Artikels haben wir uns auf die direkte Anbindung an OpenAI beschränkt. In der Konfigurationsdatei "openai.agent.json" können Sie aber auch eine Reihe weiterer Anbieter hinterlegen. Da sich viele Konkurrenten an den von OpenAI definierten Standards für den API-Zugriff orientieren, lassen sich mit minimalen Änderungen Anbieter wie DeepSeek (Listing 3, Konfigurationsblock "gpt-deepseek") oder Googles Gemini hinzufügen. Sogar lokale oder selbst verwaltete Instanzen binden Sie auf diese Weise ein. Allerdings sollten Sie sich dann gedanklich möglichst schnell von der unglücklichen Bezeichnung "openai-gpt" des Agenten lösen.
Listing 3: Weitere Anbieter in openai.agent.json konfigurieren
"GPTs": [
{
"Name": "ps-az-gpt4",
"Description": "A GPT instance gpt-4 running in Azure.",
"Endpoint": "https://example-
endpoint.openai.azure.com", // Ihr Endpoint
"Deployment": "gpt-4o",
"ModelName": "gpt-4o",
"Key":
"5bdb6kpytniknqDymM5COD1jBdDMmavW",
// Ihr Zugangsschlüssel
"SystemPrompt": "Current model: gpt-4o (Azure AI Services)"
},
{
"Name": "gpt-deepseek",
"Description": "A GPT instance using
DeepSeek v3.",
"Endpoint": "https://api.deepseek.com",
"Deployment": null,
"ModelName": "deepseek-chat",
"Key": "sk-841d61bbed8a4703", // Ihr API
Key
"SystemPrompt": "Current model: deep
seek-chat"
}
Einen Sonderfall stellt die Konfiguration der Azure AI Services dar (Listing 3, Konfigurationsblock "ps-az-gpt4"). Um diese Option nutzen zu können, müssen Sie zunächst eine entsprechende Azure-Ressource bereitstellen und diese Konfiguration in die JSON-Datei übertragen. Das PowerShell-Team hat eine Vorlage im Bicep-Format veröffentlicht, die die erforderliche Ressource in wenigen Augenblicken erzeugt. Eine schrittweise Anleitung finden Sie unter [4].
In jedem Fall benötigen Sie Grundkenntnisse über Azure und die Azure AI Services. Der wesentliche Vorteil dieses Ansatzes besteht darin, dass Sie verschiedene Assistenzsysteme in Azure bündeln und mit den dort verfügbaren Mitteln Datensicherheit und Privatheit stärker an die eigenen Wünsche und Notwendigkeiten anpassen können. In einem letzten Schritt lassen sich auch eigene Agenten schreiben, was Microsoft am Beispiel eines Agenten für Ollama dokumentiert [5].
Bild 2: Die AI Shell eignet sich derzeit besonders zur Fehlerbehebung in PowerShell-Skripten.
Azure Copilot: Kostenfrei, aber eingeschränkt
Als Alternative zur Anbindung mittels "openai-gpt" steht Ihnen ein zweiter Agent zur Verfügung: "Copilot in Azure" – im Auswahlmenü beim Start der Shell unglücklicherweise schlicht "azure" genannt. Um diesen nutzen zu können, müssen Sie zunächst ein "Azure CLI Token" generieren, was nichts anderes bedeutet, als dass Sie sich mit der AzureCLI an Azure anmelden. Seit der Preview 2 lässt sich die Verbindung ebenfalls mittels "Connect-AzAccount" herstellen:
Einmal angemeldet, beantwortet der Agent Fragen zur Verwaltung von Azure/ M365 recht zuverlässig (Listing 4). Auch hierbei ist es möglich, Ihre Fragen in Deutsch zu formulieren – die Qualität der Antworten bleibt auf hohem Niveau. Allgemeine Fragen wie "Wie heißen die Mitglieder der Beatles?" mag der Azure Copilot übrigens nicht beantworten.
Listing 4: Frage und Antwort mittels Azure Copilot
## PROMPT:
## Wie weise ich eine M365-Lizenz einer EntraID zu? Wie mache ich dies in der PowerShell?
## ANTWORT vom Copilot in Azure:
# To assign a Microsoft 365 license to an Entra ID using PowerShell
# Step 1: Authenticate to your Microsoft 365 account to access resources
Die AI Shell hinterlässt einen zwiespältigen Eindruck. Einerseits ist die unmittelbare Integration in die Arbeit im Terminal spannend, andererseits werden wohl (fast) alle ambitionierten PowerShell-Entwickler Ihren Arbeitsalltag eher in einem Editor verbringen. So stellt sich die Frage nach dem idealen Ort für eine solche KI-Integration. Erweiterungen für Editoren scheinen dann wohl doch die naheliegendere Option zu sein und Projekte wie der VSCode-Fork Cursor geben die Richtung vor. Alternative Ansätze wie Warp oder agil weiterentwickelte PowerShell-Module wie Doug Finkes PSAI sind starke Mitbewerber um die Gunst der terminalaffinen Anwender.
Andererseits: die Fehleranalyse durch das AIShell-Cmdlet "Resolve-Error" ist bestechend. Ebenso sinnvoll ist die auf Azure reduzierte Hilfe durch den "Copilot in Azure", der kostenfrei nutzbar ist, insofern sich der Nutzer in Azure anmeldet – was ja ohnehin notwendig ist, wenn er die Vorschläge des Assistenten umsetzen möchte. Am schmerzlichsten fehlt (noch) die Integration der KI in die unmittelbare Autovervollständigung. Das umständliche Hin und Her zwischen der AI Shell und PowerShell erscheint nicht zeitgemäß.
Das PSReadLine-Modul, bereits heute die Quelle für inline angebotene Vorschläge, bietet bereits eine konfigurierbare Schnittstelle. Dort wäre die Integration der KI-Dienste am sinnvollsten. Dies gilt umso mehr für die Linux-basierte Azure Cloud Shell. Der Copilot in Azure könnte dort zum hilfreichen Assistenten werden. Aktuell scheitert die Integration aber an der unvollständigen Linux-Unterstützung und dem Split-Screen-Konzept, das in der Azure Cloud Shell hinderlich ist, da diese auch im Browser lauffähig sein muss.