github.com/nushell/nushell

A new type of shell

Open this visualization on its own page →

Contributors

195

Lines of Code

14,024

From

2019-05-10

To

2020-12-23

About nushell/nushell

Nushell is a cross-platform shell written in Rust that reimagines the Unix shell philosophy around structured data rather than text streams. Instead of treating command outputs as raw text, Nushell processes data as structured information—for example, listing a directory returns a table where each row represents a file with typed properties that can be queried and manipulated. This structured approach extends throughout the shell's design, allowing commands to work seamlessly with formats like TOML, JSON, and CSV as native data types.

The project emphasizes functional pipelines where commands are composed to load, transform, and output data without mutable state. Commands fit into three categories: producers that generate streams, filters that modify streams, and consumers that finalize output. Nushell supports plugins that follow the same structured data model through a JSON-RPC protocol, enabling community extensions that integrate naturally with built-in commands. The shell has reached a minimum viable product stage with many users running it as their daily shell, though some commands remain unstable as the design continues to mature.

Nushell draws inspiration from PowerShell, functional programming languages, and modern CLI tools, with explicit goals around cross-platform support for Windows, macOS, and Linux, compatibility with existing platform executables, and usability standards expected of contemporary software. The project maintains official support relationships with tools including starship, zoxide, oh-my-posh, atuin, and several others, reflecting its growing integration into the broader development ecosystem.

Share this video