CLI AI

El mismo flujo en Windows: paridad con PowerShell y cmd

2026-03-03

CliAI nació en Linux y macOS, donde la suposición es bash o zsh y un fork-exec estilo Unix para el handoff. La ruta de Windows es genuinamente distinta: no hay $SHELL, el lanzador de la shell viene de $COMSPEC (o tu terminal abre explícitamente pwsh.exe), y los comandos en sí son distintos. Tomamos la paridad como objetivo de producto, no como casilla.

Qué significa "paridad"

No significa traducir comandos Unix a Windows. Significa que el mismo prompt en lenguaje natural produce el comando correcto para la shell donde estés. Pide "lista los puertos en escucha" en Linux y verás ss -ltnp; pide lo mismo en Windows con PowerShell y verás Get-NetTCPConnection.

PowerShell
PS C:\> clai lista los puertos TCP en escucha con el nombre del proceso→ 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

Tres ejemplos más en PowerShell

Encontrar archivos de más de 100 MB

PowerShell
PS C:\> clai encuentra archivos mayores de 100 MB en D:\projects→ Get-ChildItem -Path D:\projects -Recurse -File `    | Where-Object { $_.Length -gt 100MB } `    | Sort-Object Length -Descending `    | Select-Object FullName, Length

Matar el proceso que ocupa un puerto

PowerShell
PS C:\> clai mata el proceso del puerto 8080→ Stop-Process -Id (Get-NetTCPConnection -LocalPort 8080).OwningProcess -Force[Safety: CAUTION] — equivalente a SIGKILL.

Tail de un log

PowerShell
PS C:\> clai sigue las últimas 100 líneas de C:\app\error.log→ Get-Content -Path C:\app\error.log -Tail 100 -Wait

Qué pasa por detrás

Cuando pulsas Enter, CliAI:

  1. Lee $COMSPEC (por defecto cmd.exe) en Windows; si el host es PowerShell, usa pwsh.exe.
  2. Lanza la shell con el comando generado como argumento — no hay modelo fork/exec en Windows.
  3. El comando corre en tu consola actual, con tu entorno, directorio y el historial de PSReadLine.

Lo que aún no funciona igual

  • Pipear stdin a clai mismo tiene pequeñas diferencias; en particular, el stripping de ANSI se comporta distinto en cmd legacy. Usa Windows Terminal o pwsh para la mejor experiencia.
  • Expansión de rutas. Rutas con espacios al arrastrar siguen necesitando comillas. CliAI cita el comando generado, pero pasa la ruta original entrecomillada.

Ver también