Structured data shell that treats commands and files as typed data rather than raw text streams
Nushell is a shell that treats data as structured objects rather than plain text streams. Unlike traditional shells, Nu represents command outputs as tables with typed columns, allowing operations like filtering directories with ls | where type == "dir" or extracting specific fields from configuration files with open Cargo.toml | get package.version. The shell can parse structured file formats (JSON, TOML, CSV, etc.) automatically and make their contents available for manipulation through pipelines.
Nu's pipeline system extends the Unix philosophy by supporting three types of commands: producers that generate data streams, filters that transform data, and consumers that output results. Commands can work with both traditional text streams and Nu's structured data format. The shell includes built-in commands for common operations like ps for process listing, file operations, and data manipulation that all output structured data by default.
The shell supports cross-platform operation on Windows, macOS, and Linux, with platform-specific executable compatibility. Nu includes a plugin system where external binaries following the nu_plugin_* naming convention can extend functionality using a JSON-RPC protocol. Plugins can act as filters processing data streams or sinks consuming final pipeline output.
# via Homebrew
brew install nushell
# via Winget
winget install nushell
