Nushell
Get Nu!
Getting Started
  • The Nushell Book
  • Command Reference
  • Cookbook
  • Language Reference Guide
  • Contributing Guide
Blog
  • English
  • 中文
  • Deutsch
  • Français
  • Español
  • 日本語
  • Português do Brasil
  • Русский язык
  • 한국어
GitHub
Get Nu!
Getting Started
  • The Nushell Book
  • Command Reference
  • Cookbook
  • Language Reference Guide
  • Contributing Guide
Blog
  • English
  • 中文
  • Deutsch
  • Français
  • Español
  • 日本語
  • Português do Brasil
  • Русский язык
  • 한국어
GitHub

Nushell 0.110.0

Today, we're releasing version 0.110.0 of Nu. This release adds a let pipeline command, an unlet command, improvements to the Polars plugin, improvements to explore, and faster ls on Windows.

Where to get it

Nu 0.110.0 is available as pre-built binaries or from crates.io. If you have Rust installed you can install it using cargo install nu.

As part of this release, we also publish a set of optional plugins you can install and use with Nushell.

Table of contents

  • Highlights and themes of this release
    • let can be used in pipelines
    • Destroying variables with unlet
    • Polars plugin supports selectors
    • Polars plugin supports more cloud providers
      • Azure support
      • Google Cloud support
    • explore regex
    • New explore config TUI
    • Faster ls on Windows
    • Improvements to error make
  • Changes
    • Breaking changes
      • Renamed $nu.temp-path and $nu.home-path
      • * no longer matches dotfiles in mv/cp/du by default
      • Use labels for multiple labels in error make
      • IDE menu min_description_width should be non-zero
      • to md formats lists as unordered Markdown lists
    • Additions
      • New Configuration Option: $env.config.show_hints
      • Configuring errors
      • Added record conversion to into list
      • Include MCP server support by default
      • Connection pool for http commands
      • New --output flag for timeit
      • Allow disabling filtering in custom completions
      • New plugin interface get_block_ir
      • New --list flag to control list formatting in to md
      • Add --icons option to table for ls tables
      • Alias definitions shown in which command
      • Allow serializing as raw strings in to nuon
      • Other additions
    • Removals
      • Replace deprecated current_dir usage with EngineState::cwd in multiple files
    • Other changes
      • Update explore regex command to look more helpful and professional
      • More descriptive error messages for rm
      • Some Nushell commands no longer canonicalize paths
      • Add REPL-style state persistence across evaluations for MCP server
      • Use structured response format for MCP server
      • Additional changes
    • Bug fixes
      • Fixed parsing of ranges with parentheses
      • Fixed parsing issue with multiarm match + guard
      • Infinite sequences can be terminated when piped to other commands
      • Pipefail works with try block
      • Nushell exits early when running scripts or commands with bad config files
      • Fix http DNS resolution "Service not supported" error in Docker containers
      • Fix variables remaining active after overlay hide
      • Other fixes
  • Notes for plugin developers
  • Hall of fame
  • Full changelog

Highlights and themes of this release [toc]

let can be used in pipelines [toc]

With #17247, the let command is now allowed to be at the end of the pipeline when a variable name is also provided.

ls | get name | let files
# Equivalent to the following:
let files = ls | get name

Destroying variables with unlet [toc]

To bring balance to the universe, #17270 introduces a new command unlet for deleting variables from memory.

❯ let a = 1;let b = 2;let c = 3;let d = 4
❯ $"($a)($b)($c)($d)"
1234
❯ unlet $a $b $cM
❯ $"($a)($b)($c)($d)"
Error: nu::shell::variable_not_found

  × Variable not found
   ╭─[entry #21:1:4]
 1 │ $"($a)($b)($c)($d)"
   ·    ─┬
   ·     ╰── variable not found
   ╰────

Accompanying this is a new mem_size column in the output of the scope variables command for showing the size of each variable in memory (implemented in #17287).

Polars plugin supports selectors [toc]

#17296 introduces Polars selector support. This introduces the NuSelector type and adds following new commands.

  • polars selector all (plugin) - Creates a selector that selects all columns.
  • polars selector by-dtype (plugin) - Creates a selector that selects columns by data type.
  • polars selector by-name (plugin) - Creates a selector that selects columns by name.
  • polars selector first (plugin) - Creates a selector that selects the first column(s) by index.
  • polars selector last (plugin) - Creates a selector that selects the last column(s) by index.

Selectors may be used with polars select and polars with-column.

Polars plugin supports more cloud providers [toc]

Azure support [toc]

#17116 brings Azure blob storage support to the Polars plugin. The following environment variables are now supported:

  • AZURE_STORAGE_ACCOUNT_NAME: storage account name
  • AZURE_STORAGE_ACCOUNT_KEY: storage account master key
  • AZURE_STORAGE_ACCESS_KEY: alias for AZURE_STORAGE_ACCOUNT_KEY
  • AZURE_STORAGE_CLIENT_ID: client id for service principal authorization
  • AZURE_STORAGE_CLIENT_SECRET: client secret for service principal authorization
  • AZURE_STORAGE_TENANT_ID: tenant id used in oauth flows

Example Usage:

$env.AZURE_STORAGE_ACCOUNT_KEY = "<your access key value>"
$env.AZURE_STORAGE_ACCOUNT_NAME = "<your account name>"
ps | polars into-df | polars save azure://<your account name>/ps.parquet
polars open azure://<your account name>/ps.parquet | polars first 5 | polars collect

Google Cloud support [toc]

#17135 brings Google Cloud Storage support to the Polars plugin.

$env.GOOGLE_SERVICE_ACCOUNT = "/path/to/service_account.json"
$env.GOOGLE_BUCKET = "your_bucket"
ps | polars into-df | polars save gs://nushell_testing/ps.parquet
polars open gs://nushell_testing/ps.parquet | polars first 5 | polars collect

explore regex [toc]

#17187 adds a quick reference panel to explore regex so you won't have to remember every character class or anchor. Use F1 to trigger it and ESC to dismiss.

quick reference panel screenshot

New explore config TUI [toc]

#17147 introduces the explore config command, which launches a TUI allowing you to view and interactively modify your config.

Functionality:

  • When launched with no parameters, it loads your config settings into a tree and editor to allow you to traverse, explore, and change settings.
  • When launched with the --tree parameter, it draws a tree view of your piped in input into the terminal
  • When launched with the --use-example-data parameter, it shows you a customized configuration (my config actually). May be removed later.
  • When JSON is piped into it e.g '{"abc": 1, "xyz": 2}' | explore config --output foo.json it allows you to explore and edit the JSON data and save it out to the provided filename.
  • When in "config mode" it shows you the nushell datatypes as you traverse the tree. When in "json" mode it shows you the json datatypes as you traverse the tree.
  • When in "config mode" it shows you a description of the config setting assuming proper documentation in doc_config.nu. This file will need to be updated a bit in a separate PR. If there is no documentation it shows you a warning triangle by the tree item.
  • As you make changes to your config, you can save those changes and they're immediately applied.
  • If you hit Enter on any node leaf, you immediately jump into editing that value. If you hit Enter on tree nodes, the tree expands or collapses.

Below is a GIF showing off the TUI:

explore-config2

Help

❯ explore config --help
Launch a TUI to view and edit the nushell configuration interactively.

By default, opens the current nushell configuration ($env.config) in the TUI.
Changes made in config mode are applied to the running session when you quit.

You can also pipe JSON data to explore arbitrary data structures, or use
--use-example-data to see sample configuration data.

TUI Keybindings:
  Tab           Switch between tree and editor panes
  ↑↓            Navigate tree / scroll editor
  ←→            Collapse/Expand tree nodes
  Enter/Space   Toggle tree node expansion
  Enter/Space   On leaf nodes, open editor pane
  Enter/e       Start editing (in editor pane)
  Ctrl+Enter    Apply edit
  Esc           Cancel edit
  Ctrl+S        Save/Apply changes
  q             Quit (applies config changes if modified)
  Ctrl+C        Force quit without saving

Usage:
  > explore config {flags}

Flags:
  -h, --help: Display the help message for this command
  -e, --use-example-data: Show the nushell configuration TUI using example data
  -t, --tree: Do not show the TUI, just show a tree structure of the data
  -o, --output <string>: Optional output file to save changes to (default: output.json)

Input/output types:
  ╭─#─┬──input──┬─output─╮
  │ 0 │ nothing │ string │
  │ 1 │ string  │ string │
  ╰───┴─────────┴────────╯

Examples:
  Open the nushell configuration in an interactive TUI editor
  > explore config

  Explore JSON data interactively
  > open --raw data.json | explore config

  Explore with example data to see TUI features
  > explore config --use-example-data

Faster ls on Windows [toc]

#17339 makes ls much faster on Windows.

Before:

❯ use std/bench *
❯ bench { ls c:\windows\system32 | length } { ls c:\windows\system32 } --rounds 10
╭─#─┬────────────────code─────────────────┬──────────mean──────────┬──────────min───────────┬──────────max───────────┬───────std────────┬─ratio─╮
│ 0 │ { ls c:\windows\system32 | length } │  1sec 536ms 50µs 650ns │ 1sec 502ms 450µs 200ns │ 1sec 605ms 537µs 100ns │ 29ms 468µs 800ns │  1.01 │
│ 1 │ { ls c:\windows\system32 }          │ 1sec 527ms 102µs 580ns │ 1sec 508ms 441µs 300ns │ 1sec 556ms 144µs 800ns │ 17ms 852µs 739ns │  1.00 │
╰─#─┴────────────────code─────────────────┴──────────mean──────────┴──────────min───────────┴──────────max───────────┴───────std────────┴─ratio─╯

After:

❯ use std/bench *
❯ bench { ls c:\windows\system32 | length } { ls c:\windows\system32 } --rounds 10
╭─#─┬────────────────code─────────────────┬───────mean────────┬────────min────────┬────────max────────┬───────std───────┬─ratio─╮
│ 0 │ { ls c:\windows\system32 | length } │ 171ms 623µs 760ns │ 167ms 632µs 400ns │ 182ms 443µs 100ns │  4ms 263µs 43ns │  1.01 │
│ 1 │ { ls c:\windows\system32 }          │ 170ms 398µs 400ns │ 167ms 103µs 200ns │ 174ms 190µs 500ns │ 2ms 260µs 683ns │  1.00 │
╰─#─┴────────────────code─────────────────┴───────mean────────┴────────min────────┴────────max────────┴───────std───────┴─ratio─╯

Improvements to error make [toc]

#17070 introduced several improvements to error make.

Creating errors more easily

error make can now be called without arguments:

> error make
Error: nu::shell::error

  × originates from here
   ╭─[entry #4:1:1]
 1 │ error make
   · ──────────
   ╰────

It can also be passed a single message in any of the following ways:

  • Pipeline input: {msg: foo} | error make
  • Record argument: error make {msg: foo}
  • String argument: error make foo
Error: nu::shell::error

  × foo
   ╭─[entry #2:1:12]
 1 │ error make {msg: foo}
   ·            ──────────
   ╰────

Chaining errors together

error make already lets you created chained errors using inner, like so:

error make {msg: bar inner: [{msg: foo}]}

Now, you can achieve the same effect by:

  • Passing a message as pipeline input: {msg: foo} | error make bar
  • Creating an error in a catch block: try {error make foo} catch {error make bar}

Here's how that second one looks:

Error: nu::shell::error

  × bar
   ╭─[entry #1:1:29]
 1 │ try {error make foo} catch {error make bar}
   ·                             ──────────
   ╰────

Error: nu::shell::error

  × foo
   ╭─[entry #1:1:6]
 1 │ try {error make foo} catch {error make bar}
   ·      ──────────
   ╰────

Labels

Labels can now be created without a text field, like this error that only has a span. The span is highlighted, but with an empty label:

> def f [x] {
  error make {msg: here label: {span: (metadata $x).span}}
}
f abcd
Error: nu::shell::error

  × here
   ╭─[entry #7:4:3]
 3 │ }
 4 │ f abcd
   ·   ────
   ╰────

External sources

The new src field allows highlighting spans of text in any file, not just internal Nushell spans.

> "foo\nbar\nbaz" | save -f /tmp/foo.bar
error make {
  msg: 'error here'
  src: {path: /tmp/foo.bar}
  labels: [
    {text: "this" span: {start: 4 end: 7}}
  ]
}
Error: nu::shell::outside

  × error here
   ╭─[/tmp/foo.bar:2:1]
 1 │ foo
 2 │ bar
   · ─┬─
   ·  ╰── this
 3 │ baz
   ╰────

Changes [toc]

Breaking changes [toc]

Renamed $nu.temp-path and $nu.home-path [toc]

For consistency with other $nu fields:

  • $nu.temp-path has been renamed to $nu.temp-dir
  • $nu.home-path has been renamed to $nu.home-dir

Implemented in #17129.

* no longer matches dotfiles in mv/cp/du by default [toc]

With #17185, the glob * won't match files whose names start with a dot (.) when using cp, mv, and du. However, these commands have a new --all(-a) flag for forcing the glob to match dotfiles.

> touch .a
> cp * /tmp
> "/tmp/.a" | path exists
false

Use labels for multiple labels in error make [toc]

Previously, when calling error make with a record argument, the label field could be either a single label or a list of labels. Now, it must be a single label. There is a new labels field that can hold a list of labels. Updated in #17070.

> def f [x y z] {
  error make {msg: here labels: [
    {text: "there" span: (metadata $x).span}
    {text: "everywhere" span: (metadata $y).span}
    {text: "somewhere" span: (metadata $z).span}
  ]
  }
}
f abcd [x y z] {d: a}

Error: nu::shell::error

  × here
   ╭─[entry #11:9:3]
 8 │ }
 9 │ f abcd [x y z] {d: a}
   ·   ──┬─ ───┬─── ───┬──
   ·     │     │       ╰── somewhere
   ·     │     ╰── everywhere
   ·     ╰── there
   ╰────

IDE menu min_description_width should be non-zero [toc]

With reedline#996, the min_description_width setting for the IDE menu is used to determine when to switch the description to the left if description_mode is prefer_right. This means that if min_description_width is set to 0, the description box will always stay on the right, even when there isn't enough space to show it.

To fix this, set min_description_width to a width at which the description box can still hold a decent amount of text (e.g., 15, the new default).

to md formats lists as unordered Markdown lists [toc]

to md will now format lists as unordered Markdown lists by default. For more information, see New --list flag to control list formatting in to md.

Additions [toc]

New Configuration Option: $env.config.show_hints [toc]

You can now disable hints for completions and the history by setting $env.config.show_hints = false.

Configuring errors [toc]

New error_style = short setting

#17097 adds a new short option to $env.config.error_style for displaying errors as concise, single-line messages similar to classic shells.

$ ll
Error: External command failed: Command `ll` not found (Did you mean `all`?)

New error_style = tree setting

#17105 adds a new tree option for $env.config.error_style to show related/nested errors.

New error_lines setting

#17105 adds a new $env.config.error_lines option to control the number of lines printed for error context. By default, this is set to 1.

Added record conversion to into list [toc]

With #17127, into list from std-rfc/conversions now handles record types.

use std-rfc/conversions *
{ a: 3, b: 7, c: 10 } | into list
# => ╭───┬─────┬───────╮
# => │ # │ key │ value │
# => ├───┼─────┼───────┤
# => │ 0 │ a   │     3 │
# => │ 1 │ b   │     7 │
# => │ 2 │ c   │    10 │
# => ╰───┴─────┴───────╯

Include MCP server support by default [toc]

The MCP server support is now included as a default feature in #17151.

Connection pool for http commands [toc]

With #17157 http subcommands now have a --pool flag for reusing connections:

http get https://www.google.com --pool

The http pool command can be used to reset and customize the HTTP connection pool.

New --output flag for timeit [toc]

#17202 adds a flag called --output to the timeit command that will make the command return a record with both the execution time and the output of the closure.

> timeit --output { 'example text' }
╭────────┬──────────────╮
│ time   │ 14328        │
│ output │ example text │
╰────────┴──────────────╯

Allow disabling filtering in custom completions [toc]

#17253 allows disabling filtering in custom completions. This is useful if you have a completer that filters on something other than the value of the suggestion (e.g. a completer that displays git commits and filters based on commit description).

Note

If you disable filtering, your completions will also not be sorted.

New plugin interface get_block_ir [toc]

#17279 a new engine call to the plugin protocol for getting the compiled Intermediate Representation (IR) for a block:

fn get_block_ir(&self, block_id: BlockId) -> Result<IrBlock, ShellError>

New --list flag to control list formatting in to md [toc]

With #17250, to md will format lists as unordered Markdown lists by default. The --list flag can be used to control this:

  [a b c] | to md                   # => "* a\n* b\n* c"
  [a b c] | to md --list unordered  # => "* a\n* b\n* c"
  [a b c] | to md --list ordered    # => "1. a\n2. b\n3. c"
  [a b c] | to md --list none       # => "a\nb\nc"

Warning

Breaking change: The previous behavior was equivalent to --list none (no formatting for lists). The new behavior is --list unordered.

Add --icons option to table for ls tables [toc]

Similar to ls | grid -i, now ls | table --icons will display file icons to the left of the filename. This can be used in your $env.config.hooks.display_output to always display icons when using ls. Implemented in #17248.

table --icons screenshot

Alias definitions shown in which command [toc]

With #17338, the which command includes a definitions column when inspecting aliases to show the command that the alias expands to.

Allow serializing as raw strings in to nuon [toc]

#17189 adds a --raw-strings flag to to nuon for serializing strings with raw string syntax (r#'...'#) instead of strings with escapes.

Other additions [toc]

  • job flush can now take a --tag to filter which messages to discard (#17056)
  • Add $history variable to MCP (#17132)

Removals [toc]

Replace deprecated current_dir usage with EngineState::cwd in multiple files [toc]

#17303 removes some deprecated Rust functions from nu-engine that have been deprecated since Nushell 0.92.3:

  • current_dir_str()
  • current_dir_str_const()
  • current_dir()
  • current_dir_const()

Other changes [toc]

Update explore regex command to look more helpful and professional [toc]

With #17149, the explore regex UI now looks more helpful and professional.

New explore regex UI

More descriptive error messages for rm [toc]

The rm command now provides more descriptive error messages when it runs into an IO error. Implemented in #17134.

Some Nushell commands no longer canonicalize paths [toc]

With #17319, rm, watch, and source no longer canonicalize paths. Additionally, the file path links in table view will no longer be canonicalized if you click them.

Add REPL-style state persistence across evaluations for MCP server [toc]

With #17121, variables and environment changes now persist across MCP tool calls (REPL-style). This enables workflows like

$env.MY_VAR = "hello"  # First call
$env.MY_VAR             # Second call returns "hello"

Use structured response format for MCP server [toc]

With #17132, all MCP responses will be wrapped in a structured record with:

  • history_index: 0-based index of result in history
  • cwd: current working directory after command
  • output: command output (possibly truncated)

Additional changes [toc]

  • Single column dataframes (series) or expressions can now be passed into polars is-in (#17275)
  • Lists can now be passed into polars lit (#17275)
  • bytes length can now be used at const time (#17204)
  • Add a quick reference panel to explore regex with the F1 keybinding and dismiss it with the ESC keybinding. (#17187)
  • Within the explore command the :nu command will now stream content by spawning the command issues without blocking. (#17208)
  • --help is now available for debug env. (#17278)
  • This PR adds the memory_size() function on nushell Value so that we can get the size of variables to understand them better. (#17287)
  • Update agents.md for better LLM use. (#17318)
  • Make detect type more robust with datetime handling by updating regular expressions (#17357)

Bug fixes [toc]

Fixed parsing of ranges with parentheses [toc]

Ranges that include a parenthesized expression will now be parsed correctly after #17109. The below example will now evaluate to the range 0..1 rather than being parsed as an invalid three-part range 0..(1..2.

0..(1..2 | first)

Fixed parsing issue with multiarm match + guard [toc]

Match statements with multiple alarms and a guard expression, such as the below example, will now be parsed correctly after #17115. Previously, such an expression would fail to parse.

match 3 {
  1 | 2 | 3 if true => 'test'
}

Infinite sequences can be terminated when piped to other commands [toc]

#17245 allows infinite sequences to be terminated when piped to other commands.

> `1..inf | to md`  # then press ctrl-c
^CError: nu::shell::error

  × Operation interrupted
   ╭─[entry #1:1:1]
 1 │ 1..inf | to md
   · ───────┬──────
   ·        ╰── This operation was interrupted
   ╰────

Pipefail works with try block [toc]

With #17052, the following code will an empty list with additional 1, because the command is failed actually.

> nu --experimental-options=[pipefail]
> try {
  ^false | lines
} catch {|e|
  print $e.exit_code
}

Nushell exits early when running scripts or commands with bad config files [toc]

With #17103, if a script or command is run with a config.nu or env.nu that can't be evaluated, Nushell will exit.

echo 'errnocmd' | save config.nu
nu --config config.nu -c 'echo $env.NU_VERSION'

This will exit with status code 1 rather than printing the Nushell version.

Fix http DNS resolution "Service not supported" error in Docker containers [toc]

With #17125, http commands will no longer error with "Service not supported for this socket type" in certain Linux environments (particularly Docker containers running Debian Trixie).

Fix variables remaining active after overlay hide [toc]

#17130 makes overlays work more reliably inside scripts.

#!/usr/bin/env nu

def something [] { "example" }

module spam {}
overlay use spam
def bar [] { "bar" }
overlay hide spam
bar

Previously, bar would be available to use even after overlay hide spam. This has been fixed.

Other fixes [toc]

  • Type mismatch errors no longer list the same type multiple times (#17075)
  • Allow creating aliases for commands with required flags (#17106)
  • rm can now delete broken symlinks on Windows (#17320)
  • format date can see locale environment variables set by with-env (#17333)
  • Changes to $env.config outside of config.nu are reflected in more places (17058)
  • Multiplying duration by integers now throws an error on overflow (#17063)
  • rm command will return error when there is one file is failed to remove. (#17237)
  • Changed the behavior of cal --month-names to create a new month_name column instead of overriding month. (#17302)
  • glob no longer canonicalizes paths internally (#17312)
  • Fixed the issue where "Duplicate Pane" in Windows Terminal failed when the current path contained Chinese characters by removing unnecessary URL-encoding in OSC 9;9 sequences. (#17311)
  • Enable detect columns to be more robust, specifically for handling the output of tablelike structures that are created with ascii or unicode table characters like we use in nushell today. Many tools are starting to use this columnar data output so hopefully this will enable nushell to be able to parse this data better. (#17317)
  • General speed up increase in the ls command by caching and not calling metadata() so frequently. (#17339)
  • input -s will append newline when user finishes typing. (#17298)
  • std/help: Add colors, proper examples, fix output (#17010)
  • table -i false no longer panic when there is an index column, e.g: [{index: 0, data: yes}] | table -i false (#17126)

Notes for plugin developers [toc]

Hall of fame [toc]

Thanks to all the contributors below for helping us solve issues, improve documentation, refactor code, and more! 🙏

authorchangelink
@migraine-userQuick typo fix in docs for each#17110
@KaiSforzaUpdate flake.lock, added latest devshell variant#17084
@fdncredBump the rust-toolchain to 1.90.0#17133
@blindFSUse checked_sub in parse_range to avoid overflow#17152
@fdncredUpdate doc config#17168
@fdncredUpdate match count when test text changes#17169
@fdncredAdd search capability to explore config command#17170
@fdncredAdd syntax highlighting to explore config#17176
@fdncredRefactor explore family of commands so that it's easier to understand and maintain#17181
@fdncredUpdate uutils to 0.5.0#17183
@WindSoilderAdd http pool cmd#17177
@fdncredAdd agents.md to help LLMs#17148
@fdncredUpdate reedline to the latest commit#17197
@fdncredFix the mcp ctrl-c bug#17199
@sgvictorinoMake MCP server interruptible#17200
@fdncredIncrease help menu description rows from 10 to 15#17223
@EcorousBump rmp(-serde) to 0.8.15/1.3.1#17242
@WindSoilderFix rm -f when some files not found#17249
@ysthakurBump reedline to latest main (reedline#991)#17252
@fdncredUpdate reedline to latest commit#17266
@fdncredThe new command unlet will delete variables from memory.#17270
@fdncredFix explore searching#17289
@fdncredUpdate reedline to latest commit#17299
@fdncredUpdate nushell to latest reedline commit 6ceda500#17328

Full changelog [toc]

authortitlelink
@ChrisDentonIntroduce nupath::absolute_with and use it in glob#17312
@ChrisDentonReplace uses of canonicalize in nu-command#17319
@ChrisDentonFix removing broken symlinks on Windows#17320
@DevAldreteAllow disabling filtering in custom completions#17253
@Dorumin--tag on job flush#17056
@EcorousBump rmp(-serde) to 0.8.15/1.3.1#17242
@IvolliousElectroluxFix OSC 9;9 path reporting in Windows Terminal (Fixes #17300)#17311
@Jan9103feat(bytes length): make available at const-time#17204
@KaiSforzastd/help: Add colors, proper examples, fix output#17010
@KaiSforzaerror_make: Another rewrite of error make#17070
@KaiSforzaUpdate flake.lock, added latest devshell variant#17084
@KaiSforzaFix up the env.rs tests#17085
@KaiSforzaAdd error_lines and error_style = tree settings#17105
@NotTheDr01dsAdded record conversion to into list#17127
@NotTheDr01dsChanged home-path/temp-path to home-dir/temp-dir#17129
@NotTheDr01dsAdded CARGO* and RUSTUP* environment variables back to test environment#17186
@NotTheDr01dsAdd --icons option to table for ls tables#17248
@Tyarel8feat(timeit): add --output flag#17202
@WindSoilderpipefail: works inside try block#17052
@WindSoilderMaking --env-config and --config errors lead to error status code when running nu scripts or commands.#17103
@WindSoildermerge_predecl don't move all predecls to overlay#17130
@WindSoilderhttp commands can use builtin connection pool#17157
@WindSoilderadd http pool cmd#17177
@WindSoildermv/cp/du *: don't match dotfiles by default.#17185
@WindSoilderrm: returns Error when it failed to remove a file#17237
@WindSoilderValue::List and Value::Range can be interrupted when piping to other commands.#17245
@WindSoilderfix rm -f when some files not found#17249
@WindSoilderinput -s: always write "\n" when user finished typing.#17298
@andrewgazelkafeat(mcp): output NUON format instead of expanded string#17119
@andrewgazelkarefactor(mcp): extract tool descriptions to markdown files#17120
@andrewgazelkafeat(mcp): add REPL-style state persistence across evaluations#17121
@andrewgazelkafeat(mcp): add $history variable and structured response format#17132
@andrewgazelkadocs(mcp): add string interpolation syntax to instructions#17153
@andrewgazelkadocs(mcp): add stderr redirection BAD/GOOD examples to instructions#17163
@andrewgazelkadocs(mcp): add par-each preference to instructions#17171
@andrewgazelkafeat(nuon): add raw string serialization support#17189
@app/dependabotbuild(deps): bump actions/checkout from 5 to 6#17076
@app/dependabotbuild(deps): bump schemars from 1.0.4 to 1.1.0#17078
@app/dependabotbuild(deps): bump crate-ci/typos from 1.39.2 to 1.40.0#17108
@app/dependabotbuild(deps): bump bytesize from 2.1.0 to 2.3.1#17139
@app/dependabotbuild(deps): bump actions/upload-artifact from 5 to 6#17190
@app/dependabotbuild(deps): bump http from 1.3.1 to 1.4.0#17191
@app/dependabotbuild(deps): bump bytes from 1.10.0 to 1.11.0#17192
@app/dependabotbuild(deps): bump winreg from 0.52.0 to 0.55.0#17193
@app/dependabotbuild(deps): bump strum from 0.26.3 to 0.27.2#17194
@app/dependabotbuild(deps): bump procfs from 0.17.0 to 0.18.0#17195
@app/dependabotbuild(deps): bump rmcp from 0.8.1 to 0.8.5#17224
@app/dependabotbuild(deps): bump toml from 0.8.19 to 0.9.10+spec-1.1.0#17225
@app/dependabotbuild(deps): bump mach2 from 0.4.3 to 0.6.0#17227
@app/dependabotbuild(deps): bump crate-ci/typos from 1.40.0 to 1.40.1#17259
@app/dependabotbuild(deps): bump tempfile from 3.23.0 to 3.24.0#17261
@app/dependabotbuild(deps): bump csv from 1.3.1 to 1.4.0#17262
@app/dependabotbuild(deps): bump uuid from 1.18.1 to 1.19.0#17264
@app/dependabotbuild(deps): bump calamine from 0.28.0 to 0.32.0#17306
@app/dependabotbuild(deps): bump fancy-regex from 0.16.1 to 0.17.0#17307
@app/dependabotbuild(deps): bump unicase from 2.8.0 to 2.9.0#17308
@app/dependabotbuild(deps): bump tokio from 1.46.1 to 1.49.0#17309
@app/dependabotbuild(deps): bump lru from 0.12.5 to 0.16.3#17313
@app/dependabotbuild(deps): bump dialoguer from 0.11.0 to 0.12.0#17314
@app/dependabotbuild(deps): bump shadow-rs from 1.4.0 to 1.5.0#17315
@app/dependabotbuild(deps): bump schemars from 1.1.0 to 1.2.0#17316
@app/dependabotbuild(deps): bump crate-ci/typos from 1.41.0 to 1.42.0#17343
@astral-lAdd month_name column to cal --month-names#17302
@atahabakiDo not treat 0 as padding always | bracoxide | str expand#17294
@ayax79Azure blob storage support for polars#17116
@ayax79Polars: Add google cloud support#17135
@ayax79Added mcp to default and all features#17151
@ayax79Polars: Allow series and expressions to be passed into polars is-in#17275
@ayax79Polars: Introduce selector support#17296
@blackhat-hemsworthdeduplicated types in type_check process to improve error message#17075
@blackhat-hemsworth[fix] fixed issue with alias "missing required flag" on create#17106
@blackhat-hemsworthfixed handling of ranges with respect to parentheses#17109
@blackhat-hemsworthfixed parsing issue with multiarm match + guard#17115
@blackhat-hemsworthfix--propagate more descriptive error message for rm Os errors#17134
@blindFSfix(parser): use checked_sub in parse_range to avoid overflow#17152
@cptpiepmatzReplace dep rust-embed with custom code generation#17276
@cptpiepmatzUse Signature::build instead of new on debug env#17278
@dhr412Add definition column to which command for aliases#17338
@fdncredbump the rust-toolchain to 1.90.0#17133
@fdncrednew command: explore config TUI#17147
@fdncredadd agents.md to help LLMs#17148
@fdncredupdate explore regex command to look more helpful and professional#17149
@fdncredUpdate doc config#17168
@fdncredupdate match count when test text changes#17169
@fdncredadd search capability to explore config command#17170
@fdncredclean up explore a bit#17172
@fdncredAdd syntax highlighting to explore config#17176
@fdncredrefactor explore family of commands so that it's easier to understand and maintain#17181
@fdncredupdate uutils to 0.5.0#17183
@fdncredAdd quick reference panel to explore regex command#17187
@fdncredupdate reedline to the latest commit#17197
@fdncredfix the mcp ctrl-c bug#17199
@fdncredStream explore nu output#17208
@fdncreduse graphemes instead of byte indexes in explore regegx#17219
@fdncredIncrease help menu description rows from 10 to 15#17223
@fdncredAllow let to be able to be used at the end of the pipeline#17247
@fdncredupdate reedline to latest commit#17266
@fdncrednew command: unlet#17270
@fdncredadd memory_size function on nushell's Value#17287
@fdncredFix explore searching#17289
@fdncredupdate reedline to latest commit#17299
@fdncredreplace deprecated current_dir usage with EngineState::cwd in multiple files#17303
@fdncredmake detect columns more robust + refactor + new switch#17317
@fdncredadd more details to agents.md#17318
@fdncredupdate nushell to latest reedline commit 6ceda500#17328
@fdncredmake ls faster#17339
@fdncredUpdate evaluate_tool.md#17342
@fdncredadd better regex pattern handling#17357
@hustcerFix http DNS resolution "Service not supported" error in Docker containers#17125
@hustcerFix table -i false panic when there is an index column#17126
@hustcerUpgrade nushell to 0.109.1 for release and nightly workflow#17131
@hustcerAdd --list flag to to md for ordered/unordered/none list formatting#17250
@hustcerFix typo & upgrade crate-ci/typos#17310
@kaathewisegitfix: throw errors on overflow in duration integer multiplication#17063
@kouhe3use win_uds as uds on windows#17214
@migraine-userQuick typo fix in docs for each#17110
@playwmadnessUpdate --allow-dtd hint phrasing for from xml#17218
@playwmadnessfix(#17321): with-env not applying locale env vars to format date#17333
@reubenoupdate reedline to the latest commit#17203
@sgvictorinouse Stack::get_config() in more places#17058
@sgvictorinomake MCP server interruptible#17200
@splintersuidmanAdd configuration option for whether to show hints#17156
@tom-lubenowAdd GetBlockIR engine call to plugin protocol#17279
@yanekAdd short error_style#17097
@ysthakurfix: Make custom completer spans relative to command expr#17060
@ysthakurBump reedline to latest main (reedline#991)#17252
@ysthakurChange default IdeMenu min_description_width to 15#17280
@ysthakurPin reedline to 0.45 for 0.110 release#17366
Edit this page on GitHub
Contributors: ysthakur