
Nushell
A shell that treats command output as structured data you can filter and pipe.
- Stars
- 40.8k
- Forks
- 2.3k
- Licence
- MIT
- Language
- Rust
- Last update
- 5 days ago
- Type
- Dev tool
What it is
Nushell is a command-line shell, the program you type commands into in a terminal. Instead of passing plain text between commands, it passes structured data such as tables and records, so a command like ls returns rows you can filter and sort. It is written in Rust and is MIT licensed.
- List directory contents and filter them, for example ls | where type == "dir"
- Check running processes with ps and filter by CPU use
- Open a structured file such as Cargo.toml and drill into a field with get package.version
Great for
- Developers who work a lot in the terminal and want to query files, processes, or config files as data
- People who already like pipelines and want to compose commands in new ways
- Users on Linux, macOS, or Windows who want to try a different shell alongside their current one
Not ideal for
- People who need a fully stable, unchanging shell: the README says the project is at a minimum-viable-product level, some commands may be unstable, and the design may still change
- Anyone who relies on strict POSIX shell scripts, since Nu is a different language and existing bash scripts will not simply run in it
How to get it
- 1
Install with a package manager
Install on Linux or macOS with Homebrew
brew install nushellInstall on Windows with winget
winget install nushell - 2
Run it
- Install Nushell with your package manager or download a release binary
- Start it by running nu in a terminal
- Try ls | where type == "dir" to see a filtered table
- Type $nu.config-path to find where config.nu lives
- 3
Get the most out of it
- Read the Nushell book at nushell.sh/book for the full command reference
- Browse the cookbook at nushell.sh/cookbook for worked examples
- Customize config.nu, using the default sample config as a starting point
- Explore the plugin model, where plugins are nu_plugin_* binaries on your path that speak JSON-RPC
Downloads
Strengths
- Commands return structured tables, which makes filtering and reshaping output more direct than parsing text
- Pipelines read left to right and are built around composing the same commands in different ways
- Active project with an official book, cookbook, and Discord community
Trade-offs
- The README says the design is subject to change and some commands may be unstable
- It is a different language from POSIX shells, so switching requires learning new syntax
- Plugin support is described only briefly in the README, so the plugin workflow is not fully clear from it
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| nushell (this) | 40.8k | Dev tool | intermediate | 5 days ago | Developers who work a lot in the terminal and want to query files, processes, or config files as data |
| PowerShell | 56k | CLI | beginner | 4 days ago | Developers who script or automate tasks across Windows, Linux, and macOS |
| asdf | 25.6k | Dev tool | beginner | 5 days ago | Developers who work on several projects that need different language versions |
| zoxide | 40.4k | Dev tool | beginner | 4 days ago | Developers who move between many project folders in a terminal |
| oh-my-posh | 23.7k | Dev tool | intermediate | 4 days ago | Developers who want their terminal prompt to show extra context |
| spaceship-prompt | 20.6k | Dev tool | beginner | 10 days ago | Zsh users who want useful information in their prompt without much setup |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.