Home Explore Blog CI



nushell

1st chunk of `blog/2020-06-09-nushell_0_15_0.md`
f13d22501a28e92454dbd0689e3961dbac3e3b85a099a9a70000000100000e2c
---
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:


Title: Nushell 0.15.0 Release
Summary
Nushell 0.15.0 has been released with new features like per-directory environment variables, improvements to auto-complete, argument invocation, string interpolation, and prettier errors. It is available as pre-built binaries or from crates.io.