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 release marks a continually maturing shell that is now starting to show signs of stability. And, of course, a few fun features along the way.
Nu 0.4.0 is available as pre-built binaries
or from crates.io. If you have Rust installed you can install it
cargo +beta install nu (or if you want all the features
cargo +beta install nu
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.
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.
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.
The built-in text viewer now lets you use vi keys for navigation thanks to JonnyWalker81’s work.
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. Contributer 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.
Contributor marcelocg surprised us with a translation of the Nu book into Brazillian Portuguese. Obrigado, Marcelo!
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.
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.
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.
As always, there were a bunch of stability and correctness both in Nu and in the CI that support Nu’s development
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.