---
title: Nushell 0.15.0
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 0.15 of Nu - and it has a few last-minute surprises we hope you'll find as much fun as we do.
---
# Nushell 0.15.0
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 0.15 of Nu - and it has a few last-minute surprises we hope you'll find as much fun as we do.
As many of you know, this release was delayed as part of a wide-spread effort to elevate Black voices and raise awareness of police violence, a movement which has now grown worldwide. We encourage you to take time to understand what this movement stands for, why it's happening, and to get involved where you can.
# Where to get it
Nu 0.15.0 is available as [pre-built binaries](https://github.com/nushell/nushell/releases/tag/0.15.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 more goodies, you can install `cargo install nu --features=stable`.
As part of this release, we also publish a set of plugins you can install and use with Nu. To install, use `cargo install nu_plugin_<plugin name>`.
# What's New
## Per-directory environment variables (samhedin)
Right before the announcement of 0.15, we had a surprise feature land - per-directory environment variables. This allows you to configure some environment variables specific to the directory (including subdirectories) that you're currently in, and Nu will set these environment variables as you `cd` into the directory and unset them as you `cd` out.
How it works:
In your config, create a new config setting called `nu_env_dirs` and set it to a list of directories you want to allow to control their own environments:
```
> config --set [nu_env_dirs ["/home/sam", "/home/sam/github", "/home/sam/github/test"]
```
Note: after setting the above config settings, restart Nu so that they can be picked up.
Once set, you can now create a `.nu-env` file in the directory that you want to control the environment in:
```
> open .nu-env
[env]
var = "value"
anothervar = "anothervalue"
```
With this file in place, you can `cd` into one of the directories you've configured and see the new environment variables now available.
## Improvements to auto-complete (AaronC81)
Starting with 0.15, you can now get autocompletions for external commands in your PATH.
Additionally, auto-completing a filepath with a space now is handled with cleaner logic than in previous versions.
## Argument invocation (sophiajt, cjpearce)
You're now able to run a pipeline inside of another command as an argument, and then use the results that come out.
```
> echo $(ls | where size > 10kb | count)
3
```
## String interpolation (sophiajt)
We also support string interpolation, or building a string from text and running commands. For example, if we wanted to print out the current path to the history file with a message, we could do:
{% raw %}
```
> echo `My current history path is {{$nu.history-path}}`
My current history path is /home/jonathant/.local/share/nu/history.txt
```
{% endraw %}
## Prettier errors (sophiajt, brendanzab)
We've switched from language-reporting to codespan, giving us nicer looking errors: