nushell/nushell

Created Dec 23, 2020 · View the nushell/nushell repository page

A new type of shell

Want this for your repo?

Render a free sample of any GitHub repo in seconds.

Visualize your own →

Contributors

195

Lines of Code

14,024

From

May 10, 2019

To

Dec 23, 2020

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