A shell that treats data as structured objects, supporting typed pipelines and cross-platform compatibility
Nushell is a shell that fundamentally changes how command-line data is handled by treating all inputs and outputs as structured data rather than text streams. Unlike traditional Unix shells, Nu represents file listings, process information, and command outputs as tables and records that can be queried, filtered, and manipulated using a consistent set of operations.
The shell's pipeline system extends the Unix philosophy by supporting three types of commands: producers (like ls), filters (like where type == "dir"), and consumers (like table). Data flows through pipelines as structured objects, enabling operations like ps | where cpu > 0 to filter process lists by CPU usage or open Cargo.toml | get package.version to extract specific fields from configuration files. Nu automatically parses common file formats (TOML, JSON, CSV, etc.) into structured data that can be immediately queried.
Nu provides cross-platform compatibility with first-class support for Windows, macOS, and Linux, while maintaining interoperability with existing platform-specific executables. The shell includes a plugin system where external binaries following the nu_plugin_* naming convention can extend functionality through a JSON-RPC protocol. Configuration is handled through Nu script files, with default configurations available and customizable per user needs.
# via Homebrew
brew install nushell
# via Winget
winget install nushell
