Nushell
Get Nu!
Getting Started
  • The Nushell Book
  • Command Reference
  • Cookbook
  • Language Reference Guide
  • Contributing Guide
Blog
  • English
  • 中文
  • Deutsch
  • Français
  • Español
  • 日本語
  • Português do Brasil
  • Русский язык
GitHub
Get Nu!
Getting Started
  • The Nushell Book
  • Command Reference
  • Cookbook
  • Language Reference Guide
  • Contributing Guide
Blog
  • English
  • 中文
  • Deutsch
  • Français
  • Español
  • 日本語
  • Português do Brasil
  • Русский язык
GitHub

Nushell 0.94.1

Nushell, or Nu for short, is a new shell that takes a modern, structured approach to your command line. 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 command line pipelines.

Today, we're releasing version 0.94.1 of Nu. This is a patch release to fix issues introduced by 0.94.0, including path expansion for external commands, path type changes, shell integration, and more.

Where to get it

Nu 0.94.1 is available as pre-built binaries or from crates.io. If you have Rust installed you can install it using cargo install nu.

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>.

Table of content

  • Highlights and themes of this release
    • Restore tilde expansion on external command names
    • Fix handling of rest args in do
    • Restore path type behavior
    • Fix incorrect path handling in OSC9;9 shell integration
    • Disallow more characters in arguments for internal cmd.exe commands
  • Hall of fame
  • Full changelog

Highlights and themes of this release [toc]

Restore tilde expansion on external command names [toc]

Tilde expansion in the name of an external command was inadvertently removed from 0.94.0, so these no longer worked:

~/bin/foo
^~/bin/bar
run-external ~/bin/baz

This behavior has been restored by #13001. We chose not to allow the following, for now (these still don't expand):

^"~/bin/foo"
^$"~/bin/($env.BIN_NAME)"
# and run-external with the same

This is to be consistent with our behavior in other places where quoted strings usually don't cause expansion of extra path features. It is possible to use path expand instead:

^("~/bin/foo" | path expand)

but we would like to make this more ergonomic somehow in a future release.

Fix handling of rest args in do [toc]

A bug has existed for a little while when using do with a closure that takes rest args and also takes required or optional args.

do { |a, b, ...c| print $a $b $c } 1 2 3 4 5 6 7 8

Before the patch, this would print 1, 2, and then [5 6 7 8], as the non-rest args were counted incorrectly. @WindSoilder fixed this in #13002, and that fix is included in this release. Thanks!

Restore path type behavior [toc]

In 0.94.0, we changed path type to return an error for non-existent paths rather than an empty string, but we didn't communicate this change thoroughly enough and it broke some tools like zoxide. We've decided to go back to the previous behavior for now and revisit this later.

Fixed by @IanManske in #13006.

Fix incorrect path handling in OSC9;9 shell integration [toc]

This escape sequence is used to tell terminals where the current directory is. This is helpful for terminals that open new tabs in the same directory, e.g. "Duplicate Tab" in Windows Terminal. A slash was being added incorrectly to the beginning here, which broke Windows.

Fixed by @fdncred in #12994.

Disallow more characters in arguments for internal cmd.exe commands [toc]

Properly escaping command arguments on Windows is complicated, and we weren't correctly rejecting certain potentially unsafe arguments to the cmd.exe builtins we support (such as mklink). As we would prefer that you only have to learn one set of escaping rules to use Nushell properly, this is undesirable behavior, so @IanManske has fixed it in #13009.

Full changelog [toc]

  • IanManske created
    • Disallow more characters in arguments for internal cmd commands
    • Restore path type behavior
  • WindSoilder created
    • fix do closure with both required, options, and rest args
  • devyn created
    • Restore tilde expansion on external command names
  • fdncred created
    • fixes a bug in OSC9;9 execution
Edit this page on GitHub
Contributors: Devyn Cairns