CLI AI

Derselbe Workflow auf Windows: Parität mit PowerShell und cmd

2026-03-03

CliAI startete unter Linux und macOS, wo bash/zsh und ein Unix-artiger Fork-Exec für den Handoff vorausgesetzt werden. Der Windows-Pfad ist wirklich anders: Es gibt kein $SHELL, der Shell-Launcher kommt aus $COMSPEC (oder dein Terminal öffnet explizit pwsh.exe), und die Befehle selbst sind andere. Parität war für uns echtes Produktziel, kein Häkchen.

Was „Parität" hier heißt

Es bedeutet nicht, Unix-Befehle nach Windows zu übersetzen. Es bedeutet: derselbe natürliche Prompt erzeugt den richtigen Befehl für die Shell, in der du stehst. Frag unter Linux nach „zeig die lauschenden Ports" und du bekommst ss -ltnp; das Gleiche unter Windows in PowerShell ergibt Get-NetTCPConnection.

PowerShell
PS C:\> clai liste lauschende TCP-Ports mit Prozessnamen→ Get-NetTCPConnection -State Listen `    | Select-Object LocalAddress, LocalPort,                    @{N='Process';E={(Get-Process -Id $_.OwningProcess).ProcessName}}LocalAddress  LocalPort  Process0.0.0.0       80         nginx0.0.0.0       443        nginx

Drei weitere PowerShell-Beispiele

Dateien über 100 MB finden

PowerShell
PS C:\> clai finde Dateien über 100 MB unter D:\projects→ Get-ChildItem -Path D:\projects -Recurse -File `    | Where-Object { $_.Length -gt 100MB } `    | Sort-Object Length -Descending `    | Select-Object FullName, Length

Prozess auf einem Port killen

PowerShell
PS C:\> clai kill den Prozess auf Port 8080→ Stop-Process -Id (Get-NetTCPConnection -LocalPort 8080).OwningProcess -Force[Safety: CAUTION] — Äquivalent zu SIGKILL.

Logdatei verfolgen

PowerShell
PS C:\> clai folge den letzten 100 Zeilen von C:\app\error.log→ Get-Content -Path C:\app\error.log -Tail 100 -Wait

Was unter der Haube passiert

Wenn du Enter drückst, macht CliAI:

  1. liest $COMSPEC (Default cmd.exe) unter Windows; ist der Host PowerShell, nutzt es pwsh.exe.
  2. startet die Shell mit dem generierten Befehl als Argument — fork/exec gibt es unter Windows nicht.
  3. Der Befehl läuft in deiner aktuellen Konsole, mit deiner Umgebung, dem Arbeitsverzeichnis und der PSReadLine-Historie.

Was nicht ganz gleich läuft

  • Stdin in clai selbst pipen verhält sich leicht anders; insbesondere das ANSI-Stripping unterscheidet sich in legacy cmd. Für die beste Erfahrung Windows Terminal oder pwsh nutzen.
  • Pfad-Expansion. Gezogene Pfade mit Leerzeichen brauchen weiterhin Quotes. CliAI quotet den generierten Befehl, du solltest die Quelle aber selbst quoten.

Siehe auch