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