GitHub – nushell/nushell: A new type of shell

Last modified on June 16, 2021
Build Status
The Changelog #363
GitHub commit activity
GitHub contributors


A up to date selection of shell.

Example of nushell


This mission has reached a minimum-viable product stage of high quality.
While contributors dogfood it as their day-to-day driver, it might presumably presumably effectively merely be unstable for some directions.
Future releases will work to own out missing facets and toughen steadiness.
Its make is furthermore topic to commerce as a result of it matures.

Nu comes with a neighborhood of built-in directions (listed beneath).
If a bellow is unknown, the bellow will shell-out and attain it (the utilization of cmd on Windows or bash on Linux and macOS), exactly passing by way of stdin, stdout, and stderr, so points cherish your day-to-day git workflows and even vim will work legitimate lovely.

Finding out extra

There are just a few lawful assets to amass out about Nu.
There is a e e-book about Nu that's in the interim in progress.
The e e-book makes a speciality of the utilization of Nu and its core concepts.

While you may presumably effectively very efficiently be a developer who would cherish to make a contribution to Nu, we're furthermore engaged on a e e-book for builders to allow you to catch began.
There are furthermore lawful first issues to allow you to dive in.

We furthermore have an brisk Discord and Twitter when you happen to'd cherish to return and chat with us.

You presumably can furthermore purchase information on extra explicit points in our cookbook.

Strive it in Gitpod.

Open in Gitpod



Up-to-date set up directions may presumably furthermore be sigh within the set up chapter of the e e-book. Windows customers: please novel that Nu works on Windows 10 and does not in the interim have Windows 7/8.1 strengthen.

To make Nu, you may presumably effectively wish to use the most up-to-date secure (1.51 or later) mannequin of the compiler.

Required dependencies:

  • pkg-config and libssl (absolute most sensible wished on Linux)
    • On Debian/Ubuntu: right set up pkg-config libssl-dev

Optionally accessible dependencies:

  • To use Nu with all doable optionally accessible facets enabled, you may presumably effectively furthermore want the subsequent:
    • On Linux (on Debian/Ubuntu): right set up libxcb-composite0-dev libx11-dev

To set up Nu by cargo (assure you may presumably effectively merely have gotten put apart in rustup and the newest secure compiler by rustup set up secure):

To set up Nu by the Windows Equipment Supervisor:

You presumably can furthermore make Nu your self alongside along with your full bells and whistles (agree with positive to have put apart within the dependencies on your platform), everytime you may presumably effectively merely have gotten checked out this repo with git:

cargo make --workspace --aspects=further



Want to work together a see at Nu lawful away? Invent the subsequent to catch began.

docker bustle -it up-to-date


While you may presumably effectively very efficiently be looking to tug a pre-built container, that you simply simply can browse tags for the nushell group
on Pulling a container would close to legitimate right down to:

docker pull
docker pull

Each and each "nu-immoral" and "nu" current the nu binary, nonetheless nu-immoral furthermore entails the availability code at /code
within the container and all dependencies.

Optionally, that you simply simply can furthermore make the containers regionally the utilization of the dockerfiles offered:
To make the immoral picture:

docker make -f docker/ -t nushell/nu-immoral .

And then to make the smaller container (the utilization of a Multistage make):

docker make -f docker/Dockerfile -t nushell/nu .

Either functionality, that you simply simply can bustle both container as follows:

docker bustle -it nushell/nu-immoral
docker bustle -it nushell/nu
/> exit

The 2nd container is moderately smaller if the dimensions is obligatory to you.

Packaging put

Packaging status


COPR repo: sudo dnf copr allow atim/nushell -y && sudo dnf set up nushell -y


Nu attracts inspiration from tasks cherish PowerShell, purposeful programming languages, and trendy CLI devices.
In put of pondering of recordsdata and services and products as uncooked streams of textual content, Nu seems at each enter as one factor with constructing.
As an instance, when you guidelines the contents of a itemizing, what you come all over again is a desk of rows, the set each row represents an merchandise in that itemizing.
These values may presumably furthermore be piped by way of a bunch of steps, in a bunch of directions referred to as a 'pipeline'.


In Unix, or not it's frequent to pipe between directions to interrupt up up a elaborate bellow over multiple steps.
Nu takes this a step further and builds closely on the muse of pipelines.
Honest because the Unix philosophy, Nu permits directions to output to stdout and skim from stdin.
Furthermore, directions can output structured information (that you simply simply can deem of this as a Third make of circulation).
Commands that work within the pipeline match into one of three courses:

  • Commands that originate a circulation (eg, ls)
  • Commands that filter a circulation (eg, the set sort=="Dir")
  • Commands that be happy the output of the pipeline (eg, autoview)

Commands are separated by the pipe image (|) to indicate a pipeline flowing left to lawful.

> ls | the set sort=="Dir" | autoview
 # │ title   │ sort │ measurement  │ modified
 0 │ assets │ Dir  │ 128 B │ 5 months in the past
 1 │ crates │ Dir  │ 704 B │ 50 minutes in the past
 2 │ debian │ Dir  │ 352 B │ 5 months in the past
 3 │ docker │ Dir  │ 288 B │ Three months in the past
 4 │ docs   │ Dir  │ 192 B │ 50 minutes in the past
 5 │ photographs │ Dir  │ 160 B │ 5 months in the past
 6 │ src    │ Dir  │ 128 B │ 1 day in the past
 7 │ purpose │ Dir  │ 160 B │ 5 days in the past
 8 │ checks  │ Dir  │ 192 B │ Three months in the past

Due to most of the time you may presumably effectively are looking to seem the output of a pipeline, autoview is believed.
We would have furthermore written the above:

Being prepared to make use of the an identical directions and set them in any other case is a terribly indispensable philosophy in Nu.
As an instance, we might use the built-in ps bellow as efficiently to catch a guidelines of the working processes, the utilization of the an identical the set as above.

> ps | the set cpu > 0
 # │ pid    │ title              │ put   │ cpu     │ mem      │ digital
 0 │    435 │ irq/142-SYNA327   │ Slumbering │  7.5699 │      Zero B │      Zero B
 1 │   1609 │ pulseaudio        │ Slumbering │  6.5605 │  10.6 MB │   2.Three GB
 2 │   1625 │ gnome-shell       │ Slumbering │  6.5684 │ 639.6 MB │   7.Three GB
 3 │   2202 │ Net Yelp       │ Slumbering │  6.8157 │ 320.Eight MB │   3.Zero GB
 4 │ 328788 │ nu_plugin_core_ps │ Slumbering │ 92.5750 │   5.9 MB │ 633.2 MB

Opening recordsdata

Nu can load file and URL contents as uncooked textual content or as structured information (if it acknowledges the format).
As an instance, that you simply simply can load a .toml file as structured information and discover it:

> begin Cargo.toml
 bin                │ [table 18 rows]
 make-dependencies │ [row serde toml]
 dependencies       │ [row 29 columns]
 dev-dependencies   │ [row nu-test-support]
 facets           │ [row 19 columns]
 package deal            │ [row 12 columns]
 workspace          │ [row members]

We can pipeline this right into a bellow that may get the contents of one of many columns:

> begin Cargo.toml | catch package deal
 authors       │ [table 1 rows]
 default-bustle   │ nu
 description   │ A up to date sort of shell
 documentation │ e-book/
 version       │ 2018
 exclude       │ [table 1 rows]
 homepage      │
 license       │ MIT
 title          │ nu
 readme        │
 repository    │
 mannequin       │ 0.32.0

In a roundabout draw, we are able to use directions begin air of Nu after we have got bought the options we choose:

> begin Cargo.toml | catch package deal.mannequin

Right right here we use the variable $it to discuss with with the worth being piped to the exterior bellow.


Nu has early strengthen for configuring the shell. You presumably can seek the advice of with the e e-book for a guidelines of all supported variables.

To house this way of variables, you must use config house. As an instance:

config house path $nu.path
> config house line_editor.edit_mode "vi"
> config house path $nu.path


Nu will work inside a single itemizing and may should make it extra simple to navigate round your filesystem by default.
Nu furthermore gives a mode of including further working directories that you simply simply can soar between, allowing you to work in multiple directories on the an identical time.

To protect out so, use the enter bellow, which is ready to allow you make a model up to date "shell" and enter it on the required path.
You presumably can toggle between this up to date shell and the distinctive shell with the p (for earlier) and n (for subsequent), allowing you to navigate round a hoop buffer of shells.
If you may presumably effectively very efficiently be carried out with a shell, that you simply simply can exit it and work together away it from the ring buffer.

In a roundabout draw, to catch a guidelines of your full novel shells, you must use the shells bellow.


Nu helps plugins that provide further performance to the shell and apply the an identical structured information model that inbuilt directions use.
This enables you to delay nu on your needs.

There are just a few examples within the plugins itemizing.

Plugins are binaries which can be available in your path and apply a nu_plugin_* naming conference.
These binaries have interaction with nu by a simple JSON-RPC protocol the set the bellow identifies itself and passes alongside its configuration, which then makes it available to be used.
If the plugin is a filter, information streams to it one ingredient at a time, and it'll circulation information once more in return by stdin/stdout.
If the plugin is a sink, it is given the stout vector of closing information and is given free reign over stdin/stdout to make use of as a result of it pleases.


Nu adheres intently to a neighborhood of targets that agree with up its make philosophy. As facets are added, they're checked towards these targets.

  • Before the entire factor, Nu is depraved-platform. Commands and methods can should increase between platforms and supply firstclass constant strengthen for Windows, macOS, and Linux.

  • Nu ensures sigh compatibility with present platform-particular executables that agree with up

Read More

Similar Products:

Recent Content