Nushell 0.61
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 releasing version 0.61 of Nu. This release includes UI improvements, many bugfixes, improved glob support, and more.
Where to get it
Nu 0.61 is available as pre-built binaries or from crates.io. If you have Rust installed you can install it using cargo install nu
.
If you want all the built-in goodies, you can install cargo install nu --all-features
.
As part of this release, we also publish a set of optional plugins you can install and use with Nu. To install, use cargo install nu_plugin_<plugin name>
.
Help Menu (elferherrera)
In 0.61, you can now use <ctrl+q>
to ask a question/query in Nushell. Currently, this will search through the commands and show you commands that mention the word you type.
Tab lets you move between the available commands.
You can use up/down to pick the example you'd like to use. Pressing enter will select the example and insert it into the input for you.
Completion descriptions (elferherrera, fdncred, sophiajt)
Completions now show you a description of the command you're completing, if it's available.
Introducing 'env.nu' (kubouch)
Just as we added 'config.nu' with 0.60, we're now adding a new additional startup file called 'env.nu'. The job of this file is to set up the environment that you'll run Nushell in. As a result, you're able to set up important environment variables like $env.NU_LIB_DIRS
before 'config.nu' begins to run, let you take full advantage of the new library directories you've configured.
Features
input
can now suppress output (dev-msp)- Termux/Android target support for new engine (dscottboggs)
open
can now usefrom ...
named custom commands (neosam)- New
sort
command for easier sorting (sophiajt) date to-record
for working with structured dates (sophiajt)- New starts-with operator (fdncred)
- Can now create generic menus for repl interactions (elferherrera)
- New
glob
command for fancier globbing (fdncred) - Unary
not
support (sophiajt) - Startup and pre-prompt setup should now be significantly faster (sophiajt)
0b[...]
support for binary literals (merkrafter)
Improvements
- Parser improvements by uasi, sophiajt, rgwood
- Error improvements by jmoore34, sophiajt, rgwood
- Documentation updates by hustcer, vishalsodani, fdncred, futile, kubouch, stormasm, Hofer-Julian, herlon214, rgwood, michel-slm
- General code cleanliness fixes by stormasm, bowlofeggs, rgwood, sholderbach, fdncred, herlon214, elferherrera, boyvanduuren, sophiajt
- Multiple improvements to known external commands (filaretov, sophiajt)
- Use recent miette (zkat)
- Improved logic to path expansion (strega-nil-ms)
ls
now outputs date in local time (fdncred)$in
should now work in more places (sophiajt)each
now also pipes each item as input to the block (sophiajt)- Add ability to opt-in to normal strings in
str replace
(fdncred) touch
now includes all common flags (rybertm)=~
and!~
now use regex (rgwood)describe
should now be more precise- completions now give priority to non-hidden folders (herlon214)
- plugins are now loaded for scripts and commands (sophiajt)
input
now trims the newline (rgwood)- regex
find
now works with records (fdncred) - Fixes to
format
for non-basic datatypes (rgwood) - Added raw string support via backticks (sophiajt)
- Switched to levenshtein distance sorting for completions (sophiajt)
- Improvements to line editor state handling (sholderbach)
- Treat prompt indicators as commands (elferherrera)
- Added record, list, and table to signature types (kubouch)
- Improvements to default git completions (naufraghi)
- Prompts can now be simple strings (sophiajt)
- Sets LAST_EXIT_CODE on parse errors (rgwood)
- Passed more metadata through filter commands (rrcwang)
last
now returns a simple value for single items (sophiajt)- Fixed loops not terminating with ctrl-c (sophiajt)
- Added bounded channels for backpressure (b333z)
- Added streaming support to
save
(b333z) - Support for passing binary data into run-external (b333z)
- Fix for alias imports (filaretov, sophiajt)
- Fix for
ls
when file is a socket on macOS (fdncred) - Better tilde expansion (filaretov)
- Added keywords to help messages (kubouch)
- Removed is_private from
$nu.scope.commands
(kubouch) - Fix for
path join
on streams (sophiajt) - Fixes to environment defaults (sophiajt)
- Adding escapes to
to nuon
(sophiajt) - Improvements to the
reject
command (sophiajt) - Fix to the precedence parser (sophiajt)
- Calling out through
cmd.exe
no longer uses AutoRun (LebsterFace)
Breaking changes
Looking ahead
The 0.61 release, despite slowing down a little to recoup from the 0.60 release, is one of our largest releases. We averaged over 7 PRs/day over the last three weeks, as many new people joined on and more took an interest in Nushell.
Areas of upcoming focus will be on improving dataframe support, adding IDE support, and exploring new ways of working with Nushell.