Top
Best
New

Posted by ravenical 1/7/2026

The Case for Nushell (2023)(www.sophiajt.com)
67 points | 71 commentspage 2
maxloh 1/7/2026|
Nushell commands are really great, so great that they are even better than the standard library of some languages. However, the language itself isn't very intuitive to learn.

I wish Nushell and Python/TypeScript have a baby one day.

Barrin92 1/7/2026||
well if you want a python/shell hybrid there's always xonsh (https://xon.sh/). Really great in particular for people like me who are bash-challenged. I do like Nushell too but I also always had problems remembering the actual language.
maxloh 1/7/2026||
I actually meant something like that with Nushell commands. They output structured data that Python and JavaScript can easily leverage in theory.

  C: > ls
  ╭────┬────────────────────────┬─────────┬─────────┬──────────────╮
  │  # │          name          │  type   │  size   │   modified   │
  ├────┼────────────────────────┼─────────┼─────────┼──────────────┤
  │  0 │ Program Files          │ dir     │  8.1 kB │ 2 hours ago  │
  │  1 │ Program Files (x86)    │ dir     │  8.1 kB │ 2 months ago │
  │  2 │ Users                  │ dir     │  4.0 kB │ 4 months ago │
  │  3 │ Windows                │ dir     │ 16.3 kB │ 4 days ago   │
  ╰────┴────────────────────────┴─────────┴─────────┴──────────────╯
bflesch 1/7/2026||
> I wish Nushell and Python/TypeScript have a baby one day.

That would be nice. Or a TypeScript transpiler to rust ;)

Aerbil313 1/7/2026||
Do not let the "shell" in the name fool you. Nu is a full on programming language. I've spent more time with it than pretty much any other lang and if I have to describe it in one sentence, I'd say: It's the most beautiful combination of the ease of Python, strictness and ergonomics of Rust and of course shell capabilities of Bash.

It's really its own kind of thing. It's definitely not just another shell.

I've written very impressive and very complex software in nu. I fully expect it to take off very fast as it nears a stable v1.0. I can't imagine going back to anything else.

acedTrex 1/7/2026||
I really wanted to get into nushell but i found reedline to be very limiting in a few specific ways esp around keybindings that blocked me from moving to it
cassepipe 1/7/2026|
Anyone knows how good is the vi mode ?
fainpul 1/7/2026||
My pet peeve with nushell: broken tables

https://github.com/nushell/nushell/issues/13601

https://github.com/nushell/nushell/issues/16379

hulitu 1/8/2026||
> The truth is, in 2023 if someone asked us to design a system, we wouldn't design POSIX.

You can design anything you want (see GTK for an example of moving target). But if you want anyone to use it, better stick to standards.

xpe 1/7/2026||
From an end-user point of view, there are some weirdnesses in Nushell, but they are rare in my experience. Here is one that gotcha'ed me:

    [1 2 3] | sum
The above does not return the sum (1 + 2 + 3 = 6). Why? Because `sum` is a *nix utility for returning the checksum. The way to do it in Nushell is:

    [1 2 3] | math sum
More info at [1]. Technically, this isn't Nushell's fault; it is just delegating to an external command.* Still, I found it confusing at first.

* Maybe it is time to rename `sum` to `checksum`!

[1]: https://github.com/nushell/nushell/discussions/17239

Sunscratch 1/7/2026||
I’ve created a small utility script at work that automates some routine tasks and nicely formats the collected data in a table, and I can say that Nushell is an amazing tool.
pksebben 1/7/2026||
caveat up front: I see that the point here is to talk about a nice, good thing for people to use that is useful, and I don't think that's a bad thing. I am also always looking for ways to upgrade, and I also agree that in a modern context with modern knowledge, we can do better.

However, regarding the posix skepticism - I think OP has missed (or just not mentioned) the actual thing that keeps bash/zsh from being unseated.

Industrial standards are a good thing just because they’re standards. They’re right that a redesign would be superior in terms of raw design, but this is only useful if it’s adopted widely enough so that you don’t have to context switch between two fundamental systems. I spin up a new VM somewhere and it's going to have bash. I use a tool and I expect it to follow a particular convention - having to figure out which I'm reaching for adds an amount of friction that would make most work untenable.

I like zsh but I also want something better. Type safety and robust completions would make me very happy, but if we're going to make the switch we have to do it as an industry - with a set of agreed upon interfaces and standards that are carefully thought out and built on consensus. I don't know if that's possible given the massive complexity of the state of affairs but that's what it would take.

b00ty4breakfast 1/7/2026||
this is very weird timing, I literally just installed nushell this morning lol. I like it so far but that may just be the novelty effect. I gotta find a syntax file for vim, tho, because moving over my bash aliases and trying to visually parse the config file after 10 lines or so is making me go cross-eyed.
Natfan 1/7/2026|
i've never used nushell, but i've always felt that people have been sleeping on PowerShell.

yes, it was _originally_ only for Windows, but PowerShell 6+ uses .NET Core, which is OS independent. this means that a few helper functions like GeneratePassword[0] are gone, but it's _mostly_ at parity with .NET.

the Verb-Noun structure can be confusing at first, but once you know the approved verbs[1], you can usually guess your way through command discovery, which is not something i can say for most POSIX tools (useradd and adduser do different things!!)

it's also object oriented by design, with default aliases like ?[2] and %[3], querying structured data is a breeze.

- want to check a CSV? Import-CSV[4].

- want to call a REST/SOAP endpoint? Invoke-RestMethod[5] has you covered.

- DNS queries? Resolve-DnsName[6]

as it's built on top of .NET, you get the whole CLR[7] at your fingertips! you can make a TCP client[8] in PowerShell, or even just write C# directly in your terminal[9] and execute it the same way.

such a flexible and useful language, even if it is a little slow and owned by micro$oft. but it _is_ open source[10]!

---

[0]: https://learn.microsoft.com/dotnet/api/system.web.security.m...

[1]: https://learn.microsoft.com/powershell/scripting/developer/c...

[2]: https://learn.microsoft.com/powershell/module/microsoft.powe...

[3]: https://learn.microsoft.com/powershell/module/microsoft.powe...

[4]: https://learn.microsoft.com/powershell/module/microsoft.powe...

[5]: https://learn.microsoft.com/powershell/module/microsoft.powe...

[6]: https://learn.microsoft.com/powershell/module/dnsclient/reso...

[7]: https://learn.microsoft.com/dotnet/standard/clr

[8]: https://learn.microsoft.com/dotnet/api/system.net.sockets.tc...

[9]: https://devblogs.microsoft.com/scripting/weekend-scripter-ru...

[10]: https://github.com/PowerShell/PowerShell

b40d-48b2-979e 1/7/2026||
As a prior contributor to PowerShell, I think part of this obscurity reason is how they neglected their community. This was evident in their merged PR history only containing commits from Microsoft developers.

I use nushell now, and its community is fantastic. It may face breaking changes every so often, but it has a much faster execution speed and more features if you're not tied into the .NET ecosystem.

Natfan 1/10/2026||
that's completely fair! i've never felt the need/confident enough to attempt to contribute changes to the language as a whole (writing my own PowerShell is usually enough to fix the problem c:), but i can understand why that would be frustrating!
adzm 1/7/2026|||
Powershell is pretty great, though I am constantly bit by issues with filenames having [ or ] in them and end up having to pass -LiteralPath to everything, which is frustrating and a constant source of bugs in any other scripts that do not do that.
Natfan 1/10/2026||
can you not just quote the filepaths? either as a 'literal string' or as one with "string $interpolation" (provided you have no dollars in your file names)