# Nushell

> Structured data shell that treats commands and files as typed data rather than raw text streams

Stars: 40.8k · Language: Rust · License: MIT · Categories: Shell

- Repository: https://github.com/nushell/nushell
- Website: https://www.nushell.sh/
- Page: https://www.trmn.sh/tools/nushell

## Install

- Homebrew: `brew install nushell`
- Winget: `winget install nushell`

## Overview

Nushell is a shell that treats data as structured objects rather than plain text streams. Unlike traditional shells, Nu represents command outputs as tables with typed columns, allowing operations like filtering directories with `ls | where type == "dir"` or extracting specific fields from configuration files with `open Cargo.toml | get package.version`. The shell can parse structured file formats (JSON, TOML, CSV, etc.) automatically and make their contents available for manipulation through pipelines.

Nu's pipeline system extends the Unix philosophy by supporting three types of commands: producers that generate data streams, filters that transform data, and consumers that output results. Commands can work with both traditional text streams and Nu's structured data format. The shell includes built-in commands for common operations like `ps` for process listing, file operations, and data manipulation that all output structured data by default.

The shell supports cross-platform operation on Windows, macOS, and Linux, with platform-specific executable compatibility. Nu includes a plugin system where external binaries following the `nu_plugin_*` naming convention can extend functionality using a JSON-RPC protocol. Plugins can act as filters processing data streams or sinks consuming final pipeline output.

### Installation

```bash
# via Homebrew
brew install nushell
```

```bash
# via Winget
winget install nushell
```

![Nushell autocomplete demonstration](https://media.trmn.sh/cached/421e7ae364e20faa7abb3ce5b07a655e9d6006335e323d8a977141f2cc7c5d6c.gif)

## Alternatives

- [zoxide](https://www.trmn.sh/tools/zoxide.md): Smart cd replacement that remembers frequently used directories for quick navigation (Rust, 40.4k stars)
- [fish](https://www.trmn.sh/tools/fish.md): Interactive command line shell with syntax highlighting, autosuggestions, and tab completions that work without configuration (Rust, 34.4k stars)
- [atuin](https://www.trmn.sh/tools/atuin.md): Shell history management with SQLite storage, search interface, and encrypted sync across machines (Rust, 32.2k stars)
- [starship](https://www.trmn.sh/tools/starship.md): Cross-shell prompt that displays contextual information about Git repos, programming languages, and system status (Rust, 60.6k stars)
- [genact](https://www.trmn.sh/tools/genact.md): Terminal program that prints fake activity output (compilers, builds, botnets, downloads) to look busy. Runs natively or in a browser via WebAssembly. (Rust, 12.2k stars)

## Guides

- [Set up a fast cross-shell prompt with starship](https://www.trmn.sh/guides/starship-prompt-setup): Install starship, load it in bash, zsh or fish, edit starship.toml, apply a preset, and fix slow prompts or missing Nerd Font glyphs.

---

Canonical: https://www.trmn.sh/tools/nushell
