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

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.82 of Nu. This release focuses on polishing the user experience.

Note

Beginning with this release, Nushell is switching to a four-week release schedule. For details see our special blog post.

Where to get it

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

NOTE: The optional dataframe functionality is available by cargo install nu --features=dataframe.

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

Themes of this release / New features

Nightly builds

We are pleased to inform you that we now have nightly releases available for Nushell. Feeling adventurous? Wanting to keep up to date with the latest revisions of Nushell without the burden of compiling the source base yourself?

You can find all available nightly releases in the release page of nushell/nightly.

Note Please note that these releases are intended for testing purposes only, and we will keep only the last 10 nightly releases. We highly recommend using the latest stable official release for regular usage.

Custom datetime format (@fnordpig)

Until now, Nushell did not allow changing the default format of dates and times, leading quite often to undesired rendering, e.g. seeing A year ago in the output of ls when one wants to know the exact time.

#9500 introduces a new config option to change the default output of dates and times:

  # from the `default_config.nu` file
  datetime_format: {
    normal: '%a, %d %b %Y %H:%M:%S %z'
    table: '%m/%d/%y %I:%M:%S%p'
  }

Support for comments in multiline pipes (@WindSoilder)

From now on, either in the REPL, in scripts or in modules, you can comment out any line of a multiline pipe without breaking its execution, e.g.

ls
| where type == file
# | sort-by size
| get name

is perfectly valid.

This hopefully makes debugging and testing part of a pipeline much easier!

Continuing cratification effort

On the road to 1.0, we have started moving commands around to make place for those which really matter. As this process involves the creation of some new Rust crates, e.g. nu-cmd-extra, we call it cratification 😃

With this new release, the bytes commands have been moved behind the extra feature (use cargo build --features extra to activate them back):

  • @sholderbach in #9429
  • @stormasm in #9439
  • @amtoine in #9455
  • @stormasm in #9509

Apart from moving less stable or common commands behind flag, this should also improve compile times for everyone.

Splitting the $nu variable (@sophiajt)

Nushell 0.82 introduces a new family of stat commands, the scope ... commands. These commands allow you to access some information about the current Nushell instance that were previously available in the $nu variable! e.g. $nu.scope.commands now becomes scope commands.

On the other hand, $nu becomes much smaller and only holds simple paths and constants.

Entering Linguist support (@hustcer)

With the efforts of @hustcer, Nushell is now an official language of Linguist, allowing for better language support in GitHub.

REPL: Mark line entries as excluded from the history by leading with a space (samlich)

In some situations you may want to avoid storing an entry inside your shell history. For example if it includes a secret or running it again in a different context could be dangerous. To stop nushell from storing a particular line in its history you can now start with a space and it will be ignored. You can still recall your last entry once by pressing the Up-Arrow but the command will never be written to disk and disappear as soon as you submit another command.

New commands

  • http options
  • scope aliases
  • scope commands
  • scope engine-stats
  • scope modules
  • scope variables
  • scope

Breaking changes

  • #9509 Cratification moves the bytes commands to nu-cmd-extra. They are thus only accessible with --features extra
  • #9496 Clean up config by removing legacy options that were previously deprecated.
  • #9487 Split $nu variable into scope commands and simpler $nu
  • #9427 The filesize prefixes Z/Zi have been removed as their underlying values where not correctly representable.
  • #9407 In the ls --long output the uid column has been renamed to user to be consistent with group
  • #9368 Don't allow save command to save both stdout and stderr to the same file

Full changelog

Nushell

  • sholderbach created
    • Pin reedline to 0.21 for release
    • Skip strum in regular nu-protocol build
    • Move the nightly issue template to a hidden place
    • Revert #8395 "Treat empty pipelines as pass-through"
    • Remove "Progress" section from README
    • Mention clap_complete_nushell in the officially supported section
    • Remove duplicated feature in nu-cmd-dataframe dep
    • Drop unused nu-color-config in nu-cmd-lang
    • Break up interdependencies of command crates
    • Move explore command out of nu-command deps
    • Enable history entry exclusion with leading space
    • Apply nightly clippy fixes
  • Taywee created
    • Format negative datetimes with rfc3339 (#9501)
  • sophiajt created
    • Better error message if env var is used as var
    • split $nu variable into scope commands and simpler $nu
    • Treat empty pipelines as pass-through
    • revert: move to ahash
  • TrMen created
    • Test examples of use
  • stormasm created
    • Modify the bits command in nu-cmd-extra to improve visibility
    • cratification: move the bytes command to nu-cmd-extra
    • Update Contributing.md stating we can not accept PRs that are GPL
    • nu-cmd-lang readme
    • add in the nu-cmd-extra tests to the CI
  • fdncred created
    • add the ability to combine columns with detect columns
    • clean up config by removing legacy options
    • make history.max_size bigger
    • update ini dependency
    • update dfr to polars 0.30.0
    • allow empty string arguments
    • allow paths to have brackets
  • fnordpig created
    • Add custom datetime format through strftime strings
  • wolimst created
    • Revert install context of windows terminal profile to per-system
    • Prevent rustflags build config from being ignored in ci workflows
  • davidscholberg created
    • Add multiline regex flag to str replace
  • amtoine created
    • move common tools from nu-command to nu-cmd-base
    • make dots tests easier to read
    • toolkit: use --features instead of --dataframe and refactor a bit
    • use create_default_context from nu-cmd-lang
    • add a "capture" example to str replace, before the fancy ones
    • REFACTOR: simplify the declaration of extra commands
    • add a comment note to the PR template about linking issues
    • fix a typo
  • nibon7 created
    • Bump openssl to 0.10.55
    • Apply nightly clippy fixes
  • hustcer created
    • Add Nushell Language detect for linguist
    • Change the nightly build schedule make it start by 9:15 BeiJing Time
    • Fix cleanup of nightly build workflow
    • Fix the cleanup of old nightly releases
    • Use Nushell v0.81 for release workflows
    • Synchronize code before the nightly build starts
    • Fix removal of old nightly releases
    • Try to make a nightly release by workflow
    • Reset .github/workflows/release-pkg.nu
    • Try to add a nightly-build workflow
  • zhiburt created
    • nu-table/ Fix indexing issue for table --expand
    • nu-table: Bump tabled to 0.12.1
  • Sygmei created
    • Fix/input suppress output on windows
  • app/dependabot created
    • Bump shadow-rs from 0.22.0 to 0.23.0
    • Bump percent-encoding from 2.2.0 to 2.3.0
    • Bump quick-xml from 0.28.2 to 0.29.0
    • Bump mockito from 1.0.2 to 1.1.0
    • Bump once_cell from 1.17.1 to 1.18.0
    • Bump actions-rust-lang/setup-rust-toolchain from 1.4.4 to 1.5.0
    • Bump dtparse from 1.4.0 to 1.5.0
    • Bump ctrlc from 3.3.1 to 3.4.0
  • ahkrr created
    • fix: 3 or more dots in file paths
  • michaeljohnalbers created
    • Fix missing file names from rm errors
  • FilipAndersson245 created
    • Removes some permutations of benchmarks for plugin encoding/decoding.
    • Changes global allocator to mimalloc, improving performance.
    • Changes HashMap to use aHash instead, giving a performance boost.
  • dev-cyprium created
    • Fix a panic bug in platform ansi logic (Closes #9448)
  • BrianLondon created
    • Plugin api docs
  • bgeron created
    • Fix bug in std dirs drop; improve documentation
    • Fix usage for the exit command.
  • alkhatib created
    • http post --content-type should set Content-Type header
    • Fix clippy errors (Mac)
  • WindSoilder created
    • allow comment in multiple line pipeline
    • disable bracketed paste during evaluation
    • don't allow save command to save both stdout and stderr to the same file
    • save command: Don't use BufWriter to write external stream to a file
    • add http options command
  • hanjunghyuk created
    • Remove ZB and ZiB from file size type
  • tarunsamanta2k20 created
    • enhancement(test)- complete the install command to install plugins #9342
  • Mehrbod2002 created
    • chore: rename uid to user column in ls --long
  • stevenxxiu created
    • refactor: merge repl_buffer_state, repl_cursor_pos into one mutex
  • ja-cop created
    • Add "regex" search term to commands with regex functionality
  • AstrickHarren created
    • Fix find puts extra cols into record
    • Add zip-into-record to std iter
  • Yethal created
    • std: refactor test-runner to no longer require tests to be exported

Extension

  • gaetschwartz created
    • fix go to definition on windows
  • glcraft created
    • Fix datetime parsing
    • Fix TextMate regex

Documentation

  • sholderbach created
    • Add blogpost planning towards 1.0 and slowing releases
  • tminich created
    • Flags with dashes
  • eopb created
    • Remove reference to build-string from working_with_strings.md
  • mh-trimble created
    • Update aliases.md and setup.md
  • hustcer created
    • Add Nushell Language detect for linguist
  • EmilySeville7cfg created
    • fix(contributor-book): named args example
  • hanjunghyuk created
    • Remove mentioning ZB and ZiB
  • BrianLondon created
    • Modernize and add additional info to plugin tutorial
  • Mehrbod2002 created
    • chore: add detail to breaking changes

Nu_Scripts

  • Neur1n created
    • fix: fix default fg and bg coloring for hl.nu
  • Tiggax created
    • added Brace exspansion module
  • ShinyZero0 created
    • complete manpages
  • stormasm created
    • add the new crate nu-cmd-base to the release
  • hustcer created
    • Add Nushell Language detect for linguist
  • jacobono created
    • export env is not in nushell
  • hyiltiz created
    • Convenience wrapper for venv creation
  • kachick created
    • Replace deprecated hash base64 with decode
    • Replace deprecated fetch with http get
  • fdncred created
    • create readme.md with theme previews
  • amtoine created
    • REFACTOR: rewrite the release note scripts
    • fix the std log import in make_release/create-website-release-note-pr
    • add a "command not found" hook
  • fj0r created
    • parse name of positional args in parse cmd

Reedline

  • sholderbach created
    • Bump version for 0.21.0 release
  • WindSoilder created
    • add a new disable_bracketed_paste method
  • fdncred created
    • update .typos.toml for bui
Edit this page on GitHub
Contributors: Stefan Holderbach, Amirhossein Akhlaghpour, amtoine, Waldir Pimenta, Ian Manske, sophiajt