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.