Nushell
A cross-platform shell that represents pipeline data as structured tables rather than plain text alone.
Why consider Nushell?
Nushell is an open-source shell that handles data as structured tables and records rather than raw text streams. It provides cross-platform pipeline commands for querying, transforming, and automating structured data.
Learn Nushell by building
Practical setup notes, real use cases, and copy-ready examples in one focused guide.
In this guide4 sections
Nushell: Structured Data Shell and Pipeline Engine
Traditional Unix shells pass unstructured text between commands, requiring utilities like awk, sed, and grep to slice and parse output. The project introduces A new type of shell. Designed to bridge command-line operations with modern data structures, Nu draws inspiration from projects like PowerShell, functional programming languages, and modern CLI tools. By treating command output as tables, lists, and records, engineers can filter and transform complex information directly within the terminal without custom string parsers.
At the core of the engine is a fundamental shift in how terminal input and output are handled. Rather than thinking of files and data as raw streams of text, Nu looks at each input as something with structure. When working with directory listings, processes, or structured files like JSON and YAML, commands output typed data. For example, when you list the contents of a directory what you get back is a table of rows, where each row represents an item in that directory. Each column retains its specific type, such as filenames, file sizes, or modification timestamps, making downstream filtering predictable.
Pipeline Composition and Data Flow
The shell organizes operations into multi-stage pipelines that pass structured tables from one command to another. According to the official documentation, A pipeline is composed of three parts: the input, the filter, and the output. The input stage produces or ingests data from a file or system call, the filter stages apply transformations or selections, and the output stage either renders the final table or persists it to disk, as demonstrated in this multi-stage workflow:
open Cargo.toml | update workspace.dependencies.base64 0.24.2 | save Cargo_new.tomlComplex pipeline transformations often require referring directly to the data passed into a stage or closure. Much of Nu's composability comes from the special $in variable, which holds the current pipeline input. Within filters and closures, $in allows developers to compute values on each row or access specific elements within a streaming collection, such as mapping across ranges:
1..10 | each {$in * 2}Language Semantics and Type System
Beyond serving as an interactive prompt, Nushell is both a programming language and a shell. It enforces standard programming syntax rather than relying on legacy POSIX shell quirks. In Nushell, however, the > is used as the greater-than operator for comparisons. Because redirection operators are not overloaded as comparison symbols, output redirection is always explicitly performed through dedicated commands like save.
To support robust data manipulation across command boundaries, the runtime implements a comprehensive type system. Like many programming languages, Nu models data using a set of simple, structured data types. These primitives include integers, floating-point numbers, booleans, strings, dates, durations, file sizes, and records. Built-in type validation helps prevent runtime errors during script execution.
Installation and Configuration
Nushell provides precompiled binaries across multiple platforms, and Nu is available via many package managers: allowing quick setup on Linux, macOS, and Windows:
# Linux and macOSbrew install nushell# Windowswget install nushellOnce installed, users can customize prompts, keybindings, and environment settings. To see where config.nu is located on your system simply type this command.
$nu.config-pathOfficial Documentation and Release Tracking
Developers looking to explore command syntax, custom commands, and plugins can reference the official documentation and community hub at https://www.nushell.sh. The Nushell book is the primary source of Nushell documentation. The project maintains frequent releases with cross-platform binaries, such as This is the 0.115.0 release of Nushell.
Related tools
More options with a similar category or technology profile.
diskus
Minimal, fast alternative to du -sh written in Rust using multi-threaded directory traversal.
peco
Simplistic interactive filtering tool for Unix pipelines, process lists, and file trees.
Dapr CLI
Command-line tool for managing Dapr distributed application runtime environments and sidecars.
Freeze
Generate beautiful image screenshots and SVGs of code snippets and terminal outputs.