# 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 (opens new window) or from crates.io (opens new window). 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, jt)
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 (opens new window) (dev-msp)- Termux/Android target support for new engine (opens new window) (dscottboggs)
open
can now usefrom ...
named custom commands (opens new window) (neosam)- New
sort
command for easier sorting (opens new window) (jt) date to-record
for working with structured dates (opens new window) (jt)- New starts-with operator (opens new window) (fdncred)
- Can now create generic menus for repl interactions (opens new window) (elferherrera)
- New
glob
command for fancier globbing (opens new window) (fdncred) - Unary
not
support (opens new window) (jt) - Startup and pre-prompt setup should now be significantly faster (opens new window) (jt)
0b[...]
support for binary literals (opens new window) (merkrafter)
# Improvements
- Parser improvements by uasi, jt, rgwood
- Error improvements by jmoore34, jt, 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, jt
- Multiple improvements to known external commands (filaretov, jt)
- Use recent miette (opens new window) (zkat)
- Improved logic to path expansion (opens new window) (strega-nil-ms)
ls
now outputs date in local time (opens new window) (fdncred)$in
should now work in more places (opens new window) (jt)each
now also pipes each item as input to the block (opens new window) (jt)- Add ability to opt-in to normal strings in
str replace
(opens new window) (fdncred) touch
now includes all common flags (opens new window) (rybertm)=~
and!~
now use regex (opens new window) (rgwood)describe
should now be more precise (opens new window)- completions now give priority to non-hidden folders (opens new window) (herlon214)
- plugins are now loaded for scripts and commands (opens new window) (jt)
input
now trims the newline (opens new window) (rgwood)- regex
find
now works with records (opens new window) (fdncred) - Fixes to
format
for non-basic datatypes (opens new window) (rgwood) - Added raw string support via backticks (opens new window) (jt)
- Switched to levenshtein distance sorting for completions (opens new window) (jt)
- Improvements to line editor state handling (opens new window) (sholderbach)
- Treat prompt indicators as commands (opens new window) (elferherrera)
- Added record, list, and table to signature types (opens new window) (kubouch)
- Improvements to default git completions (opens new window) (naufraghi)
- Prompts can now be simple strings (opens new window) (jt)
- Sets LAST_EXIT_CODE on parse errors (opens new window) (rgwood)
- Passed more metadata through filter commands (opens new window) (rrcwang)
last
now returns a simple value for single items (opens new window) (jt)- Fixed loops not terminating with ctrl-c (opens new window) (jt)
- Added bounded channels for backpressure (opens new window) (b333z)
- Added streaming support to
save
(opens new window) (b333z) - Support for passing binary data into run-external (opens new window) (b333z)
- Fix for alias imports (opens new window) (filaretov, jt)
- Fix for
ls
when file is a socket on macOS (opens new window) (fdncred) - Better tilde expansion (opens new window) (filaretov)
- Added keywords to help messages (opens new window) (kubouch)
- Removed is_private from
$nu.scope.commands
(opens new window) (kubouch) - Fix for
path join
on streams (opens new window) (jt) - Fixes to environment defaults (opens new window) (jt)
- Adding escapes to
to nuon
(opens new window) (jt) - Improvements to the
reject
command (opens new window) (jt) - Fix to the precedence parser (opens new window) (jt)
- Calling out through
cmd.exe
no longer uses AutoRun (opens new window) (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.