opensourceprojects.dev

A broadsheet for software that doesn't ask for your email

Nushell: a shell that treats data as structured tables, not raw text
GitHub RepoImpressions3

Project Description

View on GitHub

Nushell: When Your Shell Actually Understands Your Data

You know the drill. You run ps aux | grep something, then pipe it to awk or cut to extract a column, then maybe sort it, then... it's a mess of fragile text parsing that breaks the moment someone's username has a space.

What if your shell could just talk about data in a structured way? Enter Nushell.

What It Does

Nu (as it's often called) is a modern shell that treats everything as structured data: tables, lists, records. Instead of parsing text output line by line, you get typed columns, rows, and operations that actually make sense. Commands return structured objects, and you filter, group, and transform them using a pipeline that's more like SQL than bash.

# Instead of parsing ps output with awk, you just say:
ps | where cpu > 50 | sort-by mem

# This returns a table, not text. You can then access columns directly:
ps | get name

Under the hood, it's written in Rust (fast, safe) and uses a plugin system for extending functionality. It's not a "bash killer" — it's a different way to think about shell interactions when data matters more than text.

Why It's Cool

Columns are real. When you run ls, you get a table with columns for name, size, modified date, type. You can then filter by any column: ls | where size > 1mb | sort-by name. No regex, no awk gymnastics.

Pipelines are typed. A command's output isn't a string blob — it's a structured list or table. This means you can chain operations like a poor man's data pipeline:

ls | where type == "file" | select name size | to csv

That generates CSV of your files. No awk or sed needed. Want JSON? Just change to csv to to json.

Error handling is sane. Instead of a cryptic command not found, you get clear error messages with suggestions. Missing a flag? Nu tells you what the valid options are.

History and completions that work. It includes fuzzy matching, history search, and completions for built-in commands and many external tools. It's like fish, but with data awareness.

How to Try It

Quickest way on macOS/Linux:

brew install nushell

Or grab a prebuilt binary from the releases page. Then just run:

nu

You're in Nu. Try help commands to see what's available, or help operators to learn the filtering syntax.

There's also a playground online if you just want to poke around without installing anything.

Final Thoughts

Nushell isn't going to replace bash overnight. Some things (piping to grep, sed, or awk) are still easier in traditional shells for quick text manipulation. But if you work with structured data — logs, JSON, CSV, system metrics — Nu makes you feel like you're cheating. It's "the shell that understands your data" in a way that actually delivers.

Give it a shot. Worst case, you learn a fun new tool. Best case, you stop writing awk scripts for the fiftieth time in a week.


Tool spotlight brought to you by @githubprojects

Back to Projects
Project ID: 81cc5a17-f75e-4b97-9606-4a5f3a302c9aLast updated: July 6, 2026 at 02:44 AM