What is Nushell?
Nushell (the nu command) is a modern shell built around structured data. Instead of passing raw text between commands, every pipeline carries typed tables and records, ls returns rows you can filter, sort and sum, and JSON, YAML, CSV, TOML and SQLite are first-class citizens. It combines a real programming language with an interactive shell, giving you clear error messages, completions and syntax highlighting out of the box.
nu in /etc/shells on install (and removes it cleanly on uninstall), so chsh -s /usr/bin/nu works immediately, no manual editing. The binary is statically linked (musl), so your shell keeps working regardless of library upgrades.
apt upgrade keeps you on the latest version.
⚡ Key Features of Nushell
📊 Structured Pipelines
Commands emit tables, not text: ls | where size > 1mb | sort-by modified: no awk, cut or sed gymnastics.
🔄 Every Data Format
Open and transform JSON, YAML, CSV, TOML, XML and SQLite natively: open Cargo.toml | get package.version.
🧠 A Real Language
Typed variables, closures, custom commands and modules, with compile-time-quality error messages that point at the exact span.
🔌 Plugins Included
Ships the official plugins: polars (dataframes), query (JSON/XML/web scraping), formats, gstat and inc.
🔐 Login-shell Ready
Registered in /etc/shells by the package, switch with chsh -s /usr/bin/nu the moment apt finishes.
📦 Zero Dependencies
A single static musl binary. No runtime, no libraries to break, ideal for a program you log into.
🏆 Why install it with apt?
- Safe for a shell: statically linked builds, registered and deregistered in
/etc/shellsby the package scripts, the details that matter when it's your login shell - Plugins included: the official plugin set ships in the same package, matched to the exact nu version (plugins require it)
- No curl-to-bin: a GPG-signed repository instead of downloading binaries into
/usr/local/binby hand - Automatic updates: new upstream releases arrive with your normal
apt upgrade: important, since Nushell releases monthly - Multi-arch: amd64, arm64, armhf and riscv64
📦 Installation from deb.griffo.io
Step 1: Add Repository
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt updatesudo apt install extrepo
sudo extrepo enable griffo
sudo apt update🆓 There is an always-free mirror. deb-free.griffo.io serves packages free forever, no account, no subscription, at most 2 months behind upstream, security fixes immediately. It currently carries cliamp, Ghostty, lazydocker, Oh My Posh, Uncloud and Zed; Nushell is not one of them, so the repository above is the only way to get it today, ask and it can be enrolled.
🧩 About the extrepo option. extrepo is Debian's own tool for external repositories: it writes the sources file and installs the signing key for you, checking the key against signed metadata first. This repository is registered with it as griffo, and the always-free mirror as griffo-free, so on Debian (bookworm, trixie, forky and sid) the commands above are the whole setup.
extrepo sets up the sources file and the key only, so a subscription's credentials still go in /etc/apt/auth.conf.d/deb.griffo.io.conf. Ubuntu is not covered, because extrepo publishes metadata for Debian suites only: there, use the sudo or root commands.
Step 2: Install Nushell
sudo apt install -y nushellapt install -y nushell🚀 First run
nu # start an interactive session
ls | where size > 1mb | sort-by modified # structured pipelines
open /etc/os-release | lines | parse "{key}={value}" # parse anything
chsh -s /usr/bin/nu # make it your login shellPlugins are registered once per user from inside nu, for example:
plugin add /usr/bin/nu_plugin_query
plugin add /usr/bin/nu_plugin_polars📦 Package Build Repository
The Debian packages are automatically built and maintained in this GitHub repository:
- 📂 nushell-debian - Latest release builds
🔗 Related Packages
Also available from deb.griffo.io:
- starship - A cross-shell prompt with first-class Nushell support
- atuin - Searchable, syncable shell history, works inside nu
- zoxide - A smarter cd that integrates with Nushell
💝 Support This Project
If this repository saves you time and effort, please consider supporting it!
