--- 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. # 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_`. # 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) - jt [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) - VergeDX created [fix[table]: Panic when passthru small number of `table -w`.](https://github.com/nushell/nushell/pull/5705), and [feat[table]: Allow specific table width with `-w`, like command `grid`.](https://github.com/nushell/nushell/pull/5643) - PerBothner created [Minor fixes to shell integation 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 & 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 & 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)