What Nushell Does
- Structured pipelines — data flows as tables, not text
- Built-in data formats — JSON, CSV, YAML, TOML, XML, SQLite, Parquet
- Type system — strings, ints, floats, booleans, dates, durations, file sizes
- ls / ps / sys — system commands return structured data
- HTTP client —
http get/postwith auto-parsing - SQL-like queries — where, select, group-by, sort-by, math
- Custom commands —
defwith typed parameters - Modules — organize code into modules
- Plugins — extend via compiled plugins
- Completions — context-aware tab completion
Architecture
Rust binary. Parser produces an AST, engine evaluates pipelines. Each command produces a PipelineData value (table, record, string, etc.). Plugins communicate via JSON-RPC.
Comparison
| Shell | Data Model | Language | Cross-platform |
|---|---|---|---|
| Nushell | Structured tables | Own | Yes |
| Bash/Zsh | Text streams | POSIX sh | Unix |
| Fish | Text streams | Own | Unix |
| PowerShell | .NET objects | Own | Yes |
| Xonsh | Python objects | Python | Yes |
FAQ
Q: Can it replace bash?
A: For interactive use, yes. But POSIX shell scripts are not compatible — existing .sh scripts still need bash. Nushell fits new scripts and daily interaction.
Q: Similar to PowerShell? A: Similar in philosophy (structured data pipelines) but different in implementation. Nushell is lighter, cross-platform native, and has a more concise type system.
Q: Performance? A: Rust implementation — fast startup, fast pipeline processing. Slightly slower than awk/sed on very large files but 100x more readable.
Sources
- Docs: https://www.nushell.sh/book
- GitHub: https://github.com/nushell/nushell
- License: MIT