TiloBox
Back to directory
Nushell project preview

Nushell

A cross-platform shell that represents pipeline data as structured tables rather than plain text alone.

LicenseMIT
GitHub stars40.3k
Last commit1 weeks ago
Tags7 topics
CliRustShellStructured DataOpen SourceAi ToolsAutomation
Overview

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.

Guided learning

Learn Nushell by building

Practical setup notes, real use cases, and copy-ready examples in one focused guide.

4 min read 4 sections
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:

nu
1open Cargo.toml | update workspace.dependencies.base64 0.24.2 | save Cargo_new.toml

Complex 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:

nu
11..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:

bash
1# Linux and macOS
2brew install nushell
3# Windows
4wget install nushell

Once installed, users can customize prompts, keybindings, and environment settings. To see where config.nu is located on your system simply type this command.

rust
1$nu.config-path

Official 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.

Nushell FAQs

Nushell is listed as a Developer Tools tool on TiloBox. Review the overview, features, and official documentation on this page to decide whether it solves your specific workflow.

Start with the project's GitHub repository and official website for supported installation and deployment instructions. Test the setup with representative data or a small project before rolling it out more widely.

Nushell is listed under the MIT license. Read the complete license text and the project's notices before using, modifying, or distributing the software.

Production readiness depends on your requirements. Review maintenance activity, security practices, documentation, backup and upgrade procedures, and compatibility with your stack; then validate it in a non-production environment.

Nushell is listed as an alternative to PowerShell. Compare the core workflow, deployment model, integrations, and licensing against your must-have requirements before switching.