Home Explore Blog CI



nushell

blog/2022-06-14-nushell_0_64.md
4fb5d7a7cc4f1204c14cb6ac54a727d0283001d622bd398b000000030000481a
---
title: Nushell 0.64
author: The Nu Authors
author_site: https://twitter.com/nu_shell
author_image: https://www.nushell.sh/blog/images/nu_logo.png
excerpt: Today, we're releasing version 0.64 of Nu. It's the first to include input overloading, input/output types, and lazy dataframes.
---

# Nushell 0.64

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.64 of Nu. It's the first to include input overloading, input/output types, and lazy dataframes.

<!-- more -->

# Where to get it

Nu 0.64 is available as [pre-built binaries](https://github.com/nushell/nushell/releases/tag/0.64.0) or from [crates.io](https://crates.io/crates/nu). 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 --features=extra`.

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

## Input overloading (elferherrera)

Commands can now declare their [input and output types](https://github.com/nushell/nushell/pull/5750). While this support is still initial and isn't yet available in the syntax, we're already using it for one important improvement: simplifying the commands.

In this release, dataframe commands can now detect the input type in the pipeline and run without needing to be called with `dfr` before every command. The end result is much cleaner:

Before:

```
> [[a b]; [1 2] [3 4]] | dfr to-df | dfr drop a
```

After:

```
> [[a b]; [1 2] [3 4]] | to-df | drop a
```

This allows dataframe commands to feel more natural and fit more cleanly in with other commands. We're also looking to make similar improvements to the `db` command. In the future, you'll be able to open a data source and then use the standard nushell commands against it, and Nushell will select the best fit based on the type of data source you're opening.

## Lazy dataframes (elferherrera)

Dataframes now have [lazy operations](https://github.com/nushell/nushell/pull/5687). These lazy operations allow users to build up multiple steps of a pipeline and execute them in a much more efficient way against the dataframe.

## Future SQLite backed history (phiresky)

The API for storing history entries has changed in the background. This now supports also storing your history in a SQLite database. Currently this adds some metadata such as the current working directory, whether a command succeeded, and execution times. In the future this will enable you to query the history in a more rich and meaningful way.

Currently the simple text based history is still the default. If you want to test out the new history change your config to contain:

```
let-env config = {
  ...
  history_file_format: "sqlite" # "sqlite" or "plaintext"
  ...
}
```

# Improvements

- Using Nu as a login shell now has a [special config file](https://github.com/nushell/nushell/pull/5714). (sec65)
- Unix-based Nushell can now [handle SIGQUIT](https://github.com/nushell/nushell/pull/5744) (WindSoilder)
- This release also includes binaries for [more platforms](https://github.com/nushell/nushell/releases/tag/0.64.0) (hustcer)

You can see the full list in the Changelog below.

# Looking ahead

The new input/output types and type overloading allows for a simpler, more uniform Nushell language. We're looking forward to continuing to improve this as well as improving the Nushell language around it.

We've also recent shown an experimental [graphical version of Nushell](https://www.youtube.com/watch?v=B2aLON88New). This experiment is something you can use today across the platforms that Nushell supports.

# Changelog

## Nushell

- WindSoilder created [add --values flag to sort record by values, by default, sort record by keys](https://github.com/nushell/nushell/pull/5782), and [sort not change shape](https://github.com/nushell/nushell/pull/5778), and [path join support multi path](https://github.com/nushell/nushell/pull/5775), and [fix arg parse](https://github.com/nushell/nushell/pull/5754), and [While starting nu, force PWD to be current working directory](https://github.com/nushell/nushell/pull/5751), and [handle SIGQUIT](https://github.com/nushell/nushell/pull/5744), and [add as record tag to transfer result to record](https://github.com/nushell/nushell/pull/5736), and [print warning message if meet non utf-8 path](https://github.com/nushell/nushell/pull/5731), and [fix argument type](https://github.com/nushell/nushell/pull/5695), and [expand env for path](https://github.com/nushell/nushell/pull/5692), and [make ls works better with glob](https://github.com/nushell/nushell/pull/5691), and [base64 command more friendly](https://github.com/nushell/nushell/pull/5680), and [make cp can copy folders contains dangling symbolic link](https://github.com/nushell/nushell/pull/5645), and [make sure no duplicate column exists during eval and merge](https://github.com/nushell/nushell/pull/5633)
- sholderbach created [Pin reedline v0.7.0 for the nushell v0.64.0 release](https://github.com/nushell/nushell/pull/5781), and [Address lints from clippy for beta/nightly](https://github.com/nushell/nushell/pull/5709), and [Use search terms in the help menu search](https://github.com/nushell/nushell/pull/5708), and [Update nu-ansi-term to remove `Deref` impl](https://github.com/nushell/nushell/pull/5706), and [Improve internal documentation of `save` command](https://github.com/nushell/nushell/pull/5704), and [Update reedline](https://github.com/nushell/nushell/pull/5678), and [Clarify error message for `let` in pipeline](https://github.com/nushell/nushell/pull/5677), and [Update reedline: Support more bindings in vi mode](https://github.com/nushell/nushell/pull/5654), and [Improve test coverage of command examples](https://github.com/nushell/nushell/pull/5650), and [Add search terms for `describe`](https://github.com/nushell/nushell/pull/5644), and [Unpin reedline for regular development](https://github.com/nushell/nushell/pull/5634)
- elferherrera created [bool type for binary operations](https://github.com/nushell/nushell/pull/5779), and [each while command](https://github.com/nushell/nushell/pull/5771), and [filesize conversion](https://github.com/nushell/nushell/pull/5770), and [expression to literal](https://github.com/nushell/nushell/pull/5769), and [Remove dfr from dataframe commands](https://github.com/nushell/nushell/pull/5760), and [input and output types](https://github.com/nushell/nushell/pull/5750), and [Lazy dataframes](https://github.com/nushell/nushell/pull/5687)
- sophiajt [bumped to 0.64](https://github.com/nushell/nushell/pull/5777), and [Force floats to output a decimal in nuon](https://github.com/nushell/nushell/pull/5768), and [bump to dev version](https://github.com/nushell/nushell/pull/5635)
- merelymyself created [Add option to sort-by naturally](https://github.com/nushell/nushell/pull/5774), and [Attempts to add `//` math operator](https://github.com/nushell/nushell/pull/5759), and [add search terms to alias](https://github.com/nushell/nushell/pull/5737), and [Improves help str substring](https://github.com/nushell/nushell/pull/5730), and [Attempts to add a command that checks if nushell is running with admin privileges](https://github.com/nushell/nushell/pull/5712), and [Make `range` require its positional argument](https://github.com/nushell/nushell/pull/5710), and [Small typo fix in `signature.rs`](https://github.com/nushell/nushell/pull/5693), and [prevent panic with `let` alone in pipeline](https://github.com/nushell/nushell/pull/5676), and [Add '-o'/`--output` flag to `fetch` to download to file](https://github.com/nushell/nushell/pull/5673), and [Add search terms to error make](https://github.com/nushell/nushell/pull/5657), and [Makes a more helpful error for `let` in pipeline](https://github.com/nushell/nushell/pull/5632)
- Kangaxx-0 created [Add NU config to allow user be able to turn off external completion](https://github.com/nushell/nushell/pull/5773), and [Support completion for alias and sub-command](https://github.com/nushell/nushell/pull/5749), and [Fix cp bug](https://github.com/nushell/nushell/pull/5642)
- fdncred created [more verbose error handling](https://github.com/nushell/nushell/pull/5765), and [make `to text` work more intuitively](https://github.com/nushell/nushell/pull/5733), and [add case_sensitive_completions config option](https://github.com/nushell/nushell/pull/5646)
- hustcer created [Add setup-nu link in README.md](https://github.com/nushell/nushell/pull/5763), and [fix: normalize some parameter names](https://github.com/nushell/nushell/pull/5725), and [Fix doc building for vuepress-next, avoid using angle brackets](https://github.com/nushell/nushell/pull/5696), and [feat: Add sensitive flag to get, fix #4295](https://github.com/nushell/nushell/pull/5685), and [feat: Add search terms to find, where, exit, which and fetch, update #5093](https://github.com/nushell/nushell/pull/5671), and [Refactor and optimize the github release workflow: deliver binary package for more targets](https://github.com/nushell/nushell/pull/5649)
- Mathspy created [Should we keep old semantics of `uniq` command?](https://github.com/nushell/nushell/pull/5761)
- rgwood created [Temporarily disable rust-cache in tests](https://github.com/nushell/nushell/pull/5747), and [Clean up README](https://github.com/nushell/nushell/pull/5718), and [Statically link the CRT on Windows](https://github.com/nushell/nushell/pull/5717), and [Fix `ls` for Windows system files](https://github.com/nushell/nushell/pull/5703), and [Don't build OpenSSL on Windows](https://github.com/nushell/nushell/pull/5651)
- kubouch created [Add `$nu.scope.engine_state`](https://github.com/nushell/nushell/pull/5739), and [Fix wrong `path` help message](https://github.com/nushell/nushell/pull/5698), and [Shorten the links of parser keywords help msgs](https://github.com/nushell/nushell/pull/5648), and [Add 'overlay new' command](https://github.com/nushell/nushell/pull/5647)
- jaeheonji created [feat: add search terms to category of strings](https://github.com/nushell/nushell/pull/5723)
- phiresky created [SQLite History MVP with timestamp, duration, working directory, exit status metadata](https://github.com/nushell/nushell/pull/5721)
- herlon214 created [nu-engine: better display for shape when showing help params](https://github.com/nushell/nushell/pull/5715), and [nu-cli/completions: add filtering tests for variables completions](https://github.com/nushell/nushell/pull/5653), and [nu-cli/completions: fix filter for variable completions](https://github.com/nushell/nushell/pull/5641)
- sec65 created [Added loginshell config file #4620](https://github.com/nushell/nushell/pull/5714)
- PerBothner created [Minor fixes to shell integration in repl.](https://github.com/nushell/nushell/pull/5701), and [Improve table output of 'to html',](https://github.com/nushell/nushell/pull/5699)
- Yethal created [Add completions for nu](https://github.com/nushell/nushell/pull/5700)
- mjclements created [Differentiate internal signature from external signature w.r.t. help](https://github.com/nushell/nushell/pull/5667)
- EjPlatzer created [Add search terms for `all?`, `any?`, `length`, and `keybindings`](https://github.com/nushell/nushell/pull/5665)
- tenshik created [feat: add search terms to random &amp; typo fix](https://github.com/nushell/nushell/pull/5652)
- onthebridgetonowhere created [Fix drop nth bug](https://github.com/nushell/nushell/pull/5312)

## Documentation

- aslilac created [docs(book): Update the "Coming from Bash" page](https://github.com/nushell/nushell.github.io/pull/499)
- jcjolley created [Show how to cast between number types](https://github.com/nushell/nushell.github.io/pull/498)
- f2hafner created [Fixed example causing type_mismatch in working_with_lists.md](https://github.com/nushell/nushell.github.io/pull/497)
- hustcer created [Add nav links for some new de docs, and do dome doc formatting](https://github.com/nushell/nushell.github.io/pull/495), and [Fix side nav links for nu book](https://github.com/nushell/nushell.github.io/pull/491), and [Fix some broken links](https://github.com/nushell/nushell.github.io/pull/490), and [fix: update deploy workflow for checkout](https://github.com/nushell/nushell.github.io/pull/487), and [Revert "Fix checkout step for feed plugin"](https://github.com/nushell/nushell.github.io/pull/486), and [Fix checkout step for feed plugin](https://github.com/nushell/nushell.github.io/pull/485), and [fix feed plugin configs, make it work as expected](https://github.com/nushell/nushell.github.io/pull/484), and [feat: Add sitemap generator to create sitemap.xml](https://github.com/nushell/nushell.github.io/pull/483), and [Fix responsive layout for more screen size](https://github.com/nushell/nushell.github.io/pull/482), and [Fix responsive layout for mobile devices](https://github.com/nushell/nushell.github.io/pull/480), and [Update prettier config and run code format](https://github.com/nushell/nushell.github.io/pull/479), and [fix feed plugin add atom support](https://github.com/nushell/nushell.github.io/pull/478), and [Fix search box style, make it wider](https://github.com/nushell/nushell.github.io/pull/477), and [Fix search box style, make it align left](https://github.com/nushell/nushell.github.io/pull/476), and [Trigger deploy workflow](https://github.com/nushell/nushell.github.io/pull/475), and [Fix command detail page, update make_docs.nu](https://github.com/nushell/nushell.github.io/pull/474), and [Upgrade vuepress to v2 and add dark mode support](https://github.com/nushell/nushell.github.io/pull/465)
- petrisch created [Some new German translation with new snippet links](https://github.com/nushell/nushell.github.io/pull/494)
- elferherrera created [remove dfr from dataframe chapter](https://github.com/nushell/nushell.github.io/pull/493), and [lazyframes section](https://github.com/nushell/nushell.github.io/pull/466)
- lfritz created [Fix a couple of typos](https://github.com/nushell/nushell.github.io/pull/492)
- CAD97 created [Replace `str find-replace` with `str replace` in `coming_from_bash.md`](https://github.com/nushell/nushell.github.io/pull/489)
- sec65 created [Add doc for loginshell file #4620](https://github.com/nushell/nushell.github.io/pull/488)
- Dan-Gamin created [Add more documentation about strings](https://github.com/nushell/nushell.github.io/pull/481)
- merelymyself created [Add documentation for switch flags](https://github.com/nushell/nushell.github.io/pull/471)
- fdncred created [remove file paths since they're not a thing any longer](https://github.com/nushell/nushell.github.io/pull/470)
- jgollenz created [Add 'Reading environment variables' section](https://github.com/nushell/nushell.github.io/pull/469), and [typos](https://github.com/nushell/nushell.github.io/pull/462)
- Yethal created [Update dataframes.md](https://github.com/nushell/nushell.github.io/pull/467)
- kubouch created [Fix config variable name](https://github.com/nushell/nushell.github.io/pull/459), and [Add 'overlay new' tip](https://github.com/nushell/nushell.github.io/pull/457), and [Add overlays chapter](https://github.com/nushell/nushell.github.io/pull/456)
- schuelermine created [book/operators.md: add `not` operator](https://github.com/nushell/nushell.github.io/pull/458)

## Nu_Scripts

- Yethal created [Update branch-protections.nu](https://github.com/nushell/nu_scripts/pull/251), and [Add branch protections](https://github.com/nushell/nu_scripts/pull/250), and [Update remoting.nu](https://github.com/nushell/nu_scripts/pull/239), and [Update ssh script for 0.63.0](https://github.com/nushell/nu_scripts/pull/238), and [Update make-completions.nu](https://github.com/nushell/nu_scripts/pull/232)
- skelly37 created [Update checker for /etc/hosts](https://github.com/nushell/nu_scripts/pull/249), and [cdpath.nu -- more clear for windows](https://github.com/nushell/nu_scripts/pull/248), and [cdpath fixed for windows](https://github.com/nushell/nu_scripts/pull/247), and [cdpath.nu moved and improved](https://github.com/nushell/nu_scripts/pull/245)
- Dan-Gamin created [Add `helpers` folder and add script for running C/C++ quickly](https://github.com/nushell/nu_scripts/pull/241), and [Add pwd-short to cool-oneliners](https://github.com/nushell/nu_scripts/pull/235), and [Add more cargo completions](https://github.com/nushell/nu_scripts/pull/233)
- ehdevries created [Improve panache-git performance for changes with many files](https://github.com/nushell/nu_scripts/pull/240)
- Jacobious52 created [generated nu completions from fish](https://github.com/nushell/nu_scripts/pull/237), and [autogenerate from Fish shell completions](https://github.com/nushell/nu_scripts/pull/236)
- sholderbach created [Script to gather test coverage for nushell](https://github.com/nushell/nu_scripts/pull/234)
- fdncred created [use default bg color for execution time](https://github.com/nushell/nu_scripts/pull/231)

## reedline

- sholderbach created [Prepare 0.7.0 release](https://github.com/nushell/reedline/pull/440), and [Expose the `History` query functionality](https://github.com/nushell/reedline/pull/439), and [Update nu-ansi-term/update crate patch versions](https://github.com/nushell/reedline/pull/437), and [Fix clippy lints that will become warnings](https://github.com/nushell/reedline/pull/435), and [Organize the common keybindings](https://github.com/nushell/reedline/pull/433)
- WindSoilder created [Don't panic when parent directory does not exist](https://github.com/nushell/reedline/pull/436)
- Artturin created [Move ctrl+a &amp; ctrl+e to common navigation binds](https://github.com/nushell/reedline/pull/434), and [Move some commonly used keybinds to common keybinds](https://github.com/nushell/reedline/pull/432)
- phiresky created [SQLite History (third version)](https://github.com/nushell/reedline/pull/401)

Chunks
f75651a2 (1st chunk of `blog/2022-06-14-nushell_0_64.md`)
caf08fd2 (2nd chunk of `blog/2022-06-14-nushell_0_64.md`)
5aa21cab (3rd chunk of `blog/2022-06-14-nushell_0_64.md`)
76ede1c7 (4th chunk of `blog/2022-06-14-nushell_0_64.md`)
3527001b (5th chunk of `blog/2022-06-14-nushell_0_64.md`)
4295e14d (6th chunk of `blog/2022-06-14-nushell_0_64.md`)
da45fa0e (7th chunk of `blog/2022-06-14-nushell_0_64.md`)