Nushell vs PowerShell
Both ditch “pipe only text blobs.” That is the important part. The rest is taste, ecosystem, and gravity.
| PowerShell | Nushell | |
|---|---|---|
Pipe currency |
Live .NET objects (methods, reflection) |
Tables / records / primitives (data, not OOP instances) |
Runtime |
.NET CLR |
Rust native binary |
Feel |
Enterprise verbs, Windows-first history |
Concise, cross-platform, functional pipelines |
Opening data |
Often ConvertFrom-\* / Import-\* |
|
External CLIs |
Easy to fall back to string arrays |
Builtins return tables; text tools get |
File and pipe encoding |
Windows PowerShell 5.1: ANSI reads of BOM-less files, ANSI or UTF-16 writes, OEM console page. PowerShell 7: UTF-8 without BOM |
UTF-8 everywhere |
Pick PowerShell when you are deep in AD/Azure/Windows modules or stuck on legacy scripts.
Pick Nushell for day-to-day Dev-Centr work on any OS, structured files/APIs, and agent-friendly pipelines.
You do not rewrite every app in Nu script. Emit JSON/structure, use a plugin, or (soon) call something like nu-emitunchecked. See Nushell and AI agents for the adoption/DevX angle.
We still document PowerShell where the OS forces it. We do not treat it as the long-term default.
If agents on your machine run commands in Windows PowerShell 5.1 (powershell.exe, still the Windows default), its encoding defaults double-encode UTF-8 files they rewrite. See Text encoding and AI agents and Prevent text encoding corruption.