Nushell 0.4.0

Nushell, or Nu for short, is a new shell that takes a modern, structured approach to your commandline. It works seamlessly with the data from your filesystem, operating system, and a growing number of file formats to make it easy to build powerful commandline pipelines.

Today we're happy to announce the 0.4.0 release of Nushell. The 0.4.0 releaseopen in new window marks a continually maturing shell that is now starting to show signs of stability. And, of course, a few fun features along the way.

Where to get it

Nu 0.4.0 is available as pre-built binariesopen in new window or from crates.ioopen in new window. If you have Rust installed you can install it using cargo +beta install nu (or if you want all the features cargo +beta install nu --all-features).

What's new

New Colors (wycats)

Example of nushell New colors!

With 0.4.0, we're adding some new colors to show off different types of the command, where errors might be happening, and if the command is internal or external. The coloring is just the tip of the iceberg, as it were, and builds from a reworking of the parser to make it more accurate, more stable, and more feature-complete.

Streaming table (sophiajt)

Animation of a long table streaming out Streaming tables

Up to this point, we've taken a few shortcuts with how streams worked in Nushell. We knew that a table, in theory, was a stream of rows. In practice, though, this wasn't the case as the code has lots of assumptions about how tables worked.

With the 0.4.0, we're taking a big step in the direction of full support for streams. You'll see that now data will start being printed as it becomes available, with tables printing pages of 50 rows at a time (by default). This allows you to get deep listings of files (eg using ls **), work with streams from external sources, and more.

Better ctrl-c support (sophiajt, landaire)

As part of having streams of tables, it's always helpful to be able to say "stop!" when you need to. With 0.4.0, using ctrl-c to stop the output should be a lot more responsive and will take you back to the prompt.

Textview gets VI keys (JonnyWalker81)

The built-in text viewer now lets you use vi keys for navigation thanks to JonnyWalker81's work.

Onto the Beta compiler (est31)

For those of you wondering if and when Nu was going to be usable on stable Rust, you need but wait just a little longer. Contributor est31 has been hard at work at moving Nu onto stable Rust and has now successfully moved Nu off of nightly and onto beta. As beta matures and becomes the next release of Rust, we'll be able to move Nu onto stable. This should help people who are working to distribute Nu on various distributions.

Brazilian Portuguese book (marcelocg)

Contributor marcelocg surprised us with a translation of the Nu book into Brazilian Portuguese. Obrigado, Marcelo!

New commands

from-ssv (t-hart)

To follow along with our from-csv (comma-separated-values) and from-tsv (tab-separated-values), we now have a new way of handle importing content from commands that output their own tables: from-ssv. Like its siblings, it looks for values separated by a separator, using the spaces to show where the breaks between cells should be.

match (rnxpyke)

We're continuing to evolve our support for matching string data. Recently, we began experimenting with a match command that can find matches in strings for you. We plan to continue experimenting and exploring what's possible in this space in the future.

Lots of new documentation (sdfnz, twe4ked, chhetripradeep, mfarberbrodsky, cristicismas, Charles-Schleich, coolshaurya, notryanb, pema99, gilesv, yahsinhuangtw, JesterOrNot, nalshihabi, marcelocg, sorrell, pizzafox, iggy14750, DrSensor, mlbright, BradyBromley, andrasio, piotrek-szczygiel)

Happy hacktoberfest! Lots of people wanted to jump in and help document all of our commands, help fix docs that are already there, and generally give things a bit of polish. Much appreciated everyone who came by and contributed.

Tons of stability fixes (thegedge, sophiajt, wycats, JonnyWalker81, vsoch, pka)

As always, there were a bunch of stability and correctness both in Nu and in the CI that support Nu's development

Looking ahead

We'll continuing filling out the features that will let folks use Nu as their everyday shell. Coming up are better support for the environment, path, and for command aliases.