<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="https://www.nushell.sh/rss.xsl"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <atom:link href="https://www.nushell.sh/rss.xml" rel="self" type="application/rss+xml"/>
    <title>Nushell</title>
    <link>https://www.nushell.sh/</link>
    <description>A new type of shell.</description>
    <language>en-US</language>
    <pubDate>Sat, 11 Jul 2026 21:48:16 GMT</pubDate>
    <lastBuildDate>Sat, 11 Jul 2026 21:48:16 GMT</lastBuildDate>
    <generator>@vuepress/plugin-feed</generator>
    <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
    <item>
      <title>Nushell 0.114.1</title>
      <link>https://www.nushell.sh/blog/2026-07-11-nushell_v0_114_1.html</link>
      <guid>https://www.nushell.sh/blog/2026-07-11-nushell_v0_114_1.html</guid>
      <source url="https://www.nushell.sh/rss.xml">Nushell 0.114.1</source>
      <description>Nushell 0.114.1
Today, we&amp;apos;re releasing version 0.114.1 of Nu. This patch release fixes issues found after enforce-runtime-annotations became opt-out in the last version, improvi...</description>
      <content:encoded><![CDATA[<!-- TODO: complete the excerpt above -->
<!-- NOTE: start from the TODO all the way at the bottom (and sort of work your way up) -->
<h1>Nushell 0.114.1</h1>
<p>Today, we're releasing version 0.114.1 of Nu. This patch release fixes issues found after <code>enforce-runtime-annotations</code> became opt-out in the last version, improving runtime type checks and error reporting.</p>
<h1>Where to get it</h1>
<p>Nu 0.114.1 is available as <a href="https://github.com/nushell/nushell/releases/tag/0.114.1" target="_blank" rel="noopener noreferrer">pre-built binaries</a> or from <a href="https://crates.io/crates/nu" target="_blank" rel="noopener noreferrer">crates.io</a>. If you have Rust installed you can install it using <code>cargo install nu</code>.</p>
<p>As part of this release, we also publish a set of optional <a href="https://www.nushell.sh/book/plugins.html" target="_blank" rel="noopener noreferrer">plugins</a> you can install and use with Nushell.</p>

<h1>Highlights and themes of this release </h1>
<!-- NOTE: if you wanna write a section about a breaking change, when it's a very important one,
    please add the following snippet to have a "warning" banner :)
    > see [an example](https://www.nushell.sh/blog/2023-09-19-nushell_0_85_0.html#pythonesque-operators-removal)

    ```md
    ::: warning Breaking change
    See a full overview of the [breaking changes](#breaking-changes)
    :::
    ```
-->
<!-- NOTE: see https://vuepress.github.io/reference/default-theme/markdown.html#custom-containers
    for the list of available *containers*
-->
<h2>Follow-up fixes for runtime annotation checks </h2>
<p>In <a href="/blog/2026-07-04-nushell_v0_114_0.html" target="_blank">Nushell 0.114.0</a>, we promoted <a href="https://github.com/nushell/nushell/issues/16832" target="_blank" rel="noopener noreferrer"><code>enforce-runtime-annotations</code></a> from an opt-in experimental option to an opt-out experimental option. That is the usual path for experimental options: more people try them, we get better feedback, and the feature gets closer to being stable.</p>
<p>As expected, that wider testing found some rough edges. Some came from invalid signatures, some from type checks that were too strict, and some from checks that were simply not accurate enough. We are tracking those reports in <a href="https://github.com/nushell/nushell/issues/18528" target="_blank" rel="noopener noreferrer">issue #18528</a>, and this patch release fixes a number of them, mostly thanks to <a href="https://github.com/Bahex" target="_blank" rel="noopener noreferrer">@Bahex</a>. Thank you!</p>
<p>More issues may still turn up. Please report them if you run into anything suspicious. If <code>enforce-runtime-annotations</code> blocks your workflow, you can disable just that option before Nushell starts:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">NU_EXPERIMENTAL_OPTIONS</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">=</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">enforce-runtime-annotations=false</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> nu</span></span></code></pre>
</div><p>Or pass it as a command-line flag:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">nu</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">experimental-options</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> enforce-runtime-annotations=false</span></span></code></pre>
</div><p>See the <a href="https://docs.rs/nu-experimental/latest/nu_experimental/#for-users" target="_blank" rel="noopener noreferrer"><code>nu-experimental</code> user documentation</a> for more details.</p>
<p>We still encourage everyone to keep as many experimental options enabled as possible. It helps us find bugs earlier and make Nushell better for future releases.</p>
<h1>Changes </h1>
<h2>Bug fixes </h2>
<h3>More helpful errors for failed assignments with <code>enforce-runtime-annotations</code>  </h3>
<p>With <code>enforce-runtime-annotations</code> enabled, assignments with incorrect types raise errors.</p>
<p>Previously this error was <code>nu::shell::cant_convert</code> originally used for unsuccessful type coercions of command arguments. Unfortunately, this error only pointed at the assigned values <em>origin</em> and not at the failed assignment.</p>
<p>This error has been switched to <code>nu::shell::type_mismatch</code> and now points to the failed assignment in addition to the value's origin.</p>
<h5>Example 1</h5>
<table>
<tr>
<td>Code</td>
<td width="1000">
<div class="language-nushell line-numbers-mode" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">mut</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> execution_time</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> -1</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$execution_time</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B"> $env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.CMD_DURATION_MS</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div></div></div></td>
</tr>
<tr>
<td>Before</td>
<td>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::cant_convert</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Can't convert to int.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">Host Environment Variables:1:1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ "ALLUSERSPROFILE"="C:\\ProgramData"</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">▲</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── can't convert string to int</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ "ANDROID_AVD_HOME"="B:\\AndroidAVDs"</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div></td>
</tr>
<tr>
<td>After</td>
<td>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::type_mismatch</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Type mismatch.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #3:1:17</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ $execution_time = $env.CMD_DURATION_MS</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">                ┬</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·                 </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── expected int, got string</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div></td>
</tr>
</table>
<h5>Example 2</h5>
<table>
<tr>
<td>Code</td>
<td width="1000">
<div class="language-nushell line-numbers-mode" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># delibarete type erasure</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># we need to bypass parse-time</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># type checking for this example</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">let</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> stuff:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> any</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">	foo</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "bar"</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">mut</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> x</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$x</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $stuff.foo</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></td>
</tr>
<tr>
<td>Before</td>
<td>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::cant_convert</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Can't convert to int.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #5:1:24</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ let stuff: any = {foo: "bar"}</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">                       ──┬──</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·                          </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── can't convert string to int</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div></td>
</tr>
<tr>
<td>After</td>
<td>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::type_mismatch</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Type mismatch.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #5:1:24</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ let stuff: any = {foo: "bar"}</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">                       ──┬──</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·                          </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── the value is a string</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #7:1:4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ $x = $stuff.foo</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">   ┬</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·    </span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">╰── expected int, got string</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div></td>
</tr>
</table>
<h3>Closure's input type is not inherited from the surrounding scope  </h3>
<p>With last release, pipeline input type and how it affects various expressions are being tracked in a lot more cases.</p>
<p>In fact, at least one too many:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> mk-add-suffix</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">suffix</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">string</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">]: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">nothing</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> -> </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">closure</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">	{|| </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$in</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> ++</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $suffix</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::parser::operator_unsupported_type</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> The '++' operator does not work on values of type 'nothing'.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #8:2:5</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ def mk-add-suffix [suffix: string]: nothing -> closure {</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ {|| $in ++ $suffix }}</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">    ─┬─</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold"> ─┬</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·      </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">│</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">   ╰── does not support 'nothing'</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·      </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── nothing</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span></code></pre>
</div><p>This is now fixed, and closures' input type will be inferred as <code>any</code>, the way it was before <code>0.114.0</code>.</p>
<h3>Add list input type to more date commands  </h3>
<p>Allow more <code>date</code> commands to have a list as <code>input -&gt; output</code>. These are the commands that were updated:</p>
<ul>
<li><code>date humanize</code></li>
<li><code>date from-human</code></li>
<li><code>date to-timezone</code></li>
<li><code>format date</code></li>
<li><code>into datetime</code></li>
</ul>
<h3>Other fixes </h3>
<ul>
<li>Fixed <code>input listen</code>'s output type signature to match actual returned value. With the incorrect signature (and <code>enforce-runtime-annotations</code> on) <code>let x = input listen</code> would raise an error due to <code>$x</code>'s inferred type (based on <code>input listen</code>'s signature) not matching the value assigned to it. </li>
<li>Type checking treats <code>table</code> and <code>list&lt;record&gt;</code> as compatible (provided the columns aren't disjoint), but that did not extend to <code>list&lt;oneof&lt;record, ...&gt;&gt;</code>. This has been fixed. </li>
<li>Runtime type checking of <em>non-stream</em> pipeline data is now more accurate. </li>
<li>Fixed <code>uname</code>'s output type signature to match its actual output. Previously it was <code>table</code>, now it's <code>record&lt;...&gt;</code> and also includes its columns. </li>
<li>Fixed an issue where <code>run script.nu --some-flag</code> could bind the value to the wrong flag of the script's <code>main</code> when <code>main</code> declared multiple flags, causing shifted positional arguments or a value being accepted into a flag of the wrong type. Flags passed to <code>run</code> are now matched to <code>main</code> parameters by name. (<a href="https://github.com/nushell/nushell/pull/18533" target="_blank" rel="noopener noreferrer">#18533</a>)</li>
<li>Fixed an incorrect <code>idx search --help</code> example. (<a href="https://github.com/nushell/nushell/pull/18550" target="_blank" rel="noopener noreferrer">#18550</a>)</li>
<li>Type checking of lists are relaxed. (<a href="https://github.com/nushell/nushell/pull/18555" target="_blank" rel="noopener noreferrer">#18555</a>)</li>
<li>Fixed an issue in <code>for</code> loops where type of the looping variable was inferred incorrectly when iterating over a value/stream with a union type (<code>oneof&lt;list, table, binary&gt;</code>). This could manifest as a runtime type checking error with <code>enforce-runtime-annotations</code> enabled. (<a href="https://github.com/nushell/nushell/pull/18551" target="_blank" rel="noopener noreferrer">#18551</a>)</li>
</ul>
<h1>Hall of fame </h1>
<p>Thanks to all the contributors below for helping us solve issues, improve documentation, refactor code, and more! 🙏</p>
<p>| author                                         | change                                                                  | link                                                    |
|</p>
]]></content:encoded>
    </item>
    <item>
      <title>Nushell 0.114.0</title>
      <link>https://www.nushell.sh/blog/2026-07-04-nushell_v0_114_0.html</link>
      <guid>https://www.nushell.sh/blog/2026-07-04-nushell_v0_114_0.html</guid>
      <source url="https://www.nushell.sh/rss.xml">Nushell 0.114.0</source>
      <description>Nushell 0.114.0
Today, we&amp;apos;re releasing version 0.114.0 of Nu. This release brings sharper type checking, POSIX-style -- option parsing, the new run command for pipeline-friendly...</description>
      <content:encoded><![CDATA[
<p>Today, we're releasing version 0.114.0 of Nu. This release brings sharper type checking, POSIX-style <code>--</code> option parsing, the new <code>run</code> command for pipeline-friendly scripts, and nice built-in support for working with Semantic Versioning.</p>
<h1>Where to get it</h1>
<p>Nu 0.114.0 is available as <a href="https://github.com/nushell/nushell/releases/tag/0.114.0" target="_blank" rel="noopener noreferrer">pre-built binaries</a> or from <a href="https://crates.io/crates/nu" target="_blank" rel="noopener noreferrer">crates.io</a>. If you have Rust installed you can install it using <code>cargo install nu</code>.</p>
<p>As part of this release, we also publish a set of optional <a href="https://www.nushell.sh/book/plugins.html" target="_blank" rel="noopener noreferrer">plugins</a> you can install and use with Nushell.</p>

<h1>Highlights and themes of this release </h1>
<h2>The type checker got new glasses </h2>
<p><a href="https://github.com/Bahex" target="_blank" rel="noopener noreferrer">@Bahex</a> continued tightening up Nushell's type system this release. Commands can now infer output types from pipeline input more precisely, <code>$in</code> gets typed from the surrounding pipeline, optional values carry their <code>nothing</code>-ness more honestly, and <code>let</code> bindings in pipelines no longer have to shrug and call everything <code>any</code>.</p>
<p>This means some mistakes move from &quot;surprise, runtime error&quot; to &quot;hey, maybe fix that before running it&quot;. Very rude of the parser, but also very helpful.</p>
<p>There is also one important default change: <code>enforce-runtime-annotations</code> is now opt-out, so runtime assignment annotations get checked by default.</p>
<p>Read the details in the first <a href="#type-system-improvements-1">type system entry</a>, the second <a href="#type-system-improvements">type system entry</a>, and the note about <a href="#promoted-enforce-runtime-annotations-to-opt-out"><code>enforce-runtime-annotations</code></a>.</p>
<h2><code>--</code> means &quot;no really, stop parsing flags&quot; </h2>
<p>Thanks to <a href="https://github.com/fdncred" target="_blank" rel="noopener noreferrer">@fdncred</a>, Nushell commands now understand the classic POSIX <code>--</code> end-of-options delimiter. If you need to pass <code>-weird</code>, <code>--looks-like-a-flag</code>, or similar gremlins as plain positional values, you can now do that without trying to outsmart the parser.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> greet</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic">--</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">upper</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">name</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] { </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">if</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $upper</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> { </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$name</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> str</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> uppercase</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> } </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">else</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> { </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$name</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> } }</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">greet</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> -</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">-</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> -</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">Alice</span></span></code></pre>
</div><p>That <code>-Alice</code> is now just Alice having a dash day, not an accidental flag.</p>
<p>Take a look at the main <a href="#added-posix-style-option-parsing-for-nushell-commands"><code>--</code> option parsing entry</a> and the follow-up <a href="#fixed-a-bug-in-option-parsing"><code>--wrapped</code> fix</a>.</p>
<h2>Scripts can join the pipeline with <code>run</code> </h2>
<p>The new <code>run</code> command from <a href="https://github.com/fdncred" target="_blank" rel="noopener noreferrer">@fdncred</a> lets a Nushell script behave like a pipeline stage. Pipe data in, let the script transform it, and pipe the result onward. Tiny reusable pipeline workers, basically.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"Hello Nushell!"</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> run</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> shout.nu</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> str camel-case</span></span></code></pre>
</div><p>Scripts can be simple bare pipeline transforms or define a <code>main</code> entry point, and they run in isolation so their local bits do not leak back into your session.</p>
<p>See more examples <a href="#added-run-command-for-using-scripts-in-pipelines">here</a>.</p>
<h2>SemVer is a real value now </h2>
<p>Nushell now has semantic version support, also from <a href="https://github.com/fdncred" target="_blank" rel="noopener noreferrer">@fdncred</a>. You can parse SemVer strings, turn them into records, build them back up, sort them correctly, and bump versions without doing string surgery with safety scissors.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'1.2.3-alpha.1'</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> into</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> semver</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> semver</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> bump</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> release</span></span></code></pre>
</div><p>If your scripts deal with releases, package versions, or &quot;is <code>1.10.0</code> bigger than <code>1.2.0</code>?&quot; moments, this should make life nicer.</p>
<p>Read the full SemVer tour <a href="#added-semantic-version-parsing-and-commands">here</a>.</p>
<h1>Changes </h1>
<h2>Breaking changes </h2>
<h3>Submodules are no longer implicitly imported  </h3>
<p>Importing a module no longer implicitly imports its exported sub-modules.</p>
<div class="language-nushell line-numbers-mode" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">export module</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> foo</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">    export def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> bar</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [] {}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">    export module</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> sub</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">        export def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> baz</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [] {}</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">use</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> foo</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">foo</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> bar</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">      # valid</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">foo</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> sub</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> baz</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # invalid, `sub` is not implicitly imported</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>To have your modules keep the old behavior, you will need to export the module's contents explicitly:</p>
<div class="language-nushell line-numbers-mode" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">export module</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> foo</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">    export def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> bar</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [] {}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">    export module</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> sub</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">        export def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> baz</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [] {}</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    }</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">    export use</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> sub</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">use</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> foo</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">foo</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> bar</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">      # valid</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">foo</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> sub</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> baz</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # valid</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><div class="hint-container note">
<p class="hint-container-title">Note</p>
<p><code>use</code>ing a module inside another module does <em>not</em> run the imported module's <code>export-env</code> block.
<br>
(See <a href="https://www.nushell.sh/book/modules/creating_modules.html#export-env-runs-only-when-the-use-call-is-evaluated" target="_blank" rel="noopener noreferrer"><code>export-env</code> runs only when the use call is evaluated</a>)
<br>
Thus, explicit <code>use</code>s as recommended above will not run <code>export-env</code> blocks, which is inline with how the previous implicit imports worked.</p>
</div>
<h3>Type System Improvements  </h3>
<p>This release comes with a handful of improvements to the type system, specifically the parse-time type checking. But beware! Type annotations that previously seemed fine might raise errors, as they might have been passing only because typing information was insufficient to check it at parse time.</p>
<h4>Commands' output types are now inferred based on pipeline input type.</h4>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">let</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> str</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "foo"</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> str</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> uppercase</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">let</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> str_list</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"foo"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"bar"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> ] </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> str</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> uppercase</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">scope variables</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> where</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> name</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> starts-with</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> '$str'</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> select</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> name</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> type</span></span></code></pre>
</div><div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); row-gap: 2rem; justify-items: center;">
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───────────┬──────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> #</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">   name</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    │</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> type</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼───────────┼──────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> 0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> $str</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">      │</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> any</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> $str_list</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> any</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───────────┴──────╯</span></span></code></pre>
</div>
</div></div>
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───────────┬──────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> #</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">   name</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    │</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">     type</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">     │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼───────────┼──────────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> 0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> $str</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">      │</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> string</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> $str_list</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> list&#x3C;string></span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───────────┴──────────────╯</span></span></code></pre>
</div>
</div></div>
</div>
<h4>Optional parameters' type now reflects the fact it might be <code>null</code></h4>
<p>The (parse time) types of optional parameters and flags <em>without a default value</em> are now a union of their type <code>T</code> and <code>nothing</code></p>
<ul>
<li>with no default value the type is <code>oneof&lt;T, nothing&gt;</code></li>
<li>with a default value type is <code>T</code></li>
</ul>
<p>Demonstrating with LSP inlay hints:</p>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before - Optional Parameter">
    <span>Before - Optional Parameter</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4f566680;--shiki-light:#66666680;--shiki-dark:#66666680">    1</span><span style="color:#de73ff;--shiki-light:#D670D6;--shiki-dark:#D670D6">  def</span><span style="color:#4dc4ff;--shiki-light:#3B8EEA;--shiki-dark:#3B8EEA"> foo</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5"> [</span><span style="color:#ff616e;--shiki-light:#F14C4C;--shiki-dark:#F14C4C">opt_param</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5">?:</span><span style="color:#f0a45d;--shiki-light:#F5F543;--shiki-dark:#F5F543"> int</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5">]</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5"> {</span></span>
<span class="line"><span style="color:#4f566680;--shiki-light:#66666680;--shiki-dark:#66666680">    2</span><span style="color:#de73ff;--shiki-light:#D670D6;--shiki-dark:#D670D6">    let</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5"> var</span><span style="color:#e6e6e6;background-color:#4f5666;--shiki-light:#FFFFFF;--shiki-light-bg:#666666;--shiki-dark:#FFFFFF;--shiki-dark-bg:#666666">:</span><span style="color:#e6e6e6;background-color:#4f5666;--shiki-light:#FFFFFF;--shiki-light-bg:#666666;--shiki-dark:#FFFFFF;--shiki-dark-bg:#666666"> int</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5"> =</span><span style="color:#ff616e;--shiki-light:#F14C4C;--shiki-dark:#F14C4C"> $</span><span style="color:#4dc4ff;--shiki-light:#3B8EEA;--shiki-dark:#3B8EEA">opt_param</span></span>
<span class="line"><span style="color:#4f566680;--shiki-light:#66666680;--shiki-dark:#66666680">    3</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5">  }</span></span>
<span class="line"><span style="color:#4f566680;--shiki-light:#66666680;--shiki-dark:#66666680">    ~</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After - Optional Parameter">
    <span>After - Optional Parameter</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4f566680;--shiki-light:#66666680;--shiki-dark:#66666680">    1</span><span style="color:#de73ff;--shiki-light:#D670D6;--shiki-dark:#D670D6">  def</span><span style="color:#4dc4ff;--shiki-light:#3B8EEA;--shiki-dark:#3B8EEA"> foo</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5"> [</span><span style="color:#ff616e;--shiki-light:#F14C4C;--shiki-dark:#F14C4C">opt_param</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5">?:</span><span style="color:#f0a45d;--shiki-light:#F5F543;--shiki-dark:#F5F543"> int</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5">]</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5"> {</span></span>
<span class="line"><span style="color:#4f566680;--shiki-light:#66666680;--shiki-dark:#66666680">    2</span><span style="color:#de73ff;--shiki-light:#D670D6;--shiki-dark:#D670D6">    let</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5"> var</span><span style="color:#e6e6e6;background-color:#4f5666;--shiki-light:#FFFFFF;--shiki-light-bg:#666666;--shiki-dark:#FFFFFF;--shiki-dark-bg:#666666">:</span><span style="color:#e6e6e6;background-color:#4f5666;--shiki-light:#FFFFFF;--shiki-light-bg:#666666;--shiki-dark:#FFFFFF;--shiki-dark-bg:#666666"> oneof&#x3C;int,</span><span style="color:#e6e6e6;background-color:#4f5666;--shiki-light:#FFFFFF;--shiki-light-bg:#666666;--shiki-dark:#FFFFFF;--shiki-dark-bg:#666666"> nothing></span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5"> =</span><span style="color:#ff616e;--shiki-light:#F14C4C;--shiki-dark:#F14C4C"> $</span><span style="color:#4dc4ff;--shiki-light:#3B8EEA;--shiki-dark:#3B8EEA">opt_param</span></span>
<span class="line"><span style="color:#4f566680;--shiki-light:#66666680;--shiki-dark:#66666680">    3</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5">  }</span></span>
<span class="line"><span style="color:#4f566680;--shiki-light:#66666680;--shiki-dark:#66666680">    ~</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After - Default Parameter">
    <span>After - Default Parameter</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4f566680;--shiki-light:#66666680;--shiki-dark:#66666680">    1</span><span style="color:#de73ff;--shiki-light:#D670D6;--shiki-dark:#D670D6">  def</span><span style="color:#4dc4ff;--shiki-light:#3B8EEA;--shiki-dark:#3B8EEA"> foo</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5"> [</span><span style="color:#ff616e;--shiki-light:#F14C4C;--shiki-dark:#F14C4C">opt_param</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5">?:</span><span style="color:#f0a45d;--shiki-light:#F5F543;--shiki-dark:#F5F543"> int</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5"> =</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510"> 42</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5">]</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5"> {</span></span>
<span class="line"><span style="color:#4f566680;--shiki-light:#66666680;--shiki-dark:#66666680">    2</span><span style="color:#de73ff;--shiki-light:#D670D6;--shiki-dark:#D670D6">    let</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5"> var</span><span style="color:#e6e6e6;background-color:#4f5666;--shiki-light:#FFFFFF;--shiki-light-bg:#666666;--shiki-dark:#FFFFFF;--shiki-dark-bg:#666666">:</span><span style="color:#e6e6e6;background-color:#4f5666;--shiki-light:#FFFFFF;--shiki-light-bg:#666666;--shiki-dark:#FFFFFF;--shiki-dark-bg:#666666"> int</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5"> =</span><span style="color:#ff616e;--shiki-light:#F14C4C;--shiki-dark:#F14C4C"> $</span><span style="color:#4dc4ff;--shiki-light:#3B8EEA;--shiki-dark:#3B8EEA">opt_param</span></span>
<span class="line"><span style="color:#4f566680;--shiki-light:#66666680;--shiki-dark:#66666680">    3</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5">  }</span></span>
<span class="line"><span style="color:#4f566680;--shiki-light:#66666680;--shiki-dark:#66666680">    ~</span></span></code></pre>
</div>
</div><h4>More precise type widening</h4>
<p>More type information is preserved. e.g.:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">let</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> list</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [[</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"a"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "b"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "c"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] [</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">1</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 2</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 3</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">]]</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">let</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> elem</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $list.0</span></span></code></pre>
</div><p>Previously, <code>$elem</code>'s type would be <code>list&lt;oneof&lt;int, string&gt;&gt;</code>, now <code>$elem</code>'s type is <code>oneof&lt;list&lt;int&gt;, list&lt;string&gt;&gt;</code>.</p>
<h4>Operator type checking now accounts for <code>oneof</code> types</h4>
<p>Nushell as a language tries to strike a careful balance between correctness and convenience.
One should be able to trust nu's type system will help them write correct and robust scripts, but nu shouldn't get in the way of a nice REPL experience.</p>
<p>Because of that, some operations that might be invalid but aren't definitely so do not raise parse errors and such checks are delegated to runtime.</p>
<p>For example, <code>int</code>'s can only be added with <code>int</code>'s and <code>float</code>'s, yet the following code does not raise a parse-time error.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> foo</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">anything</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">any</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] {</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">    10</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> +</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $anything</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div><p>But previously, despite <code>oneof&lt;int, nothing&gt;</code> being more specific than <code>any</code>, it would be rejected by the type checker for addition to <code>int</code>s.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> foo</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">maybe_int</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">oneof</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">&#x3C;</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">int</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">nothing</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">>] {</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">    10</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> +</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $maybe_int</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::parser::operator_unsupported_type</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> The '+' operator does not work on values of type 'oneof&#x3C;int, nothing>'.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #2:2:8</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ def foo [maybe_int: oneof&#x3C;int, nothing>] {</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │     10 + $maybe_int</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">       ┬</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold"> ─────┬────</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·        </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">│</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">      ╰── oneof&#x3C;int, nothing></span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·        </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── does not support 'oneof&#x3C;int, nothing>'</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ }</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span></code></pre>
</div><p>Now, as long as the two operands have a possibility of being valid for an operation the parse-time type checker will accept the expression, leaving errors to runtime type checking.</p>
<h3>Promoted <code>enforce-runtime-annotations</code> to opt-out  </h3>
<p>In Nushell 0.108.0, <a href="https://www.nushell.sh/blog/2025-10-15-nushell_v0_108_0.html#enforce-assignment-type-annotations-at-runtime-16079-toc" target="_blank" rel="noopener noreferrer"><code>enforce-runtime-annotations</code></a> experimental option was added. With this release <code>enforce-runtime-annotations</code> is promoted to being opt-out, meaning that by default this experimental option is enabled now.</p>
<p>This option enforces type checking of let assignments at runtime, catching type errors that might have been missed in parse-time type checking due to insufficient type information.</p>
<p>If you experience any trouble with this, you can disable it via the command-line argument:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">nu</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">experimental-options</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> '[enforce-runtime-annotations=false]'</span></span></code></pre>
</div><p>or via the environment variable:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">NU_EXPERIMENTAL_OPTIONS</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">=</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"enforce-runtime-annotations=false"</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> nu</span></span></code></pre>
</div><h3>Reedline vi mode improvements  </h3>
<p>Vi mode now has a proper visual mode: press <code>v</code> to start a selection, then use motions together with <code>d</code>, <code>c</code>, <code>y</code>,
or <code>r</code>, including selections that span multiple lines.
In vi normal mode, the caret now rests on the last grapheme instead of after it,
and <code>h</code> and <code>l</code> can move across line boundaries.
Visual mode also has its own prompt indicator, which defaults to the vi-normal
indicator.</p>
<h3>Changes to spreadsheet commands: <code>from xlsx</code> &amp; <code>from ods</code>  </h3>
<p>This release comes with various improvements to <code>from xlsx</code> and <code>from ods</code> commands, and makes them behave as similarly as the file formats themselves allow.</p>
<h4>More accurate command signatures</h4>
<p>These commands' signatures previously incorrectly indicated that they return tables.
They return <em>records</em> that contain <em>tables</em>, with a table for each sheet in the file.</p>
<p>Also, the signature of the <code>from ods</code> command previously had <code>string</code> as its input type rather than <code>binary</code>. This has been fixed.</p>
<h4>Support for more data types</h4>
<p>Previously, importing <code>datetime</code> values were supported only for <code>xlsx</code> files.</p>
<p>This release not only adds that for <code>ods</code> files as well, but also broadens the <code>datetime</code> formats that can be imported.</p>
<p>Aside from that, values that couldn't be properly coerced to nushell types were simply imported as <code>null</code>. Now those values are imported as <code>string</code> or <code>float</code> depending on the source data.</p>
<h4>Finer control over spreadsheet headers</h4>
<p>Last release changed <code>from xlsx</code> to use the first row of a sheet as the imported table's headers, and added a new flag, <code>--header-row</code>, to control which row should be used as the header or if any row should become the headers at all.</p>
<p>This release removes it.</p>
<p>Don't worry! Instead of the <code>--header-row</code> flag, <code>from xlsx</code> <em>and</em> <code>from ods</code> get two new flags that will provide finer control over how spreadsheets are imported:</p>
<ul>
<li><code>--noheaders</code>: What it says on the tin, identical to the same flag on <code>from csv</code>, <code>from tsv</code> and <code>from ssv</code> commands.</li>
<li><code>--first-row</code>: This is where it gets a little interesting. <code>from xlsx</code> and <code>from ods</code> skip reading all leading empty rows. This is how it has worked for a long time.
<code>--first-row=0</code> allows you to turn that off and keep those empty lines. It can also be used to start reading from an arbitrary row: <code>--first-row $n</code></li>
</ul>
<p>Let's see how this works with an example:</p>
<ul>
<li>The contents of the file, with all the conveniences like skipping empty rows or auto headers off:<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">open</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> example.xlsx</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">raw</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> from xlsx</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">noheaders</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">first-row</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 0</span></span></code></pre>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭────────┬───────────────────────────────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ ╭───┬─────────┬─────────┬─────────┬─────────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Sheet1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">column0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">column1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">column2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">column3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ ├───┼─────────┼─────────┼─────────┼─────────┤ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │         │         │         │         │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │         │         │         │         │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │         │         │         │         │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ a       │ b       │ c       │ d       │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │    0.00 │    1.00 │    2.00 │    3.00 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">5</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   10.00 │   11.00 │   12.00 │   13.00 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">6</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   20.00 │   21.00 │   22.00 │   23.00 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">7</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   30.00 │   31.00 │   32.00 │   33.00 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ ╰───┴─────────┴─────────┴─────────┴─────────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰────────┴───────────────────────────────────────────────╯</span></span></code></pre>
</div></li>
<li>How it is imported by default:<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">open</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> example.xlsx</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># or `open example.xlsx --raw | from xlsx`</span></span></code></pre>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭────────┬───────────────────────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ ╭───┬───────┬───────┬───────┬───────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Sheet1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">a</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">b</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">c</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">d</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ ├───┼───────┼───────┼───────┼───────┤ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  0.00 │  1.00 │  2.00 │  3.00 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 10.00 │ 11.00 │ 12.00 │ 13.00 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 20.00 │ 21.00 │ 22.00 │ 23.00 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 30.00 │ 31.00 │ 32.00 │ 33.00 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ ╰───┴───────┴───────┴───────┴───────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰────────┴───────────────────────────────────────╯</span></span></code></pre>
</div>Most of the time, this is what you want.</li>
<li>Or if your file doesn't have any headers and all the rows are data:<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">open</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> example.xlsx</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">raw</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> from xlsx</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">noheaders</span></span></code></pre>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭────────┬───────────────────────────────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ ╭───┬─────────┬─────────┬─────────┬─────────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Sheet1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">column0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">column1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">column2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">column3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ ├───┼─────────┼─────────┼─────────┼─────────┤ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ a       │ b       │ c       │ d       │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │    0.00 │    1.00 │    2.00 │    3.00 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   10.00 │   11.00 │   12.00 │   13.00 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   20.00 │   21.00 │   22.00 │   23.00 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   30.00 │   31.00 │   32.00 │   33.00 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ ╰───┴─────────┴─────────┴─────────┴─────────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰────────┴───────────────────────────────────────────────╯</span></span></code></pre>
</div></li>
</ul>
<h3>Type System Improvements  </h3>
<h4>Typed <code>$in</code></h4>
<p><code>$in</code> variable is now typed based on the pipeline input type of the surrounding expression.</p>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before. Error is caught at runtime.">
    <span>Before. Error is caught at runtime.</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::operator_incompatible_types</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Types 'int' and 'string' are not compatible for the '+' operator.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">source:1:5</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 | $in + "foo"</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">    ─┬─</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold"> ┬</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> ──┬──</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·      </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">│</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">  │</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">   ╰── </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">string</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·      </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">│</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">  ╰── </span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">does not operate between 'int' and 'string'</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·      </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">int</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After. Error is caught at parse time.">
    <span>After. Error is caught at parse time.</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::parser::operator_incompatible_types</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Types 'int' and 'string' are not compatible for the '+' operator.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">source:1:5</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 | $in + "foo"</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">    ─┬─</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold"> ┬</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> ──┬──</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·      </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">│</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">  │</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">   ╰── </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">string</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·      </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">│</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">  ╰── </span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">does not operate between 'int' and 'string'</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·      </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">int</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span></code></pre>
</div>
</div><h4>Better type inference of <code>let</code> bindings</h4>
<p><code>let</code> bindings in the middle of a pipeline, or at the end of it, are now properly typed based on the pipeline input type.</p>
<p>You can observe this using <code>scope variables</code>:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">42</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> let</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> x</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">scope variables</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> where</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> name</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> ==</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> '$x'</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> select</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> name</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> type</span></span></code></pre>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬──────┬──────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> #</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> name</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> type</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼──────┼──────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> 0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> $x</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> int</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴──────┴──────╯</span></span></code></pre>
</div><p>or with LSP type hints:</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510">42</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> |</span><span style="color:#de73ff;--shiki-onedarkpro-font-style:italic;--shiki-light:#D670D6;--shiki-light-font-style:italic;--shiki-dark:#D670D6;--shiki-dark-font-style:italic"> let</span><span style="color:#d7dae0;--shiki-onedarkpro-font-style:italic;--shiki-light:#E5E5E5;--shiki-light-font-style:italic;--shiki-dark:#E5E5E5;--shiki-dark-font-style:italic"> var</span><span style="color:#e6e6e6;background-color:#4f5666;--shiki-onedarkpro-font-style:italic;--shiki-light:#FFFFFF;--shiki-light-bg:#666666;--shiki-light-font-style:italic;--shiki-dark:#FFFFFF;--shiki-dark-bg:#666666;--shiki-dark-font-style:italic">:</span><span style="color:#e6e6e6;background-color:#4f5666;--shiki-onedarkpro-font-style:italic;--shiki-light:#FFFFFF;--shiki-light-bg:#666666;--shiki-light-font-style:italic;--shiki-dark:#FFFFFF;--shiki-dark-bg:#666666;--shiki-dark-font-style:italic"> int</span></span></code></pre>
</div><p>This type information is of course passed through to the rest of the pipeline:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> accepts-int</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> []: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">int</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> -> </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">int</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"foo"</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> let</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> x</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> accepts-int</span></span></code></pre>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::only_supports_this_input_type</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Input type not supported.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">source:3:9</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ "foo" | let x | accepts-int</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">        ─┬─</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">     ─────┬─────</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·          </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">│</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">           ╰── </span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">only int input data is supported</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·          </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">input type: string</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span></code></pre>
</div><h4>Command <code>def</code>initions</h4>
<p>Type checking and inference inside <code>def</code> blocks are now affected by the commands input/output signatures.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> accepts-int</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> []: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">int</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> -> </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">int</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> foo</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> []: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">string</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> -> </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">any</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">    accepts-int</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::parser::input_type_mismatch</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Command does not support string input.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">source:4:2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ def foo []: string -> any {</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │     accepts-int</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">    ─────┬─────</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·          </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">command doesn't support string input</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 5</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ }</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span></code></pre>
</div><h4><code>if-else</code>, <code>match</code></h4>
<p>Conditionals (<code>if</code>, <code>match</code>) are now properly typed:</p>
<ul>
<li>
<p>output of the expression is a union of all possible output types (based on the branches)</p>
<div class="language-nushell line-numbers-mode" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">if</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $x</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> ==</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $y</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">    42</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">} </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">else</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">    "foo"</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> let</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> out</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # oneof&#x3C;int, string></span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">match</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $x</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">    1</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> =></span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">    2</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> =></span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "foo"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">    _</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> =></span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> { {</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">a</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">} }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> let</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> out</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # oneof&#x3C;int, string, record&#x3C;a: int>></span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li>
<li>
<p>without a fallback (a final <code>else</code> branch for <code>if</code> chains, a wildcard pattern for <code>match</code> expressions) the output types of conditional expressions include <code>nothing</code></p>
<div class="language-nushell line-numbers-mode" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">if</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $x</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> ==</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $y</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">    42</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> let</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> out</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # oneof&#x3C;int, nothing></span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">match</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $x</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">    1</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> =></span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">    2</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> =></span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "foo"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> let</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> out</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # oneof&#x3C;int, string, nothing></span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li>
<li>
<p>branch blocks get pipeline input type information</p>
<div class="language-nushell line-numbers-mode" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">[</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">1</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">2</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">3</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">]</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> if</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66"> true</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">    let</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> input</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # list&#x3C;int></span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">    $input</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> into string</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">} </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">else</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">    # pass through</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> let</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> out</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # oneof&#x3C;list&#x3C;string>, list&#x3C;int>></span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li>
</ul>
<h3>Errors with more <code>details</code> and file relative spans  </h3>
<p>The error record you receive in <code>try {..} catch {..}</code> blocks no longer has a <code>json</code> field. A new field named <code>details</code> takes its place instead. It holds the same information as the <code>json</code> field but requires no deserialization stop like <code>from json</code>.</p>
<p>There is one small but significant difference: the error labels now have additional <code>location</code> field in addition to <code>span</code>.
<code>location</code> contains the name of the file the label points to, with <code>start</code> and <code>end</code> offsets that are relative to the file itself.</p>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="example.nu">
    <span>example.nu</span>
  </div>
  <div class="language-nushell line-numbers-mode" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">use</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> std/</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">assert</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">export def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> wrong</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [] {</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">  assert</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> equal</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">2</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> +</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 2</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">5</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">use</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> example.nu</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">wrong</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::error</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> These are not equal.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">/tmp/example.nu:4:16</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ export def wrong [] {</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   assert equal (2 + 2) 5</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">               ───┬───</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold"> ┬</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·                   </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">│</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">    ╰── right: 5</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·                   </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── left: 4</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 5</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ }</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">try</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> { </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">wrong</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> }</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> catch</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">get</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> details</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭─────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">msg</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">             │ These are not equal.                                                                               │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                 │ ╭───┬──────────┬────────────────────┬────────────────────────────────────────────────────╮         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">labels</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">          │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">text</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │        </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">span</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">        │                      </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">location</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">                      │         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                 │ ├───┼──────────┼────────────────────┼────────────────────────────────────────────────────┤         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                 │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ left: 4  │ ╭───────┬────────╮ │ ╭───────┬────────────────────────────────────────╮ │         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                 │ │   │          │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">start</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 170639 │ │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">file</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ D:\Projects\nushell\scratch\example.nu │ │         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                 │ │   │          │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">end</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ 170646 │ │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">start</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 56                                     │ │         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                 │ │   │          │ ╰───────┴────────╯ │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">end</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ 63                                     │ │         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                 │ │   │          │                    │ ╰───────┴────────────────────────────────────────╯ │         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                 │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ right: 5 │ ╭───────┬────────╮ │ ╭───────┬────────────────────────────────────────╮ │         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                 │ │   │          │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">start</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 170647 │ │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">file</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ D:\Projects\nushell\scratch\example.nu │ │         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                 │ │   │          │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">end</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ 170648 │ │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">start</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 64                                     │ │         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                 │ │   │          │ ╰───────┴────────╯ │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">end</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ 65                                     │ │         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                 │ │   │          │                    │ ╰───────┴────────────────────────────────────────╯ │         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                 │ ╰───┴──────────┴────────────────────┴────────────────────────────────────────────────────╯         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">code</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">            │                                                                                                    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">url</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">             │                                                                                                    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">help</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">            │                                                                                                    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">inner</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">           │ [list 0 items]                                                                                     │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰─────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></span></code></pre>
</div><p>With these file-relative spans, making external tools for reporting nushell errors should be much easier.</p>
<h3>Removed deprecated <code>grid</code> record input support  </h3>
<p>In the last release, the <code>grid</code> command was modified to accept a column name argument rather than implicitly displaying the <code>name</code> column. The implicit assumption of <code>name</code> was deprecated, along with accepting a single record rather than a table.
These deprecated behaviors of the <code>grid</code> command are removed with this release.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># This will no longer work</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">{ </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">name</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> test</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> } </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> grid</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># …and should be updated to receive tables and include the column name as an argument</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">[{ </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">name</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> test</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }] </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> grid</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> name</span></span></code></pre>
</div><h3>Standard library improvements  </h3>
<ul>
<li>
<p>Following general type system improvements, standard library commands now also have more accurate type annotations.</p>
</li>
<li>
<p><code>std/iter find-index</code> returns <code>null</code> instead of <code>-1</code> when failing to find a suitable element</p>
</li>
</ul>
<h4><code>std/iter scan</code> now has the same signature as <code>reduce</code></h4>
<div class="hint-container warning">
<p class="hint-container-title">Warning</p>
<p>This is a breaking change.</p>
</div>
<p>Previously <code>iter scan</code> always needed an initial value to start off of (equivalent to <code>reduce</code>'s <code>--fold</code>), and to compensate for it a <code>--noinit</code> flag to remove that initial value from the output.</p>
<p>Now its signature is identical to <code>reduce</code>:</p>
<div style="max-width: 100%; overflow: auto;">
<div style="display: grid; grid-template-columns: auto 1fr 1fr; column-gap: 1rem; justify-items: stretch; align-items: center">
<div>Before</div>
<div>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">[</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">1</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 2</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 3</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> iter</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> scan</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 0</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {|</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">x</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">y</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">| </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$x</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> +</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $y</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div></div>
<div>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">[</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">1</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 2</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 3</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> iter</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> scan</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 0</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">noinit</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {|</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">x</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">y</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">| </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$x</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> +</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $y</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div></div>
<div>After</div>
<div>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">[</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">1</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 2</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 3</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> iter</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> scan</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">fold</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 0</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {|</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">x</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">y</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">| </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$x</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> +</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $y</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div></div>
<div>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">[</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">1</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 2</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 3</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> iter</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> scan</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {|</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">x</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">y</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">| </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$x</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> +</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $y</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div></div>
<div>
Output
</div>
<div>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">[</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">0</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">1</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">3</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">6</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">]</span></span></code></pre>
</div></div>
<div>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">[</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">1</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">3</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">6</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">]</span></span></code></pre>
</div></div>
</div>
</div>
<h4>More streaming</h4>
<p>The following commands now stream:</p>
<ul>
<li><code>std/iter</code>:
<ul>
<li><code>intersperse</code></li>
<li><code>flat-map</code></li>
</ul>
</li>
<li><code>std-rfc/conversion</code>
<ul>
<li><code>into list</code></li>
</ul>
</li>
<li><code>std-rfc/tables</code>
<ul>
<li><code>select column-slices</code></li>
<li><code>reject column-slices</code></li>
</ul>
</li>
</ul>
<p>These commands don't really &quot;stream&quot;, in that they don't return a stream. Instead, they now avoid eagerly collecting input streams:</p>
<ul>
<li><code>std-rfc/conversions</code>
<ul>
<li><code>name-values</code>: strictly an internal change with possible performance benefits</li>
</ul>
</li>
<li><code>std-rfc/iter</code>
<ul>
<li><code>only</code>: will at most consume 2 items from the input</li>
</ul>
</li>
</ul>
<h3>Other breaking changes </h3>
<ul>
<li>We changed how &quot;hits&quot; are displayed by making them relative to the cwd in the hopes that it makes them more usable. It works this way for <code>idx find</code> and <code>idx search</code>. (<a href="https://github.com/nushell/nushell/pull/18477" target="_blank" rel="noopener noreferrer">#18477</a>)</li>
</ul>
<h2>Additions </h2>
<h3>KDL format support  </h3>
<p>This release adds support for KDL <code>v2.0.0</code> with <code>to kdl</code> and <code>from kdl</code> commands.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">hello 1 2 3</span></span>
<span class="line"></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">// Comment</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">world prop=string-value {</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">	child 1</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">	child 2</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">	child #inf</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">}</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> from kdl</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───────┬────────────────┬─────────────────────────┬──────────────────────────────────────────────────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">name</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │      </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">args</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">      │          </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">props</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">          │                             </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">children</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">                             │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼───────┼────────────────┼─────────────────────────┼──────────────────────────────────────────────────────────────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ hello │ ╭───┬───╮      │ {record 0 fields}       │ [list 0 items]                                                   │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │      │                         │                                                                  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │      │                         │                                                                  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 3 │      │                         │                                                                  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │ ╰───┴───╯      │                         │                                                                  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ world │ [list 0 items] │ ╭──────┬──────────────╮ │ ╭───┬───────┬─────────────┬───────────────────┬────────────────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │                │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">prop</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ string-value │ │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">name</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │    </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">args</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">     │       </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">props</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">       │    </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">children</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │                │ ╰──────┴──────────────╯ │ ├───┼───────┼─────────────┼───────────────────┼────────────────┤ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │                │                         │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ child │ ╭───┬───╮   │ {record 0 fields} │ [list 0 items] │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │                │                         │ │   │       │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │   │                   │                │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │                │                         │ │   │       │ ╰───┴───╯   │                   │                │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │                │                         │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ child │ ╭───┬───╮   │ {record 0 fields} │ [list 0 items] │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │                │                         │ │   │       │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │   │                   │                │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │                │                         │ │   │       │ ╰───┴───╯   │                   │                │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │                │                         │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ child │ ╭───┬─────╮ │ {record 0 fields} │ [list 0 items] │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │                │                         │ │   │       │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ inf │ │                   │                │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │                │                         │ │   │       │ ╰───┴─────╯ │                   │                │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │                │                         │ ╰───┴───────┴─────────────┴───────────────────┴────────────────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───────┴────────────────┴─────────────────────────┴──────────────────────────────────────────────────────────────────╯</span></span></code></pre>
</div><h3>Introducing <code>polars map-batches</code>  </h3>
<p>Provides a new polars command <code>polars map-batches</code> that provides the ability to map a custom Nushell closure over one or more dataframe columns.</p>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Return a constant series from a closure">
    <span>Return a constant series from a closure</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">[[</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> b</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]; [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 4</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">] [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 5</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">] [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 6</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]]</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> polars into-df</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> polars map-batches</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --name</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> out</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">10</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 20</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 30</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> a</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬─────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">out</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼─────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  10 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  20 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  30 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴─────╯</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Double the values of a column via a Nushell closure">
    <span>Double the values of a column via a Nushell closure</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">[[</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> b</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]; [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 4</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">] [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 5</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">] [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 6</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]]</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> polars into-df</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> polars map-batches</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> {|cols| </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$cols</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> first</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> polars get</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> a</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> each</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> { </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$in</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510"> *</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> }</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">}</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> a</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">a</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼───┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 4 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 6 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───╯</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Sum two columns element-wise and rename result">
    <span>Sum two columns element-wise and rename result</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">[[</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> b</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]; [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 4</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">] [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 5</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">] [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 6</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]]</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> polars into-df</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> polars map-batches</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --name</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> a_plus_b</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { |cols|</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">    let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> a</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$cols</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> get</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 0</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> polars get</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> a</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">    let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> b</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$cols</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> get</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 1</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> polars get</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> b</span></span>
<span class="line"><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">    $a</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> zip</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> $b</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> each</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { |pair| </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$pair</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510"> +</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> $pair</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span></span>
<span class="line"><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">}</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> a</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> b</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬──────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">a_plus_b</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼──────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │        5 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │        7 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │        9 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴──────────╯</span></span></code></pre>
</div>
</div><h3>Add <code>commandline complete</code> to invoke nushell completions  </h3>
<p>Add <code>commandline complete</code> command. This can be used to obtain the suggestions that nushell itself would normally suggest. Some examples:</p>
<ul>
<li><code>commandline complete</code> — return completions based on the current commandline contents (i.e. what would be suggested when pressing <code>Tab</code>)</li>
<li><code>'./a' | commandline complete --type directory</code> — return directory paths relative to the current directory that start with <code>a</code></li>
<li><code>'%ls -' | commandline complete --detailed</code> — return all flags the builtin <code>ls</code> command accepts, including their descriptions.</li>
</ul>
<p>These completions can be used in custom command completions, for example to wrap a builtin command with additional options, or to obtain a list of suggested paths for further filtering or processing.</p>
<h3>Add <code>--pretty</code> flag and align table columns in <code>to nuon</code>  </h3>
<p><code>to nuon</code> now aligns table columns when using <code>--indent</code>, <code>--tabs</code>, or the new <code>--pretty</code> (<code>-p</code>) flag, making output easier to read. <code>--pretty</code> is shorthand for <code>--indent 2</code>.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">[[</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">name</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">age</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]; [</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">Alice</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">, </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">30</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">], [</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">Bob</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">, </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">25</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to nuon</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --pretty</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">[</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  [name,  age];</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  [Alice, 30],</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  [Bob,   25]</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span></code></pre>
</div><h3>Added <code>run</code> command for using scripts in pipelines  </h3>
<p>There's a new command named <code>run</code> that allows scripts to participate in a nushell pipeline with input and output.</p>
<p>It keeps execution isolated so script artifacts do not leak into the parent scope. Script resolution remains aligned with existing behavior (cwd / <code>NU_LIB_DIRS</code> / explicit paths); <code>PATH</code>-based lookup is not included at this time.</p>
<h4>Script Forms Supported</h4>
<h5>Bare scripts (scripts without def main)</h5>
<p>The script body is evaluated directly as a pipeline transform (using implicit or explicit <code>$in</code> as usual).</p>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="run-script1.nu">
    <span>run-script1.nu</span>
  </div>
  <div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">str</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> uppercase</span></span></code></pre>
</div>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"Hello Nushell!"</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> run</span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD"> run-script1.nu</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">HELLO NUSHELL!</span></span></code></pre>
</div><h5>Scripts with <code>def main</code> entry point</h5>
<p>If a top-level <code>def main</code> is defined, run invokes that entrypoint.</p>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="run-script2.nu">
    <span>run-script2.nu</span>
  </div>
  <div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> main</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [] {</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">  str length</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"Hello Nushell!"</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> run</span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD"> run-script2.nu</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">14</span></span></code></pre>
</div><h5>Scripts with full pipelines</h5>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"Hello Nushell!"</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> run</span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD"> run-script1.nu</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> str camel-case</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">helloNushell</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"Hello Nushell!"</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> run</span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD"> run-script2.nu</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> $in</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510"> +</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 5</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">19</span></span></code></pre>
</div><h3>Added POSIX-style <code>--</code> option parsing for Nushell commands  </h3>
<p>Nushell now supports the POSIX <code>--</code> end-of-options delimiter for built-in commands, custom commands, and <code>def --wrapped</code> commands.</p>
<p>When <code>--</code> appears in a command invocation, it stops all flag parsing. Any arguments after <code>--</code> are treated as positional operands, even if they start with <code>-</code> or <code>--</code>. The <code>--</code> token itself is consumed and does not appear in the command's arguments.</p>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Pass dash-prefixed values as positional args, not flags">
    <span>Pass dash-prefixed values as positional args, not flags</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> def</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> greet</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> [--upper, name]</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> {</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">    if</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> $upper</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> { </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$name</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> str uppercase</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> }</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> else</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> { </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$name</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> }</span></span>
<span class="line"><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">}</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">greet</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> -- </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">-Alice</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  # -Alice is now a positional, not an unknown flag</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">-Alice</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Useful for passing flag-like values to rest parameters">
    <span>Useful for passing flag-like values to rest parameters</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">def</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> process</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> [...args]</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$args</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">process</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> -- </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">--verbose</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> -x</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> foo</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  # -- consumed; args = ["--verbose", "-x", "foo"]</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ --verbose │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ -x        │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ foo       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───────────╯</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Works with def --wrapped too">
    <span>Works with def --wrapped too</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">def</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --wrapped</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> my-git</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> [...args]</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">print</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510"> ...</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$args</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">my-git</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> commit</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> --</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> -m</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> "my message"</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  # -- NOT consumed; -m passed as operand</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">commit</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">--</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">-m</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">my message</span></span></code></pre>
</div>
</div><p>For <code>extern</code>-declared known external commands, <code>--</code> continues to be passed through to the external binary unchanged (as those programs manage their own argument parsing).</p>
<h3>Added stream and error controls to <code>ignore</code>  </h3>
<p>Update the <code>ignore</code> command with flags to control whether stderr, stdout, or both get consumed and if errors are show which update <code>$env.LAST_EXIT_CODE</code>. This should work on internal and external commands.</p>
<p>Existing behavior is the default when no new flags are provided to avoid breaking changes.</p>
<ul>
<li>Added <code>--stderr</code> (<code>-e</code>) to consume stderr while allowing stdout to pass through.</li>
<li>Added <code>--stdout</code> (<code>-o</code>) to consume stdout while allowing stderr output through.</li>
<li>Added <code>--show-errors</code> (<code>-x</code>) to show external/internal errors and set <code>$env.LAST_EXIT_CODE</code> (external exit code for external failures, <code>1</code> for internal failures).</li>
</ul>
<h3>Added <code>--context</code> support to <code>idx search</code>  </h3>
<p>Add context to your <code>idx search</code> queries by using <code>--context/-c</code> and a nushell range. The range has to be in the form of <code>negative_number..positive_number</code> where <code>negative_number</code> is the before lines to show and the <code>positive_number</code> is the after lines to show in the <code>with_context</code> record key.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">idx search</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> foo</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --context</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> -3</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510">..</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">5</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> first</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───────────────┬─────────────────────────────────────────────────────────────────────────────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">relative_path</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ crates\nu-utils\src\default_files\doc_config.nu                                             │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">line_number</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ 249                                                                                         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">column</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">        │ 51                                                                                          │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">byte_offset</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ 10991                                                                                       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">line</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">          │ # Example: If a directory contains only "forage", "food", and "forest",                     │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ ╭───┬───────┬───────╮                                                                       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">matches</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">       │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">start</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">end</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │                                                                       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ ├───┼───────┼───────┤                                                                       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 11042 │ 11045 │                                                                       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ ╰───┴───────┴───────╯                                                                       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ ╭───┬─────────────────────────────────────────────────────────────────────────────────────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">with_context</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ # Default: true                                                                     │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ $env.config.completions.partial = true                                              │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │                                                                                     │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ # Example: If a directory contains only "forage", "food", and "forest",             │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ # typing "ls " and pressing Tab will partially complete the first matching letters. │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">5</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ # If the directory also includes "faster", only "f" would be partially completed.   │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">6</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │                                                                                     │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">7</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ # completions.use_ls_colors (bool): Apply LS_COLORS to file/path completions.       │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">8</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ # true: Use LS_COLORS for styling file completions.                                 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ ╰───┴─────────────────────────────────────────────────────────────────────────────────────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───────────────┴─────────────────────────────────────────────────────────────────────────────────────────────╯</span></span></code></pre>
</div><h3>Allowed <code>idx search --context</code> to accept counts or ranges  </h3>
<p>This change allows <code>idx search --context</code> to be supplied as either an <code>int</code> or as a <code>range</code>.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">idx search</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> foo</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --context</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> first</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───────────────┬─────────────────────────────────────────────────────────────────────────────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">relative_path</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ crates\nu-utils\src\default_files\doc_config.nu                                             │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">line_number</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ 249                                                                                         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">column</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">        │ 51                                                                                          │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">byte_offset</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ 10991                                                                                       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">line</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">          │ # Example: If a directory contains only "forage", "food", and "forest",                     │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ ╭───┬───────┬───────╮                                                                       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">matches</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">       │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">start</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">end</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │                                                                       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ ├───┼───────┼───────┤                                                                       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 11042 │ 11045 │                                                                       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ ╰───┴───────┴───────╯                                                                       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ ╭───┬─────────────────────────────────────────────────────────────────────────────────────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">with_context</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ $env.config.completions.partial = true                                              │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │                                                                                     │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ # Example: If a directory contains only "forage", "food", and "forest",             │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ # typing "ls " and pressing Tab will partially complete the first matching letters. │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ # If the directory also includes "faster", only "f" would be partially completed.   │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ ╰───┴─────────────────────────────────────────────────────────────────────────────────────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───────────────┴─────────────────────────────────────────────────────────────────────────────────────────────╯</span></span></code></pre>
</div><h3>Introducing Polars bitwise commands  </h3>
<p>Introducing polars bitwise commands:</p>
<ul>
<li><code>polars math bitwise-and</code> - Perform an aggregation of bitwise ANDs over a column expression.</li>
<li><code>polars math bitwise-count-ones</code> - Compute the number of set bits for each element in an integer column expression.</li>
<li><code>polars math bitwise-count-zeros</code> - Compute the number of unset bits for each element in an integer column expression.</li>
<li><code>polars math bitwise-leading-ones</code> - Compute the number of leading set bits for each element in an integer column expression.</li>
<li><code>polars math bitwise-leading-zeros</code> - Compute the number of leading unset bits for each element in an integer column expression.</li>
<li><code>polars math bitwise-or</code> - Perform an aggregation of bitwise ORs over a column expression.</li>
<li><code>polars math bitwise-trailing-ones</code> - Compute the number of trailing set bits for each element in an integer column expression.</li>
<li><code>polars math bitwise-trailing-zeros</code> - Compute the number of trailing unset bits for each element in an integer column expression.</li>
<li><code>polars math bitwise-xor</code> - Perform an aggregation of bitwise XORs over a column expression.</li>
</ul>
<h3>Add non-UTF-8 text support for <code>url encode</code>/<code>url decode</code>  </h3>
<ul>
<li>
<p><code>url encode</code> can now encode binary input too, adding support for encoding non-UTF-8 texts</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'£ rates'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> encode</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> iso-8859-1</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> url encode</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">%A3%20rates</span></span></code></pre>
</div></li>
<li>
<p><code>url decode</code> can now decode inputs that do not evaluate to UTF-8 texts by returning a binary value (only with the <code>--binary</code> switch)</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'%A3%20rates'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> url decode</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --binary</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> decode</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> iso-8859-1</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">£ rates</span></span></code></pre>
</div></li>
</ul>
<h3>Support reedline menu input/output modes and list description position  </h3>
<p>Reedline menus can now be configured with <code>input_mode</code> (<code>diff</code>, <code>cursor_prefix</code>, <code>full_buffer</code>) and <code>output_mode</code> (<code>suggested_span</code>, <code>full_buffer</code>, <code>extend_to_end</code>) to control what text the menu reads from the buffer and how an accepted suggestion is written back.
List menus additionally accept <code>description_position</code> (<code>before</code> / <code>after</code>). The existing <code>only_buffer_difference</code> flag still works and is treated as a shorthand (<code>true = diff</code>, <code>false = cursor_prefix</code>).</p>
<h3>Added <code>random pass</code> for generating passwords  </h3>
<p>New command <code>random pass</code> generates random passwords.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510">..</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">10</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> each</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> {</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">random pass</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">}</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭────┬──────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ WR9+*T4em#&#x26;2 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ >~z$0I-E&#x3C;3&#x26;x │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ "%uF9qafB%+{ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ VMI5h+T4,XcX │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ B,diE+Z`#O6g │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">5</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 9fKehf4|F,xr │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">6</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 6d?nH1|HV^ck │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">7</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ iH>5l?`P7q2x │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">8</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ w>w2I(v67=9E │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">9</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ QYqc}g8ux#!U │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">10</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ #Jla4UAoJ+&#x3C;G │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰────┴──────────────╯</span></span></code></pre>
</div><p><code>random pass</code> supports these flags.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">Flags</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">:</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  -h</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">, </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">--help</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">: Display the help message for this command</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  -c</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">, </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">--chars</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> &#x3C;</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">int</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">>: Length of the generated password (default 12).</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  -u</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">, </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">--no-uppercase</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">: Exclude uppercase letters A-Z.</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  -l</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">, </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">--no-lowercase</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">: Exclude lowercase letters a-z.</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  -n</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">, </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">--no-numbers</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">: Exclude numbers 0-9.</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  -s</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">, </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">--no-symbols</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">: Exclude symbols like !@#$%.</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  --include-ambiguous</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">: Include ambiguous characters O, 0, l, 1.</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  --include-similar</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">: Include similar characters i, l, 1.</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  --require-each-type</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">: Guarantee at least one char from each enabled character type.</span></span></code></pre>
</div><h3>Allow <code>is-terminal</code> to detect redirection  </h3>
<p>The <code>is-terminal</code> command can detect redirection now. It now defaults to <code>--stdout</code>.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">is-terminal</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">true</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">is-terminal</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> $in</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">false</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">is-terminal</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> o></span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> file</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">open</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> file</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">false</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> x</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">(</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">is-terminal</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">)</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$x</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">false</span></span></code></pre>
</div><h3>Added <code>--right</code> to <code>split row</code> and <code>split column</code>  </h3>
<p>Both <code>split row</code> and <code>split column</code> now support <code>--right</code>, which modifies where splits are skipped, e.g.:</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'some-package-1.0'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> split row</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> '-'</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --number</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬─────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ some        │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ package-1.0 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴─────────────╯</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'some-package-1.0'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> split row</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> '-'</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --number</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --right</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬──────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ some-package │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1.0          │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴──────────────╯</span></span></code></pre>
</div><h3>Added some commands for set operations and combinations  </h3>
<p>Added <code>union</code>, <code>intersect</code>, <code>difference</code>, <code>combinations</code>, and <code>permutations</code> as built-in filter commands. These provide immutable, functional list operations.</p>
<p><code>union</code>: Returns a deduplicated list of unique elements present in either the input list or the given list.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 4</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> union</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 4</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 5</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 6</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 3 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 4 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 5 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">5</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 6 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───╯</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[{</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">:</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">} {</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">:</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> union</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> [{</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">:</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">} {</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">:</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}]</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">a</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼───┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 3 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───╯</span></span></code></pre>
</div><p><code>intersect</code>: Returns a deduplicated list of unique elements present in both the input list and the given list.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 4</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> intersect</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 4</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 5</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 6</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 3 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 4 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───╯</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 3</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> intersect</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">4</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 5</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 6</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">empty list</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰────────────╯</span></span></code></pre>
</div><p><code>difference</code>: Returns a deduplicated list of unique elements present in the input list but not in the given list.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 4</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> difference</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 4</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 5</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 6</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───╯</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[{</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">:</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">} {</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">:</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">} {</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">:</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> difference</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> [{</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">:</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">} {</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">:</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">4</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}]</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">a</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼───┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 3 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───╯</span></span></code></pre>
</div><p><code>combinations</code>: Generates all combinations of a given size k from the input list, streamed lazily via <code>ListStream</code>. If k &gt; n, returns an empty list.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 3</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> combinations</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ╭───┬───╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ ╰───┴───╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ╭───┬───╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 3 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ ╰───┴───╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ╭───┬───╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 3 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ ╰───┴───╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───────────╯</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> combinations</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 3</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">empty list</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰────────────╯</span></span></code></pre>
</div><p><code>permutations</code>: Generates all permutations of the input list using Heap's algorithm, streamed lazily via <code>ListStream</code>.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 3</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> permutations</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ╭───┬───╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 3 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ ╰───┴───╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ╭───┬───╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 3 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ ╰───┴───╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ╭───┬───╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 3 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ ╰───┴───╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ╭───┬───╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 3 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ ╰───┴───╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ╭───┬───╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 3 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ ╰───┴───╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">5</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ╭───┬───╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 3 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ ╰───┴───╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───────────╯</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> permutations</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ╭───┬───╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ ╰───┴───╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ╭───┬───╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ ╰───┴───╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───────────╯</span></span></code></pre>
</div><h3>Added semantic version parsing and commands  </h3>
<p>Nushell now understands and allows you to work with Semantic Versioning. All functionality works through idiomatic Nushell patterns:</p>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Converting to SemVer">
    <span>Converting to SemVer</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">1.2.3</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">{</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">major</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">minor</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">patch</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">1.2.3</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">{</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">major</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">minor</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">patch</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> describe</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">semver</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Decomposing SemVer to record">
    <span>Decomposing SemVer to record</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3-alpha.1+build.2'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into record</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───────────────────┬───────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">major</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">             │ 1             │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">minor</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">             │ 2             │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">patch</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">             │ 3             │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">pre</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">               │ alpha.1       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">build</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">             │ build.2       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                   │ ╭───┬───────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">pre_identifiers</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ alpha │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │     1 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                   │ ╰───┴───────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                   │ ╭───┬───────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">build_identifiers</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ build │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │     2 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                   │ ╰───┴───────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───────────────────┴───────────────╯</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Building SemVer from record">
    <span>Building SemVer from record</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">{</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">major</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">minor</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">patch</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">pre</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"alpha.1"</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">1.2.3-alpha.1</span></span></code></pre>
</div>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> semver bump</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> major</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">2.0.0</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> semver bump</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> minor</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">1.3.0</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> semver bump</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> patch</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">1.2.4</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> semver bump</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> alpha</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">1.2.3-alpha.1</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3-alpha.1'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> semver bump</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> alpha</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">1.2.3-alpha.2</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3-alpha'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> semver bump</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> release</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">1.2.3</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> semver bump</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> major</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">2.0.0</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> semver bump</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> minor</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">1.3.0</span></span></code></pre>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Tab completions are available">
    <span>Tab completions are available</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">| </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> semver bump</span></span>
<span class="line"><span style="color:#1e1e1e;background-color:#8cc265;--shiki-light:#1E1E1E;--shiki-light-bg:#0DBC79;--shiki-dark:#1E1E1E;--shiki-dark-bg:#0DBC79">alpha</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">               beta</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">                major</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">               minor</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">patch</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">               rc</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">                  release</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Completions also work with variables">
    <span>Completions also work with variables</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> v</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">| </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$v</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span></span>
<span class="line"><span style="color:#1e1e1e;background-color:#8cc265;--shiki-light:#1E1E1E;--shiki-light-bg:#0DBC79;--shiki-dark:#1E1E1E;--shiki-dark-bg:#0DBC79">build</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">               major</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">               minor</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">               patch</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">pre</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Sorting SemVer values">
    <span>Sorting SemVer values</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'2.0.0'</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.0.0'</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> each</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">into semver</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> sort</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1.0.0 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1.2.3 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2.0.0 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───────╯</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'2.0.0'</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.0.0'</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> each</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">into semver</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> sort</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --reverse</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2.0.0 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1.2.3 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1.0.0 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───────╯</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Checking Valid SemVer">
    <span>Checking Valid SemVer</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">try</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> { </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> }</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> is-not-empty</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">true</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">try</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> { </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'not-valid'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> }</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> is-not-empty</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">false</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Matching SemVer against requirements">
    <span>Matching SemVer against requirements</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> $in</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510"> in</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> (</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'>=1.0.0'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver-range</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">)</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">true</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.0.0'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> $in</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510"> in</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> (</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'>=2.0.0'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver-range</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">)</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">false</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.3.0-alpha'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> $in</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510"> in</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> (</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'>=1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver-range</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">)</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">false</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Converting SemVer range">
    <span>Converting SemVer range</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'>=1.0.0'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver-range</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">>=1.0.0</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'^1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver-range</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">^1.2.3</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'~1.2'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver-range</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">~1.2</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Describe">
    <span>Describe</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> v</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$v</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> describe</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">semver</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$v</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> describe</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -d</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───────────────┬───────────────────────────────────────────────────────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">type</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">          │ custom                                                                │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">detailed_type</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ semver                                                                │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">subtype</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">       │ semver                                                                │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">rust_type</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">     │ &#x26;alloc::boxed::Box&#x3C;dyn nu_protocol::value::custom_value::CustomValue> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">value</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">         │ 1.2.3                                                                 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───────────────┴───────────────────────────────────────────────────────────────────────╯</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Table coloring">
    <span>Table coloring</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">[</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">  [</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">string</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">semver</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">semver-range</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">];</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">  [</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">, (</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">), (</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'>=1.0.0'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver-range</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">)]</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬────────┬────────┬──────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">string</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">semver</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">semver-range</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼────────┼────────┼──────────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1.2.3  │ </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">1.2.3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">>=1.0.0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">      │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴────────┴────────┴──────────────╯</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Color configuration">
    <span>Color configuration</span>
  </div>
  <div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.config.color_config.semver</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "cyan_bold"</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.config.color_config.semver-range</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "cyan_bold"</span></span></code></pre>
</div>
</div><h3><code>from xlsx</code>/<code>from ods</code> gets a <code>--prefer-integers</code> flag  </h3>
<p><code>xlsx</code> and <code>ods</code> files store numbers as floats by default, even if they are not display with decimal points.</p>
<p><code>from xlsx</code> and <code>from ods</code> now has a <code>--prefer-integers</code> (<code>-i</code>) flag that imports whole-number floats as integers.</p>
<p>This has no effect on non-whole floats.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">open</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --raw</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> tests/fixtures/formats/sample_data.xlsx</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> from xlsx</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> get</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> SalesOrders</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> first</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 5</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬─────────────┬─────────┬─────────┬────────┬───────┬───────────┬────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">OrderDate</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Region</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Rep</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Item</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Units</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Unit Cost</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Total</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼─────────────┼─────────┼─────────┼────────┼───────┼───────────┼────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">8 years ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ East    │ Jones   │ Pencil │ 95.00 │      1.99 │ 189.05 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">8 years ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ Central │ Kivell  │ Binder │ 50.00 │     19.99 │ 999.50 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">8 years ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ Central │ Jardine │ Pencil │ 36.00 │      4.99 │ 179.64 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">8 years ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ Central │ Gill    │ Pen    │ 27.00 │     19.99 │ 539.73 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">8 years ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ West    │ Sorvino │ Pencil │ 56.00 │      2.99 │ 167.44 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴─────────────┴─────────┴─────────┴────────┴───────┴───────────┴────────╯</span></span></code></pre>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">open</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --raw</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> tests/fixtures/formats/sample_data.xlsx</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> from xlsx</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --prefer-integers</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> get</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> SalesOrders</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> first</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 5</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬─────────────┬─────────┬─────────┬────────┬───────┬───────────┬────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">OrderDate</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Region</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Rep</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Item</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Units</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Unit Cost</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Total</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼─────────────┼─────────┼─────────┼────────┼───────┼───────────┼────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">8 years ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ East    │ Jones   │ Pencil │    95 │      1.99 │ 189.05 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">8 years ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ Central │ Kivell  │ Binder │    50 │     19.99 │ 999.50 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">8 years ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ Central │ Jardine │ Pencil │    36 │      4.99 │ 179.64 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">8 years ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ Central │ Gill    │ Pen    │    27 │     19.99 │ 539.73 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">8 years ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ West    │ Sorvino │ Pencil │    56 │      2.99 │ 167.44 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴─────────────┴─────────┴─────────┴────────┴───────┴───────────┴────────╯</span></span></code></pre>
</div><h3>Other additions </h3>
<ul>
<li>Added <code>math cbrt</code> (cube root) function. (<a href="https://github.com/nushell/nushell/pull/18473" target="_blank" rel="noopener noreferrer">#18473</a>)</li>
<li><code>append</code> can now take multiple values to append as rest parameters (<a href="https://github.com/nushell/nushell/pull/18218" target="_blank" rel="noopener noreferrer">#18218</a>)</li>
<li>Improve <code>LS_COLORS</code> support to <code>commandline complete --detailed</code>. (<a href="https://github.com/nushell/nushell/pull/18325" target="_blank" rel="noopener noreferrer">#18325</a>)</li>
<li>The <code>idx init</code> command uses content indexing by default. (<a href="https://github.com/nushell/nushell/pull/18332" target="_blank" rel="noopener noreferrer">#18332</a>)</li>
<li>Improved <code>hash md5</code> and <code>hash sha256</code> help examples to show hashing binary data. (<a href="https://github.com/nushell/nushell/pull/18338" target="_blank" rel="noopener noreferrer">#18338</a>)</li>
<li>Added completions to <code>ansi gradient</code>'s <code>--fgnamed</code> and <code>--bgnamed</code> flags. (<a href="https://github.com/nushell/nushell/pull/18342" target="_blank" rel="noopener noreferrer">#18342</a>)</li>
<li><code>nu-highlight</code> now clears <code>content_type</code> metadata (<a href="https://github.com/nushell/nushell/pull/18266" target="_blank" rel="noopener noreferrer">#18266</a>)</li>
<li>Keybinding <code>edit</code> events now support reedline's verb-based edit commands (<code>move</code>, <code>extend</code>, <code>cut</code>, <code>copy</code>, <code>change</code>, <code>erase</code>) combined with a <code>motion</code> and its parameters, enabling vi-style operator/motion keybindings to be expressed directly in config. The new commands and their fields are discoverable via <code>keybindings list</code>. (<a href="https://github.com/nushell/nushell/pull/18396" target="_blank" rel="noopener noreferrer">#18396</a>)</li>
<li>The <code>http</code> commands now use the response body as error message when getting an error response. (<a href="https://github.com/nushell/nushell/pull/18387" target="_blank" rel="noopener noreferrer">#18387</a>)</li>
<li>If the <code>NU_EXPERIMENTAL_OPTIONS</code> environment variable is set, it will be used when running nushell with the <code>--login</code> or <code>--execute</code> flags since they also load config. (<a href="https://github.com/nushell/nushell/pull/18392" target="_blank" rel="noopener noreferrer">#18392</a>)</li>
<li>Refactor commands that use sqlite pushdown so that it's easier to add other pushdown filters. (<a href="https://github.com/nushell/nushell/pull/18398" target="_blank" rel="noopener noreferrer">#18398</a>)</li>
<li>Added common navigation shortcuts to <code>explore config</code> command: <code>hl</code> to collapse/expand, and <code>jk</code>/<code>ctrl+p/n</code> to go up and down. (<a href="https://github.com/nushell/nushell/pull/18440" target="_blank" rel="noopener noreferrer">#18440</a>)</li>
<li>For those debugging startup performance, we added a new <code>--log-level</code> called <code>perf</code> that shows performance information. (<a href="https://github.com/nushell/nushell/pull/18468" target="_blank" rel="noopener noreferrer">#18468</a>)</li>
</ul>
<h2>Deprecations </h2>
<h3>Deprecate <code>str upcase</code>/<code>str downcase</code> and add <code>str uppercase</code>/<code>str lowercase</code>  </h3>
<p>Added <code>str uppercase</code> command to convert text to uppercase (replaces <code>str upcase</code>)
Added <code>str lowercase</code> command to convert text to lowercase (replaces <code>str downcase</code>)
Deprecated <code>str upcase</code>, using it shows a warning recommending <code>str uppercase</code>.
Deprecated <code>str downcase</code>, using it shows a warning recommending <code>str lowercase</code>.</p>
<h3>Other deprecations </h3>
<ul>
<li>Removed the deprecated <code>use std/clip</code> <code>copy</code> and <code>paste</code> commands; they are now called <code>copy52</code> and <code>paste52</code> for the ones that use the terminal <code>OSC 52</code>, or you can use <code>clip copy</code> and <code>clip paste</code> from the experimental option <code>native-clip</code> that access the system clipboard directly. (<a href="https://github.com/nushell/nushell/pull/18403" target="_blank" rel="noopener noreferrer">#18403</a>)</li>
</ul>
<h2>Other changes </h2>
<h3>More idiomatic YAML output with smarter string quoting  </h3>
<div class="hint-container info">
<p class="hint-container-title">Info</p>
<p>The next release will have a complete rework of the YAML implementation.
So this is only relevant for this release.</p>
</div>
<p>The previous emitter always quoted string values, which produced valid YAML but was more conservative than necessary and less aligned with YAML 1.2 plain-scalar rules.</p>
<p>This change makes output:</p>
<ul>
<li>more readable</li>
<li>closer to idiomatic YAML</li>
<li>more spec-aligned for plain scalars</li>
<li>still safe for roundtripping by quoting values that would otherwise be reinterpreted as non-strings</li>
</ul>
<h4>Before:</h4>
<div class="language-yaml" data-highlighter="shiki" data-ext="yaml" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-yaml"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">value</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'off'</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">path</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'/dev/stdout'</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">listen</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'0.0.0.0:8444,0.0.0.0:8445 ssl'</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">name</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'kong'</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">kind</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'Deployment'</span></span></code></pre>
</div><h4>After:</h4>
<div class="language-yaml" data-highlighter="shiki" data-ext="yaml" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-yaml"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">value</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'off'</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">path</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">/dev/stdout</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">listen</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">0.0.0.0:8444,0.0.0.0:8445 ssl</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">name</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">kong</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">kind</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">Deployment</span></span></code></pre>
</div><p>Multiline strings now emit as:</p>
<div class="language-yaml" data-highlighter="shiki" data-ext="yaml" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-yaml"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">string</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">-</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  Hello</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  world</span></span></code></pre>
</div><h3>Width-priority columns  </h3>
<p>Added support for column width-priority hints in table rendering. Values can now carry <code>--table-width-priority-columns</code> metadata so the <code>table</code> command gives selected columns more space when fitting output to the terminal width.</p>
<p>Providing the metadata will cause the <code>table</code> command to render the output differently</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">ps</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -l</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> select</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> name</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> command</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> pid</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> first</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> table</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬──────────────────────────────────┬───────────────────────────────────────────────────────────────────────────┬─────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │               </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">name</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">               │                                  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">command</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">                                  │ ... │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼──────────────────────────────────┼───────────────────────────────────────────────────────────────────────────┼─────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ GameInputRedistService.exe       │ C:\Program Files\Microsoft GameInput\x64\GameInputRedistService.exe       │ ... │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │                                  │ /session=\\.\pipe\GameInputServiceSession-002fb4627cd24645-00000001       │     │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ nvcontainer.exe                  │ C:\Program Files\NVIDIA Corporation\NvContainer\nvcontainer.exe -f        │ ... │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │                                  │ C:\ProgramData\NVIDIA Corporation\NVIDIA                                  │     │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │                                  │ App\NvContainer\NvContainerUser%d.log -d C:\Program Files\NVIDIA          │     │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │                                  │ Corporation\NvContainer\plugins\User -r -l 3 -p 30000 -c                  │     │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴──────────────────────────────────┴───────────────────────────────────────────────────────────────────────────┴─────╯</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">ps</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -l</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> select</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> name</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> command</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> pid</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> first</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> metadata set</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -w</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> [</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">pid</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> table</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬────────────────────────────┬───────────────────────────────────────────────────────────────────────────────┬───────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │            </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">name</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">            │                                    </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">command</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">                                    │  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">pid</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼────────────────────────────┼───────────────────────────────────────────────────────────────────────────────┼───────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ GameInputRedistService.exe │ C:\Program Files\Microsoft GameInput\x64\GameInputRedistService.exe           │ 12744 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │                            │ /session=\\.\pipe\GameInputServiceSession-002fb4627cd24645-00000001           │       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ nvcontainer.exe            │ C:\Program Files\NVIDIA Corporation\NvContainer\nvcontainer.exe -f            │ 12792 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │                            │ C:\ProgramData\NVIDIA Corporation\NVIDIA                                      │       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │                            │ App\NvContainer\NvContainerUser%d.log -d C:\Program Files\NVIDIA              │       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │                            │ Corporation\NvContainer\plugins\User -r -l 3 -p 30000 -c                      │       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴────────────────────────────┴───────────────────────────────────────────────────────────────────────────────┴───────╯</span></span></code></pre>
</div><h3>Polars upgrade 0.54  </h3>
<ul>
<li><code>polar implode</code> now supports the flag <code>--maintain-order</code></li>
<li><code>polars is-in</code> now supports the flag <code>--maintain-order</code></li>
<li><code>polars pivot</code> now supports the flag <code>--always-combine-names</code></li>
<li><code>polars replace</code> requires a <code>--default &lt;value&gt;</code> parameter when used with <code>--strict</code> and <code>--return-dtype</code> if the dtype has changed from the original dtype</li>
</ul>
<h3>New experimental globbing engine  </h3>
<p>This release introduces a new experimental feature named <code>dc-glob</code> (named for Devyn Cairn's glob).
Currently, Nushell has two separate globbing engines with varying features and platform support.</p>
<p>This engine is intended to replace the existing globbing engines and standardize on something that works well on all platforms.
In addition, this globbing engine seems to perform faster than the existing engines.</p>
<h3>Additional changes </h3>
<ul>
<li>&quot;Command not found&quot; error messages will now suggest the full command from a category if you type just its ending; for example, <code>sqrt</code> will suggest <code>math sqrt</code>. (<a href="https://github.com/nushell/nushell/pull/18498" target="_blank" rel="noopener noreferrer">#18498</a>)</li>
<li>Fixed <code>plugin list --help</code> to show the correct output type and example for the <code>commands</code> column, which contains each plugin command's name and description. (<a href="https://github.com/nushell/nushell/pull/18357" target="_blank" rel="noopener noreferrer">#18357</a>)</li>
<li>Added some <code>@attr</code>s to the <code>toolkit.nu</code> commands so that they show up in category, search terms, and examples. I also homogenized help casing and punctuation. (<a href="https://github.com/nushell/nushell/pull/18350" target="_blank" rel="noopener noreferrer">#18350</a>)</li>
<li>Added support for feature gating LSP functionality, specifically enable it via <code>--features lsp</code>. (<a href="https://github.com/nushell/nushell/pull/18148" target="_blank" rel="noopener noreferrer">#18148</a>)</li>
<li><code>http post</code>/<code>put</code>/<code>patch</code>/<code>delete</code> now respects <code>--content-type</code> for JSON-variant MIME types like <code>application/json-patch+json</code>. (<a href="https://github.com/nushell/nushell/pull/18496" target="_blank" rel="noopener noreferrer">#18496</a>)</li>
</ul>
<h2>Bug fixes </h2>
<h3><code>idx</code> dependency update and command reliability improvements  </h3>
<p>Update the <code>idx</code> fff-search dependency and fix bugs.</p>
<ul>
<li><code>idx init . --wait</code> now properly blocks</li>
<li><code>idx init</code> now has a <code>--follow-links</code> switch</li>
<li><code>idx status</code> reports accurate counts after indexing</li>
<li><code>idx import</code> fully restores snapshot for queries — The <code>idx import</code> command now properly restores snapshots to enable all query operations. Imported snapshots remain queryable even if the original project files have been deleted or moved.</li>
<li><code>idx files</code> works on imported snapshots</li>
<li><code>idx files</code> has a <code>query</code> parameter now for easy searching (renamed from <code>path</code> for consistency)</li>
<li><code>idx dirs</code> works on imported snapshots</li>
<li><code>idx dirs</code> has a <code>query</code> parameter now for easy searching</li>
<li><code>idx find</code> (fuzzy search) works on imported snapshots</li>
<li><code>idx search</code> (content search) works on imported snapshots</li>
<li>changed output to nushell values for commands that return tables</li>
<li>updated some help strings to be more helpful</li>
</ul>
<p>Files are ignored during indexing due to the use of the <code>ignore</code> crate. These are the rules for ignore <a href="https://docs.rs/ignore/latest/ignore/struct.WalkBuilder.html#ignore-rules" target="_blank" rel="noopener noreferrer">https://docs.rs/ignore/latest/ignore/struct.WalkBuilder.html#ignore-rules</a>. There's no way to override this in the current version.</p>
<h3>Subcommand completions are now wrapped in quotes for <code>which</code>  </h3>
<p>Tab completions for <code>which</code> and <code>attr complete</code>/<code>@complete</code> commands will now properly quote command names containing spaces.</p>
<div style="max-width: 100%; overflow-x: auto;">
<div style="display: grid; grid-template-columns: 1fr 1fr; column-gap: 2rem;">
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">which</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> 'path par</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">which</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> path</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> parse</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬─────────┬──────┬──────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">command</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">path</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">type</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼─────────┼──────┼──────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ path    │      │ built-in │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ parse   │      │ built-in │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴─────────┴──────┴──────────╯</span></span></code></pre>
</div>
</div></div>
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">which</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> 'path par</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">which</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> "path parse"</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬────────────┬──────┬──────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">command</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">path</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">type</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼────────────┼──────┼──────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ path parse │      │ built-in │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴────────────┴──────┴──────────╯</span></span></code></pre>
</div>
</div></div>
</div>
</div>
<h3>Fix nested update closure for table columns  </h3>
<p>This fixes a bug where <code>update</code> with a nested column path and closure (for example <code>rss_item.pubDate</code>) could evaluate the closure against a projected list and write the same result back to every row.</p>
<div style="max-width: 100%; overflow-x: auto;">
<div style="display: grid; grid-template-columns: 1fr 1fr; column-gap: 2rem;">
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">{</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">  rss_item</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">[</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">    [</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">pubDate</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">];</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">    [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1773429600</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">],</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">    [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1774325700</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">],</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">    [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1775448000</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">  ]</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> update</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> rss_item</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">pubDate</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">into datetime</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -f</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> "%s"</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭──────────┬──────────────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ ╭───┬──────────────────────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">rss_item</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │       </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">pubDate</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">        │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ ├───┼──────────────────────┤ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ╭───┬──────────────╮ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">2 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │   │ ╰───┴──────────────╯ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ╭───┬──────────────╮ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">2 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │   │ ╰───┴──────────────╯ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ╭───┬──────────────╮ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">2 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │   │ ╰───┴──────────────╯ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ ╰───┴──────────────────────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰──────────┴──────────────────────────────╯</span></span></code></pre>
</div>
</div></div>
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">{</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">  rss_item</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">[</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">    [</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">pubDate</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">];</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">    [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1773429600</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">],</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">    [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1774325700</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">],</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">    [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1775448000</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">  ]</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> update</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> rss_item</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">pubDate</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">into datetime</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -f</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> "%s"</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭──────────┬──────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ ╭───┬──────────────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">rss_item</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">pubDate</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ ├───┼──────────────┤ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">2 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ ╰───┴──────────────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰──────────┴──────────────────────╯</span></span></code></pre>
</div>
</div></div>
</div>
</div>
<div style="max-width: 100%; overflow-x: auto;">
<div style="display: grid; grid-template-columns: 1fr 1fr; column-gap: 2rem;">
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">{ </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">w</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: { </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">x</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: [ { </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">y</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"1"</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> } { </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">y</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"2"</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> } ] } }</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> update</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> w</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">x</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">y</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">into float</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to yaml</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">w:</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  x:</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    - 'y':</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">        - 1.0</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">        - 2.0</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    - 'y':</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">        - 1.0</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">        - 2.0</span></span>
<span class="line"></span></code></pre>
</div>
</div></div>
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">{ </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">w</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: { </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">x</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: [ { </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">y</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"1"</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> } { </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">y</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"2"</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> } ] } }</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> update</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> w</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">x</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">y</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">into float</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to yaml</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">w:</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  x:</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    - 'y': 1.0</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    - 'y': 2.0</span></span>
<span class="line"></span></code></pre>
</div>
</div></div>
</div>
</div>
<div style="max-width: 100%; overflow-x: auto;">
<div style="display: grid; grid-template-columns: 1fr 1fr; column-gap: 2rem;">
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[ </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">[[</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]; [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">] [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]]</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> ]</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> update</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> a</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> {</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">into float</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">}</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to yaml</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">-</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  - a:</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">      - 1.0</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">      - 2.0</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  - a:</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">      - 1.0</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">      - 2.0</span></span>
<span class="line"></span></code></pre>
</div>
</div></div>
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[ </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">[[</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]; [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">] [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]]</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> ]</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> update</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> a</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> {</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">into float</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">}</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to yaml</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">-</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  - a: 1.0</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  - a: 2.0</span></span>
<span class="line"></span></code></pre>
</div>
</div></div>
</div>
</div>
<h3>Structured <code>nu-mcp</code> evaluation output  </h3>
<p>The MCP <code>evaluate</code> tool keeps evaluated Nushell values structured in <code>output</code>, so output data is fully unescaped instead of a wrapped string. Successful and error responses are also mirrored as MCP <code>structuredContent</code> JSON for clients that support structured tool output.</p>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-json" data-highlighter="shiki" data-ext="json" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-json"><span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">{</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">  "jsonrpc"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"2.0"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">  "id"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">3</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">  "result"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">    "content"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: [</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">      {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">        "type"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"text"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">        "text"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"{cwd:/Users/fdncred/src/nushell,history_index:0,timestamp:2026-05-21T15:10:18.619935+00:00,output:</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\"\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">[</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  {</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">    \\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">name</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">: </span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">assets</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">,</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">    \\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">type</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">: </span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">dir</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">,</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">    \\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">size</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">: 160,</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">    \\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">modified</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">: </span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">2024-09-14T07:06:47.316979108-05:00</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"\n</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  },</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  {</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">    \\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">name</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">: </span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">ast-grep</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">,</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">    \\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">type</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">: </span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">dir</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">,</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">    \\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">size</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">: 160,</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">    \\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">modified</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">: </span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">2026-01-07T06:22:12.488582817-06:00</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"\n</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  },</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  {</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">    \\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">name</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">: </span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">benches</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">,</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">    \\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">type</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">: </span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">dir</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">,</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">    \\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">size</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">: 128,</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">    \\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">modified</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">: </span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">2026-05-21T08:31:29.486599444-05:00</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"\n</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  }</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">]</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\"\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">}"</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">      }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    ],</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">    "isError"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66">false</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">  }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-json" data-highlighter="shiki" data-ext="json" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-json"><span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">{</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">  "jsonrpc"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"2.0"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">  "id"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">3</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">  "result"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">    "content"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: [</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">      {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">        "type"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"text"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">        "text"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"{cwd:/Users/fdncred/src/nushell,history_index:0,timestamp:2026-06-30T06:52:27.000000+00:00,output:{a:1,b:[2,3]}}"</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">      }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    ],</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">    "structuredContent"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">      "cwd"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"/Users/fdncred/src/nushell"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">      "history_index"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">0</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">      "timestamp"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"2026-06-30T06:52:27.000000+00:00"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">      "output"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">        "a"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">1</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">        "b"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: [</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">2</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">3</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">]</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">      }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    },</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">    "isError"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66">false</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">  }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div>
</div><h3>Improved errors for negative indices in cell paths  </h3>
<p>Improved error messages when negative indices are used in cell paths.</p>
<p>Previously, negative indices could produce misleading &quot;Row number too large&quot; errors (e.g., <code>[[&quot;foo&quot;, &quot;bar&quot;], [&quot;foo&quot;, &quot;baz&quot;]] | get 0.-1</code>) or generic &quot;NeedsPositiveValue&quot; errors (e.g., <code>[&quot;foo&quot;, &quot;bar&quot;, &quot;baz&quot;] | get (-1)</code>).</p>
<p>Now Nushell reports clear messages such as &quot;negative index is not supported in cell path&quot; or &quot;can't convert negative number to cell path&quot;.</p>
<h3>Correctly parse <code>oneof</code> with a closure without pipe  </h3>
<h4><code>oneof&lt;..., table&gt;</code></h4>
<p>In some specific cases, the parser could reject values provided to <code>oneof</code> typed parameters, such as rejecting table literal syntax for <code>oneof&lt;.., table&gt;</code>:</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">def</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> cmd</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> [--flag: oneof&#x3C;record, table>]</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> {}</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">cmd</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --flag </span><span style="color:#80858f;background-color:#e05561;--shiki-onedarkpro-font-weight:bold;--shiki-light:#D4D4D4;--shiki-light-bg:#cd3131;--shiki-light-font-weight:bold;--shiki-dark:#D4D4D4;--shiki-dark-bg:#cd3131;--shiki-dark-font-weight:bold">[[foo]; 1]</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::parser::parse_mismatch_with_full_string_msg</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Parse mismatch during operation.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #17:1:12</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ cmd --flag [[foo]; 1]</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">           ─────┬────</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·                 </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── expected oneof&#x3C;record, table></span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div><p>The parser no longer considers such code invalid.</p>
<h4><code>oneof&lt;..., closure&gt;</code></h4>
<p>Arguments of type <code>oneof&lt;..., closure&gt;</code> could only be parsed as closures if they had a parameter list (<code>{|| }</code>).</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">def</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> cmd</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> [--flag: oneof&#x3C;list, closure>]</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> {}</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">cmd</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --flag</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> {|| </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">ls</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">cmd</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --flag </span><span style="color:#80858f;background-color:#e05561;--shiki-onedarkpro-font-weight:bold;--shiki-light:#D4D4D4;--shiki-light-bg:#cd3131;--shiki-light-font-weight:bold;--shiki-dark:#D4D4D4;--shiki-dark-bg:#cd3131;--shiki-dark-font-weight:bold">{ ls }</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::parser::parse_mismatch_with_full_string_msg</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Parse mismatch during operation.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #21:1:12</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ cmd --flag { ls }</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">           ───┬──</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·               </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── expected non-block value: oneof&#x3C;list&#x3C;any>, closure()></span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div><p>The parser now accepts calls like <code>cmd --flag { ls }</code></p>
<h3>Fixed table alignment with <code>header_on_separator</code>  </h3>
<p>Alignment issues in <code>table</code> when <code>header_on_separator</code> is on are fixed:</p>
<div style="max-width: 100%; overflow-x: auto;">
<div style="display: grid; grid-template-columns: 1fr 1fr; column-gap: 2rem;">
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-" data-highlighter="shiki" data-ext style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-"><span class="line"><span>╭─#─┬─align──┬────val─────╮</span></span>
<span class="line"><span>│ 0 │ _      │ __________ │</span></span>
<span class="line"><span>│ 1 │ left   │ a          │</span></span>
<span class="line"><span>│ 2 │ right  │          0 │</span></span>
<span class="line"><span>│ 3 │ left   │          a │</span></span>
<span class="line"><span>│ 4 │ center │     ∅      │</span></span>
<span class="line"><span>│ 5 │ left   │     a      │</span></span>
<span class="line"><span>│ 6 │ center │     ∅      │</span></span>
<span class="line"><span>│ 7 │ right  │          0 │</span></span>
<span class="line"><span>╰───┴────────┴────────────╯</span></span></code></pre>
</div>
</div></div>
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-" data-highlighter="shiki" data-ext style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-"><span class="line"><span>╭─#─┬─align──┬────val─────╮</span></span>
<span class="line"><span>│ 0 │ _      │ __________ │</span></span>
<span class="line"><span>│ 1 │ left   │ a          │</span></span>
<span class="line"><span>│ 2 │ right  │          0 │</span></span>
<span class="line"><span>│ 3 │ left   │ a          │</span></span>
<span class="line"><span>│ 4 │ center │     ∅      │</span></span>
<span class="line"><span>│ 5 │ left   │ a          │</span></span>
<span class="line"><span>│ 6 │ center │     ∅      │</span></span>
<span class="line"><span>│ 7 │ right  │          0 │</span></span>
<span class="line"><span>╰───┴────────┴────────────╯</span></span></code></pre>
</div>
</div></div>
</div>
</div>
<h3>Add <code>--full-reparse/-f</code> to <code>run</code> command  </h3>
<p>The <code>run</code> command now supports <code>--full-reparse</code>/<code>-f</code>, making workflows like <code>watch . -g *.nu | where path ends-with test.nu | each -f { run -f ./test.nu }</code> work as expected. Running scripts repeatedly is also fixed: starting with <code>nu -n</code>, then running <code>run toolkit.nu</code> twice now works, whereas previously a caching bug prevented the same file from being run more than once.</p>
<h3>Improved default steps for fractional float ranges  </h3>
<p>Float ranges without an explicit step now use more natural fractional steps, so <code>0.1..0.3</code> yields <code>0.1, 0.2, 0.3</code> instead of just <code>0.1</code>. This also means <code>0.1..0.3 | last</code> now correctly returns <code>0.3</code>. Float range values are now rounded to match the step's decimal precision, which removes floating-point display artifacts like <code>0.30000000000000004</code> from serialized output.</p>
<div style="max-width: 100%; overflow-x: auto;">
<div style="display: grid; grid-template-columns: 1fr 1fr; column-gap: 2rem;">
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0.1</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510">..</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0.3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> last</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">0.1</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0.1</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510">..</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0.3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to json</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -r</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">[0.1]</span></span></code></pre>
</div>
</div></div>
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0.1</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510">..</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0.3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> last</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">0.3</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0.1</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510">..</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0.3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to json</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -r</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">[0.1,0.2,0.3]</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0.001</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510">..</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0.005</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to json</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -r</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">[0.001,0.002,0.003,0.004,0.005]</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0.0</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510">..</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0.5</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to json</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -r</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">[0.0,0.1,0.2,0.3,0.4,0.5]</span></span></code></pre>
</div>
</div></div>
</div>
</div>
<h3>Fixed stor open return type  </h3>
<p><code>stor open</code> returns the custom value <code>SQLiteDatabase</code>, yet its signature had <code>sqlite-in-memory</code> as the return type. This causes problems with the <code>enforce-runtime-annotations</code> experimental option:</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> db</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">stor open</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::cant_convert</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Can't convert to sqlite-in-memory.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #2:1:10</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ let db = stor open</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">         ────┬────</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·              </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── can't convert SQLiteDatabase to sqlite-in-memory</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div><p>The return type has been corrected to <code>SQLiteDatabase</code>.</p>
<h3>Improved module descriptions in completions and LSP hovers  </h3>
<p>Descriptions of module completions for <code>use</code> were previously not formatted. Instead of what you would get from <code>help modules ...</code>, the descriptions were the modules' doc comment <em>as it appeared</em> in the file (<code>#</code> and leading indent not removed).</p>
<p>Before:</p>
<div class="language-" data-highlighter="shiki" data-ext style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-"><span class="line"><span>> use c</span></span>
<span class="line"><span>      ╭───────╮ ╭─────────────────────────────────────────────╮</span></span>
<span class="line"><span>      │clip   │ │# Commands for interacting with the system   │</span></span>
<span class="line"><span>      ╰───────╯ │clipboard # # > These commands require your  │</span></span>
<span class="line"><span>                │terminal to support OSC 52 # > Terminal      │</span></span>
<span class="line"><span>                │multiplexers such as screen, tmux, zellij etc│</span></span>
<span class="line"><span>                │may interfere with this command              │</span></span>
<span class="line"><span>                ╰─────────────────────────────────────────────╯</span></span></code></pre>
</div><p>After:</p>
<div class="language-" data-highlighter="shiki" data-ext style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-"><span class="line"><span>> use c</span></span>
<span class="line"><span>      ╭───────╮ ╭────────────────────────────────────────╮</span></span>
<span class="line"><span>      │clip   │ │Commands for interacting with the system│</span></span>
<span class="line"><span>      ╰───────╯ │clipboard                               │</span></span>
<span class="line"><span>                ╰────────────────────────────────────────╯</span></span></code></pre>
</div><h3>Fix aliases breaking when variables used in them are shadowed  </h3>
<p>Shadowing variables used in aliases could cause the alias to stop working:</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> x</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">10</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">alias</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> xx</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> =</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> print</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> $x</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">xx</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">10</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> x</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">20</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">xx</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::variable_not_found</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Variable not found</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #32:1:18</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ alias xx = print $x</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">                 ─┬</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·                   </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── variable not found</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div><p>Now aliases continue working with the original value of the variable:</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> x</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">10</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">alias</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> xx</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> =</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> print</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> $x</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">xx</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">10</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> x</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">20</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">xx</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">10</span></span></code></pre>
</div><h3>Fixed a bug in <code>--</code> option parsing  </h3>
<p>Fixed a bug with how <code>--</code> was handled with <code>--wrapped</code> custom commands. Now you can do things like this:</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">def</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --wrapped</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> example</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> [--my-flag: string ...rest]</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> {</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">  let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> rest</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$rest</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> skip</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  # skip the '--' delimiter</span></span>
<span class="line"><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">  $rest</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> each</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> { </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">{</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">type</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">(</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$in</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> describe</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">)</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> value</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$in</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> }</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> print</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">  print</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> $"</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">--my-flag='</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">(</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$my_flag</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">)</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">"</span></span>
<span class="line"><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">}</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">example</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --my-flag</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">=</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"hi"</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> --</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> true</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> false</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> 001</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> --my-flag="goodbye"</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬────────┬───────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">type</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │       </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">value</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼────────┼───────────────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ string │ true              │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ string │ false             │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ string │ 001               │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ string │ --my-flag=goodbye │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴────────┴───────────────────╯</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">--my-flag='hi'</span></span></code></pre>
</div><h3>Improved Ctrl-C handling in <code>from json</code>  </h3>
<p>Ctrl+C is more responsive in <code>from json</code>, <code>from kdl</code>, and <code>from xml</code>. They now respond promptly to Ctrl+C when parsing large files. Pressing Ctrl+C during parsing will interrupt the command and return to the prompt. It will also produce better parse-error messages and should now show a focused snippet of the source around the error location instead of dumping the entire file content.</p>
<h3>Improved conflicting column names in <code>flatten</code>  </h3>
<p>This pr fixes flatten renaming column behavior</p>
<div style="max-width: 100%; overflow-x: auto;">
<div style="display: grid; grid-template-columns: 1fr 1fr; column-gap: 2rem;">
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">[[</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">b</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]; [[[</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]; [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">9</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]], </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]]</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> flatten</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -a</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> b</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">a</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼───┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───╯</span></span></code></pre>
</div>
</div></div>
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">[[</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">b</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]; [[[</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]; [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">9</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]], </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]]</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> flatten</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -a</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> b</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬─────┬───╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">b_a</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">a</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼─────┼───┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   9 │ 1 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴─────┴───╯</span></span></code></pre>
</div>
</div></div>
</div>
</div>
<h3>Row-conditions should parse <code>{}</code> as closure, not record  </h3>
<p>Empty braces (<code>{}</code>) as row conditions are now parsed as empty closures rather than empty records.</p>
<div style="max-width: 100%; overflow-x: auto;">
<div style="display: grid; grid-template-columns: 1fr 1fr; column-gap: 2rem;">
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510">..</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> where </span><span style="color:#80858f;background-color:#e05561;--shiki-onedarkpro-font-weight:bold;--shiki-light:#D4D4D4;--shiki-light-bg:#cd3131;--shiki-light-font-weight:bold;--shiki-dark:#D4D4D4;--shiki-dark-bg:#cd3131;--shiki-dark-font-weight:bold">{}</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::parser::type_mismatch</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Type mismatch.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #39:1:14</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1..3 | where {}</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">             ─┬</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·               </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── expected bool, found record</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div>
</div></div>
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510">..</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> where</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> {}</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">empty list</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰────────────╯</span></span></code></pre>
</div>
</div></div>
</div>
</div>
<h3>Improved special-character handling in <code>idx search</code>  </h3>
<p>Allow <code>idx search 'Lyrics['</code> to work by taking <code>[</code> literally instead of assuming it's a glob. Also added a couple examples explaining how <code>idx search</code> should work.</p>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Brackets and question marks are treated as literal text, not glob patterns.">
    <span>Brackets and question marks are treated as literal text, not glob patterns.</span>
  </div>
  <div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">idx</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> search</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> 'arr[0]'</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Glob patterns with a path separator filter which files to search.">
    <span>Glob patterns with a path separator filter which files to search.</span>
  </div>
  <div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">idx</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> search</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> pattern</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> */tests/*</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Brace expansion globs also filter which files to search.">
    <span>Brace expansion globs also filter which files to search.</span>
  </div>
  <div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">idx</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> search</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> pattern</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> *.</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">{</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">rs</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">js</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div>
</div><h3>Fixed table mode handling from CLI arguments  </h3>
<p>Respect the table mode when passed in on the cli when running script so you can do things like this.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1..3 | each { { number: $in, comment: "hello" } }'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> save</span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD"> script.nu</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">nu</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> -m</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> "none"</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> script.nu</span></span>
<span class="line"><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> #</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">   number</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">   comment</span></span>
<span class="line"><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> 0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">        1   hello</span></span>
<span class="line"><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">        2   hello</span></span>
<span class="line"><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> 2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">        3   hello</span></span></code></pre>
</div><h3>Improved <code>input list</code> streaming and rendering  </h3>
<p><code>input list</code> no longer waits for streamed input to be fully collected before showing the first paint. It now stays responsive while items stream in and shows a live-updating count of collected items in the footer. In table mode, header cells now expand properly along with their columns when scrolling through the list, and control characters like tabs no longer throw off UI alignment during rendering.</p>
<h3>Fixed <code>nu --plugins</code> handling  </h3>
<p>The nushell cli parsing now supports the <code>--plugins</code> parameter in these variations</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">nu</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">plugins</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> /path/to/nu_plugin_one</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">plugins</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> /path/to/nu_plugin_two</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # multiple --plugins params</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">nu</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">plugins</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> '[/path/to/nu_plugin_one, /path/to/nu_plugin_two]'</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # comma separation</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">nu</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">plugins</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> '[/path/to/nu_plugin_one /path/to/nu_plugin_two]'</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # no comma separation</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">nu</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">plugins</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> '["/path/to plugin/nu_plugin_one", "/path/to plugin/nu_plugin_two"]'</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # quoted paths, with or without commas</span></span></code></pre>
</div><h3>Other fixes </h3>
<ul>
<li>Fixed a regression where <code>commandline edit</code> did not update the commandline in REPL on 0.113.0. <code>commandline edit</code> now correctly updates the visible prompt buffer again. (<a href="https://github.com/nushell/nushell/pull/18301" target="_blank" rel="noopener noreferrer">#18301</a>)</li>
<li>
<ul>
<li>Fixed an issue where <code>math abs</code> would crash Nushell when given the minimum 64-bit integer or duration; it now reports an overflow error instead. (<a href="https://github.com/nushell/nushell/pull/18275" target="_blank" rel="noopener noreferrer">#18275</a>)</li>
</ul>
</li>
<li><code>bytes index-of</code> doesn't panic on empty patterns anymore (<a href="https://github.com/nushell/nushell/pull/18254" target="_blank" rel="noopener noreferrer">#18254</a>)</li>
<li>When using <code>explore config</code> if you supply <code>--output &lt;file&gt;</code> when you're editing the config i.e. not using <code>explore config</code> in json mode, it will fail fast and let you know that isn't possible instead of you finding that out later. (<a href="https://github.com/nushell/nushell/pull/18327" target="_blank" rel="noopener noreferrer">#18327</a>)</li>
<li>Fix Nix package evaluation for building from flake. (<a href="https://github.com/nushell/nushell/pull/18330" target="_blank" rel="noopener noreferrer">#18330</a>)</li>
<li>Now, when you pass an interpolated string (e. g. <code>$&quot;($env.pwd)/foo&quot;</code>, <code>~/($bar)</code>) to a flag or argument of type <code>glob</code> they will be converted automatically just like with regular strings instead of throwing a type error. (<a href="https://github.com/nushell/nushell/pull/18263" target="_blank" rel="noopener noreferrer">#18263</a>)</li>
<li>Fixed an issue where <code>lines</code> failed on input containing invalid UTF-8. By default, <code>lines</code> now replaces invalid UTF-8 bytes and continues processing, and <code>lines --strict</code> can be used to fail on invalid UTF-8. (<a href="https://github.com/nushell/nushell/pull/18261" target="_blank" rel="noopener noreferrer">#18261</a>)</li>
<li>Fixed <code>input list --fuzzy</code> truncating ANSI-styled options too early because formatting escape sequences were counted as visible width. (<a href="https://github.com/nushell/nushell/pull/18340" target="_blank" rel="noopener noreferrer">#18340</a>)</li>
<li>Fixed an issue where <code>uniq-by</code> silently collapsed every value into a single row when given a list whose elements are not records/tables. <code>uniq-by</code> now reports an error in that case (e.g. <code>[1 2 2] | uniq-by foo</code>), and it also reports a missing column when <strong>any</strong> record in the input lacks the requested column, not just the first one. (<a href="https://github.com/nushell/nushell/pull/18309" target="_blank" rel="noopener noreferrer">#18309</a>)</li>
<li><code>bits shl</code> and <code>bits shr</code> now default to an 8-byte word size when <code>--number-bytes</code> is not provided, so shifts such as <code>1 | bits shl 20</code> no longer fail because the input was auto-sized to one byte. (<a href="https://github.com/nushell/nushell/pull/18277" target="_blank" rel="noopener noreferrer">#18277</a>)</li>
<li>Fixed a regression where lists like <code>[.foons]</code> will cause parser error. (<a href="https://github.com/nushell/nushell/pull/18363" target="_blank" rel="noopener noreferrer">#18363</a>)</li>
<li>Works better with Windows now for things like <code>glob c:\apps\*</code>. (<a href="https://github.com/nushell/nushell/pull/18367" target="_blank" rel="noopener noreferrer">#18367</a>)</li>
<li>Fixed a regression where all custom commands with <code>--wrapped</code> where numbers and strings passed to externals as <code>glob</code> now everything is passed as <code>string</code> or <code>glob</code> or creates an error. (<a href="https://github.com/nushell/nushell/pull/18372" target="_blank" rel="noopener noreferrer">#18372</a>)</li>
<li>While using experimental option <code>dc-glob</code>, <code>glob</code> expands <code>~</code> as expected now. (<a href="https://github.com/nushell/nushell/pull/18373" target="_blank" rel="noopener noreferrer">#18373</a>)</li>
<li>Fixes a bug where <code>glob .cargo/bin/nu*</code> nor <code>%ls .cargo/bin/nu*</code> wouldn't work. (<a href="https://github.com/nushell/nushell/pull/18375" target="_blank" rel="noopener noreferrer">#18375</a>)</li>
<li>Fix a breaking change that allows glob to still work in case-insensitive mode when using the <code>--ignore-case/-i</code> when using the dc-glob experimental-option. (<a href="https://github.com/nushell/nushell/pull/18376" target="_blank" rel="noopener noreferrer">#18376</a>)</li>
<li>glob with dc-glob = true now emits absolute paths when absolute patterns are used. The simple example was doing <code>glob ~/.cargo/bin/nu*</code> from within <code>~/Downloads</code> and making sure the results start with <code>/Users/&lt;username&gt;/.cargo/bin/nu</code>. Previously they incorrectly started with <code>/Users/&lt;username&gt;/Downloads/nu*</code> which was completely wrong. Thanks @Tyarel8 ! (<a href="https://github.com/nushell/nushell/pull/18378" target="_blank" rel="noopener noreferrer">#18378</a>)</li>
<li>Fix a bug with dcglob fixing a problem with rm. (<a href="https://github.com/nushell/nushell/pull/18391" target="_blank" rel="noopener noreferrer">#18391</a>)</li>
<li>All commands that can accept a polars expression can now accept a polars selector as input (<a href="https://github.com/nushell/nushell/pull/18394" target="_blank" rel="noopener noreferrer">#18394</a>)</li>
<li>Fixed a bug of AST flattening where leading pipe characters in a block may lead to wrong reedline renderings. (<a href="https://github.com/nushell/nushell/pull/18386" target="_blank" rel="noopener noreferrer">#18386</a>)</li>
<li>Small improvement in token-efficiency for the <code>nu --mcp</code> agent tool instructions. (<a href="https://github.com/nushell/nushell/pull/18413" target="_blank" rel="noopener noreferrer">#18413</a>)</li>
<li>
<ul>
<li>Fixed a panic in <code>str index-of --grapheme-clusters</code> when the search string matched inside a multi–code-point grapheme cluster (flag emoji, ZWJ sequence, skin-tone modifier, or combining mark); it now returns <code>-1</code>. (<a href="https://github.com/nushell/nushell/pull/18418" target="_blank" rel="noopener noreferrer">#18418</a>)</li>
</ul>
</li>
<li>Typing <code>exit</code> in the repl will no longer use a different logic and will call the <code>exit</code> command normally. Furthermore, any invocation of <code>exit</code> (e.g. inside a keybind of custom command) will restore the terminal cursor to the state it was before rather than only in the aforementioned case. (<a href="https://github.com/nushell/nushell/pull/18389" target="_blank" rel="noopener noreferrer">#18389</a>)</li>
<li>Don't SIGABRT when closing your terminal or using nu as an MCP server. (<a href="https://github.com/nushell/nushell/pull/18428" target="_blank" rel="noopener noreferrer">#18428</a>)</li>
<li>Fixed an issue where inserting or upserting into a nested cell path of an empty list, such as <code>[] | insert 0.0 1</code>, produced a confusing error mentioning <code>18446744073709551615</code>. It now reports a clear &quot;Row number too large (empty content)&quot; error. (<a href="https://github.com/nushell/nushell/pull/18463" target="_blank" rel="noopener noreferrer">#18463</a>)</li>
<li>
<ul>
<li>Fixed a compiler error (<code>register_uninitialized</code>) when the right-hand side of an <code>and</code>/<code>or</code>/comparison collects <code>$in</code>, for example <code>... | where $in.x &gt; 0 and not ($in.x &gt; 5)</code>. (<a href="https://github.com/nushell/nushell/pull/18465" target="_blank" rel="noopener noreferrer">#18465</a>)</li>
</ul>
</li>
<li>nu <code>--log-include</code> or <code>--log-exclude</code> now accept module or target name correctly. Previously it accepted log level instead. (<a href="https://github.com/nushell/nushell/pull/18464" target="_blank" rel="noopener noreferrer">#18464</a>)</li>
<li>Fixed an issue where <code>math avg</code>, <code>math sum</code>, and other math commands on tables produced a generic &quot;Unable to give a result with this input&quot; error instead of the real underlying error. List and table inputs now produce consistent error messages. (<a href="https://github.com/nushell/nushell/pull/18480" target="_blank" rel="noopener noreferrer">#18480</a>)</li>
<li><code>help aliases</code> now correctly shows the alias name (not the target command name) for aliases to internal commands. (<a href="https://github.com/nushell/nushell/pull/18483" target="_blank" rel="noopener noreferrer">#18483</a>)</li>
</ul>
<h1>Hall of fame </h1>
<p>Thanks to all the contributors below for helping us solve issues, improve documentation, refactor code, and more! 🙏</p>
<p>| author                                         | change                                                          | link                                                    |
|</p>
]]></content:encoded>
    </item>
    <item>
      <title>This week in Nushell #356</title>
      <link>https://www.nushell.sh/blog/2026-06-19-twin0356.html</link>
      <guid>https://www.nushell.sh/blog/2026-06-19-twin0356.html</guid>
      <source url="https://www.nushell.sh/rss.xml">This week in Nushell #356</source>
      <description>This Week in Nushell #356
Published Friday, 2026-06-19, including PRs merged Friday, 2026-06-12 through Thursday, 2026-06-18.
Nushell


@cptpiepmatz:

serialized CellPath via st...</description>
      <content:encoded><![CDATA[
<p>Published Friday, 2026-06-19, including PRs merged Friday, 2026-06-12 through Thursday, 2026-06-18.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18434" target="_blank" rel="noopener noreferrer">serialized <code>CellPath</code> via string representation (#18434)</a></li>
</ul>
</li>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18422" target="_blank" rel="noopener noreferrer">refactored the parser to consolidate spread operator checking logic (#18422)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18393" target="_blank" rel="noopener noreferrer">refactored type checking code (#18393)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18314" target="_blank" rel="noopener noreferrer">added non UTF-8 text support for <code>url encode</code>/<code>url decode</code> (#18314)</a></li>
</ul>
</li>
<li>
<p>@leeewee:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18418" target="_blank" rel="noopener noreferrer">fixed <code>str index-of --grapheme-clusters</code> panic on a sub-grapheme needle (#18418)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18414" target="_blank" rel="noopener noreferrer">allowed ctrl+c to work better on <code>from json</code> (#18414)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18410" target="_blank" rel="noopener noreferrer">added new <code>random pass</code> command (#18410)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18408" target="_blank" rel="noopener noreferrer">fixed a bug in the end-of-options functionality (#18408)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18397" target="_blank" rel="noopener noreferrer">reverted &quot;pin ratatui-widgets to 0.3.0 to prevent need for --locked&quot; (#18397)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18395" target="_blank" rel="noopener noreferrer">pinned ratatui-widgets to 0.3.0 to prevent need for --locked (#18395)</a></li>
</ul>
</li>
<li>
<p>@Alb-O:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18413" target="_blank" rel="noopener noreferrer">saved ~100 tokens in evaluate_tool.md instructions (#18413)</a></li>
</ul>
</li>
<li>
<p>@WindSoilder:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18407" target="_blank" rel="noopener noreferrer">fixed flatten not renaming for later parent conflicting columns (#18407)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18404" target="_blank" rel="noopener noreferrer">added support for reedline menu input/output modes and list description position (#18404)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18396" target="_blank" rel="noopener noreferrer">added support for reedline's verb-based edit commands in keybindings (Reedlines #1100) (#18396)</a></li>
</ul>
</li>
<li>
<p>@Tyarel8:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18403" target="_blank" rel="noopener noreferrer">deleted deprecated stdlib copy and paste (#18403)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18392" target="_blank" rel="noopener noreferrer">also used experimental_options env variable when loading config (#18392)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18389" target="_blank" rel="noopener noreferrer">refactored exit logic (#18389)</a></li>
</ul>
</li>
<li>
<p>@madjar:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18387" target="_blank" rel="noopener noreferrer">used the response body for the error message (#18387)</a></li>
</ul>
</li>
<li>
<p>@blindFS:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18386" target="_blank" rel="noopener noreferrer">fixed leading pipe character in a pipeline (#18386)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18421" target="_blank" rel="noopener noreferrer">bumped bytesize from 2.3.1 to 2.4.0 (#18421)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18420" target="_blank" rel="noopener noreferrer">bumped itertools from 0.14.0 to 0.15.0 (#18420)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18380" target="_blank" rel="noopener noreferrer">bumped sysinfo from 0.38.4 to 0.39.3 (#18380)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@casedami:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2182" target="_blank" rel="noopener noreferrer">added abbreviations section to reedline (#2182)</a></li>
</ul>
</li>
<li>
<p>@NotTheDr01ds:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2181" target="_blank" rel="noopener noreferrer">TWiN 355 (#2181)</a></li>
</ul>
</li>
<li>
<p>@ethan-hawksley:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2180" target="_blank" rel="noopener noreferrer">fixed a handful of grammar errors and typos (#2180)</a></li>
</ul>
</li>
</ul>
<h2>Awesome Nu</h2>
<ul>
<li>@lassoColombo:
<ul>
<li><a href="https://github.com/nushell/awesome-nu/pull/166" target="_blank" rel="noopener noreferrer">added nu-http-client-generator and nu-http-client-collection (#166)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@blindFS:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1105" target="_blank" rel="noopener noreferrer">fixed tmux history dedup (#1105)</a></li>
</ul>
</li>
<li>
<p>@stormasm:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1104" target="_blank" rel="noopener noreferrer">removed old JT links that are no longer live or available (#1104)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1103" target="_blank" rel="noopener noreferrer">fixed vi mode to complete pending key sequence before custom keybindings (#1103)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1102" target="_blank" rel="noopener noreferrer">fixed vi mode to stop dot-repeat recording itself (#1102)</a></li>
</ul>
</li>
<li>
<p>@philocalyst:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1093" target="_blank" rel="noopener noreferrer">added non-blocking completions in reedline (#1093)</a></li>
</ul>
</li>
<li>
<p>@ymcx:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1078" target="_blank" rel="noopener noreferrer">restored &quot;Fix move to line start in multi-line history entries&quot; (#1078)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>@VioletsOleander:
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1259" target="_blank" rel="noopener noreferrer">fixed support for git add completion for file name that contains whitespace (#1259)</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>This week in Nushell #355</title>
      <link>https://www.nushell.sh/blog/2026-06-12-twin0355.html</link>
      <guid>https://www.nushell.sh/blog/2026-06-12-twin0355.html</guid>
      <source url="https://www.nushell.sh/rss.xml">This week in Nushell #355</source>
      <description>This Week in Nushell #355
Published Saturday, 2026-06-13, including PRs merged Friday, 2026-06-05 through Thursday, 2026-06-11.
Nushell


@ayax79:

allowed polars selectors as i...</description>
      <content:encoded><![CDATA[
<p>Published Saturday, 2026-06-13, including PRs merged Friday, 2026-06-05 through Thursday, 2026-06-11.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@ayax79:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18394" target="_blank" rel="noopener noreferrer">allowed polars selectors as input for all commands that accept expressions as input (#18394)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18383" target="_blank" rel="noopener noreferrer">introduced Polars bitwise commands (#18383)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18349" target="_blank" rel="noopener noreferrer">fixed overshadowing breaking aliases (#18349)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18345" target="_blank" rel="noopener noreferrer">upgraded Polars to 0.54 (#18345)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18391" target="_blank" rel="noopener noreferrer">fixed a problem with glob and rm (#18391)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18388" target="_blank" rel="noopener noreferrer">refactored parser from one big file to smaller files (#18388)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18378" target="_blank" rel="noopener noreferrer">fixed dc-glob issue with using relative paths vs absolute (#18378)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18376" target="_blank" rel="noopener noreferrer">added case-insensitivity to dc-glob and glob command to avoid breaking changes (#18376)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18375" target="_blank" rel="noopener noreferrer">fixed a bug with dc-glob and <code>/some/path/wildcard*</code> (#18375)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18373" target="_blank" rel="noopener noreferrer">allowed dc-glob to expand tilde (#18373)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18372" target="_blank" rel="noopener noreferrer">updated custom command <code>--wrapped</code> to not always convert to glob (#18372)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18368" target="_blank" rel="noopener noreferrer">allowed <code>--context</code> to be one of int or range (#18368)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18367" target="_blank" rel="noopener noreferrer">patched windows globbing in the wrong place (#18367)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18366" target="_blank" rel="noopener noreferrer">added context for the <code>idx search</code> command (#18366)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18357" target="_blank" rel="noopener noreferrer">fixed input/output and example for <code>plugin list</code> (#18357)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18350" target="_blank" rel="noopener noreferrer">added category, search-terms, examples to toolkit.nu (#18350)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18348" target="_blank" rel="noopener noreferrer">handled float ranges better (#18348)</a></li>
</ul>
</li>
<li>
<p>@casedami:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18390" target="_blank" rel="noopener noreferrer">fixed: use new highlighter api for better abbr expansion (#18390)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18377" target="_blank" rel="noopener noreferrer">made <code>Debug</code> for <code>Value</code> more compact by default (#18377)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18371" target="_blank" rel="noopener noreferrer">exposed <code>NuTester</code> internals (#18371)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18361" target="_blank" rel="noopener noreferrer">made <code>nu-test-support</code> compile without <code>os</code> feature (#18361)</a></li>
</ul>
</li>
<li>
<p>@Ashif-107:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18364" target="_blank" rel="noopener noreferrer">deprecated <code>str upcase</code>/<code>str downcase</code> and added <code>str uppercase</code>/<code>str lowercase</code> (#18364)</a></li>
</ul>
</li>
<li>
<p>@blindFS:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18363" target="_blank" rel="noopener noreferrer">fixed(parser): a regression of parse_unit_value where <code>[.foons]</code> not return early (#18363)</a></li>
</ul>
</li>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18355" target="_blank" rel="noopener noreferrer">fixed stor return type (#18355)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18343" target="_blank" rel="noopener noreferrer">fixed(use): module descriptions should be properly formatted (#18343)</a></li>
</ul>
</li>
<li>
<p>@zelshahawy:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18354" target="_blank" rel="noopener noreferrer">fixed typos in developer docs (#18354)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18382" target="_blank" rel="noopener noreferrer">bumped kdl from 6.5.0 to 6.7.1 (#18382)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18381" target="_blank" rel="noopener noreferrer">bumped mq-markdown from 0.5.26 to 0.6.0 (#18381)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18379" target="_blank" rel="noopener noreferrer">bumped crate-ci/typos from 1.47.1 to 1.47.2 (#18379)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18336" target="_blank" rel="noopener noreferrer">bumped crate-ci/typos from 1.46.3 to 1.47.1 (#18336)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1101" target="_blank" rel="noopener noreferrer">fixed(editor): made horizontal grapheme motion line-aware via rest policy (#1101)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1100" target="_blank" rel="noopener noreferrer">refactored(editor): unified motions on a verb + target vocabulary (#1100)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1098" target="_blank" rel="noopener noreferrer">tests(painter): added wrapper enum to allow tests to write to sink (#1098)</a></li>
</ul>
</li>
<li>
<p>@Alb-O:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1097" target="_blank" rel="noopener noreferrer">fixed(painting): preserved leading CRLF in no-color rendering (#1097)</a></li>
</ul>
</li>
<li>
<p>@casedami:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1094" target="_blank" rel="noopener noreferrer">refactored: abbreviation expansion trait logic (#1094)</a></li>
</ul>
</li>
<li>
<p>@reubeno:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1090" target="_blank" rel="noopener noreferrer">perf: minimized cursor::position queries (#1090)</a></li>
</ul>
</li>
<li>
<p>@a-rookie-of-C-language:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1044" target="_blank" rel="noopener noreferrer">feat(list_menu): added DescriptionPosition to control description place… (#1044)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@guluo2016:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2179" target="_blank" rel="noopener noreferrer">updated plugin list docs: replaced is_running with status field (#2179)</a></li>
</ul>
</li>
<li>
<p>@NotTheDr01ds:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2178" target="_blank" rel="noopener noreferrer">TWiN 354 (#2178)</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>This week in Nushell #354</title>
      <link>https://www.nushell.sh/blog/2026-06-05-twin0354.html</link>
      <guid>https://www.nushell.sh/blog/2026-06-05-twin0354.html</guid>
      <source url="https://www.nushell.sh/rss.xml">This week in Nushell #354</source>
      <description>This Week in Nushell #354
Published Friday, 2026-06-05, including PRs merged Friday, 2026-05-29 through Thursday, 2026-06-04.
Nushell


@Bahex:

fixed(table): alignments of expa...</description>
      <content:encoded><![CDATA[
<p>Published Friday, 2026-06-05, including PRs merged Friday, 2026-05-29 through Thursday, 2026-06-04.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18344" target="_blank" rel="noopener noreferrer">fixed(table): alignments of <code>expand</code> and <code>header_on_separator</code> (#18344)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18342" target="_blank" rel="noopener noreferrer">feat(ansi gradient): added completions for named gradients (#18342)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18313" target="_blank" rel="noopener noreferrer">refactored: <code>get_locale_from_env_vars</code> in <code>nu-utils</code> (#18313)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18308" target="_blank" rel="noopener noreferrer">consolidated column handling: record &amp; table; SyntaxShape &amp; Type (#18308)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18303" target="_blank" rel="noopener noreferrer">made submodules no longer implicitly imported (#18303)</a></li>
</ul>
</li>
<li>
<p>@puneetdixit200:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18340" target="_blank" rel="noopener noreferrer">fixed ANSI-aware truncation in <code>input list</code> (#18310) (#18340)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18339" target="_blank" rel="noopener noreferrer">added <code>--full-reparse/-f</code> to <code>run</code> command (#18339)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18335" target="_blank" rel="noopener noreferrer">chore: updated Rust version to 1.94.1 in Cargo.toml and rust-toolchain.toml (#18335)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18327" target="_blank" rel="noopener noreferrer">prevented <code>--output</code> from being used in <code>config_mode</code> in <code>explore config</code> command (#18327)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18322" target="_blank" rel="noopener noreferrer">bumped <code>uu_*</code> deps to 0.9.0 (#18322)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18306" target="_blank" rel="noopener noreferrer">updated <code>ignore</code> to really ignore 😃 (#18306)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18301" target="_blank" rel="noopener noreferrer">updated REPL loop to synchronize cursor position and buffer contents (#18301)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18299" target="_blank" rel="noopener noreferrer">implemented POSIX Guideline 10 <code>--</code> end-of-options delimiter (#18299)</a></li>
</ul>
</li>
<li>
<p>@LeonidasZhak:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18338" target="_blank" rel="noopener noreferrer">docs: added binary data examples to hash md5/sha256 (#18338)</a></li>
</ul>
</li>
<li>
<p>@dmtrKovalenko:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18332" target="_blank" rel="noopener noreferrer">chore: upgraded to fff 0.9 and reenabled watcher (#18332)</a></li>
</ul>
</li>
<li>
<p>@Mrfiregem:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18331" target="_blank" rel="noopener noreferrer">fixed simple Clippy error (#18331)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18295" target="_blank" rel="noopener noreferrer">fix(completions): subcommand completions are now wrapped in quotes for <code>which</code> (#18295)</a></li>
</ul>
</li>
<li>
<p>@ian-h-chamberlain:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18330" target="_blank" rel="noopener noreferrer">fixed nix flake build (rust toolchain + workspace package version) (#18330)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18325" target="_blank" rel="noopener noreferrer">nu_style: supported fixed color lookups (#18325)</a></li>
</ul>
</li>
<li>
<p>@zhiburt:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18320" target="_blank" rel="noopener noreferrer">bumped tabled to 0.21 (#18320)</a></li>
</ul>
</li>
<li>
<p>@stormasm:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18317" target="_blank" rel="noopener noreferrer">removed warning on PipelineMetadata (#18317)</a></li>
</ul>
</li>
<li>
<p>@ayax79:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18312" target="_blank" rel="noopener noreferrer">introduced polars map-batches (#18312)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18311" target="_blank" rel="noopener noreferrer">fixed packaging (#18311)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18307" target="_blank" rel="noopener noreferrer">bumped to 0.113.1 (#18307)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18274" target="_blank" rel="noopener noreferrer">bumped to dev version (#18274)</a></li>
</ul>
</li>
<li>
<p>@hustcer:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18304" target="_blank" rel="noopener noreferrer">chore: fixed nightly release workflow &amp; upgraded Nu for workflows (#18304)</a></li>
</ul>
</li>
<li>
<p>@sholderbach:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18285" target="_blank" rel="noopener noreferrer">chore: omitted some unnecessary allocations from the parser (#18285)</a></li>
</ul>
</li>
<li>
<p>@guluo2016:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18282" target="_blank" rel="noopener noreferrer">fixed inaccurate error message when using negative index in cell path (#18282)</a></li>
</ul>
</li>
<li>
<p>@cho-minsung:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18275" target="_blank" rel="noopener noreferrer">fix(math abs): returned overflow error instead of panicking on i64::MIN (#18275)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18294" target="_blank" rel="noopener noreferrer">build(deps): bumped crate-ci/typos from 1.46.2 to 1.46.3 (#18294)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1092" target="_blank" rel="noopener noreferrer">refactor(completer)!: no longer require Send on the Completer trait (#1092)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1091" target="_blank" rel="noopener noreferrer">test(vi): expanded parse_event coverage as refactor safety net (#1091)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1071" target="_blank" rel="noopener noreferrer">added <code>InputMode</code> / <code>OutputMode</code> enums for menu settings (#1071)</a></li>
</ul>
</li>
<li>
<p>@skull-squadron:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/929" target="_blank" rel="noopener noreferrer">fixed default prompt path (#929)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>
<p>@kaascevich:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1258" target="_blank" rel="noopener noreferrer">added swift-bundler completion script (#1258)</a></li>
</ul>
</li>
<li>
<p>@Hentioe:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1257" target="_blank" rel="noopener noreferrer">git-completions: added more short options (#1257)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2177" target="_blank" rel="noopener noreferrer">release notes for <code>v0.113.1</code> (#2177)</a></li>
</ul>
</li>
<li>
<p>@NotTheDr01ds:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2176" target="_blank" rel="noopener noreferrer">TWiN 353 (#2176)</a></li>
</ul>
</li>
<li>
<p>@samoylovfp:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2167" target="_blank" rel="noopener noreferrer">documented the percent sigil (#2167)</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>Nushell 0.113.1</title>
      <link>https://www.nushell.sh/blog/2026-05-30-nushell_v0_113_1.html</link>
      <guid>https://www.nushell.sh/blog/2026-05-30-nushell_v0_113_1.html</guid>
      <source url="https://www.nushell.sh/rss.xml">Nushell 0.113.1</source>
      <description>Nushell 0.113.1
Today, we&amp;apos;re releasing version 0.113.1 of Nu. This patch release fixes issues introduced in 0.113.0, including YAML string quoting behavior, reliability problems...</description>
      <content:encoded><![CDATA[
<p>Today, we're releasing version 0.113.1 of Nu. This patch release fixes issues introduced in 0.113.0, including YAML string quoting behavior, reliability problems across the <code>idx</code> command family, and a REPL regression in <code>commandline edit</code>.</p>
<h1>Where to get it</h1>
<p>Nu 0.113.1 is available as <a href="https://github.com/nushell/nushell/releases/tag/0.113.1" target="_blank" rel="noopener noreferrer">pre-built binaries</a> or from <a href="https://crates.io/crates/nu" target="_blank" rel="noopener noreferrer">crates.io</a>. If you have Rust installed you can install it using <code>cargo install nu</code>.</p>
<p>As part of this release, we also publish a set of optional <a href="https://www.nushell.sh/book/plugins.html" target="_blank" rel="noopener noreferrer">plugins</a> you can install and use with Nushell.</p>

<h1>Changes </h1>
<h2>Other changes </h2>
<h3>More idiomatic YAML output with smarter string quoting  </h3>
<p>The previous emitter always quoted string values, which produced valid YAML but was more conservative than necessary and less aligned with YAML 1.2 plain-scalar rules.</p>
<p>This change makes output:</p>
<ul>
<li>more readable</li>
<li>closer to idiomatic YAML</li>
<li>more spec-aligned for plain scalars</li>
<li>still safe for roundtripping by quoting values that would otherwise be reinterpreted as non-strings</li>
</ul>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-yaml" data-highlighter="shiki" data-ext="yaml" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-yaml"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">value</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'off'</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">path</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'/dev/stdout'</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">listen</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'0.0.0.0:8444,0.0.0.0:8445 ssl'</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">name</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'kong'</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">kind</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'Deployment'</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-yaml" data-highlighter="shiki" data-ext="yaml" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-yaml"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">value</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'off'</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">path</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">/dev/stdout</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">listen</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">0.0.0.0:8444,0.0.0.0:8445 ssl</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">name</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">kong</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">kind</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">Deployment</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Multiline strings now emit as">
    <span>Multiline strings now emit as</span>
  </div>
  <div class="language-yaml" data-highlighter="shiki" data-ext="yaml" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-yaml"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">string</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">-</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  Hello</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  world</span></span></code></pre>
</div>
</div><h2>Bug fixes </h2>
<h3><code>idx</code> dependency update and command reliability improvements  </h3>
<p>Update the <code>idx</code> fff-search dependency and fix bugs.</p>
<ul>
<li><code>idx init . --wait</code> now properly blocks</li>
<li><code>idx init</code> now has a <code>--follow-links</code> switch</li>
<li><code>idx status</code> reports accurate counts after indexing</li>
<li><code>idx import</code> fully restores snapshot for queries — The <code>idx import</code> command now properly restores snapshots to enable all query operations. Imported snapshots remain queryable even if the original project files have been deleted or moved.</li>
<li><code>idx files</code> works on imported snapshots</li>
<li><code>idx files</code> has a <code>query</code> parameter now for easy searching (renamed from <code>path</code> for consistency)</li>
<li><code>idx dirs</code> works on imported snapshots</li>
<li><code>idx dirs</code> has a <code>query</code> parameter now for easy searching</li>
<li><code>idx find</code> (fuzzy search) works on imported snapshots</li>
<li><code>idx search</code> (content search) works on imported snapshots</li>
<li>changed output to nushell values for commands that return tables</li>
<li>updated some help strings to be more helpful</li>
</ul>
<p>Files are ignored during indexing due to the use of the <code>ignore</code> crate. <a href="https://docs.rs/ignore/latest/ignore/struct.WalkBuilder.html#ignore-rules" target="_blank" rel="noopener noreferrer">These are the rules for ignore</a>. There's no way to override this in the current version.</p>
<h3>Other fixes </h3>
<ul>
<li>Fixed a regression where <code>commandline edit</code> did not update the commandline in REPL on 0.113.0. <code>commandline edit</code> now correctly updates the visible prompt buffer again. (<a href="https://github.com/nushell/nushell/pull/18301" target="_blank" rel="noopener noreferrer">#18301</a>)</li>
</ul>
<h1>Hall of fame </h1>
<p>Thanks to all the contributors below for helping us solve issues, improve documentation, refactor code, and more! 🙏</p>
<p>| author                                 | change                                                         | link                                                    |
|</p>
]]></content:encoded>
    </item>
    <item>
      <title>This week in Nushell #353</title>
      <link>https://www.nushell.sh/blog/2026-05-29-twin0353.html</link>
      <guid>https://www.nushell.sh/blog/2026-05-29-twin0353.html</guid>
      <source url="https://www.nushell.sh/rss.xml">This week in Nushell #353</source>
      <description>This Week in Nushell #353
Published Friday, 2026-05-29, including PRs merged Friday, 2026-05-22 through Thursday, 2026-05-28.
An as-expected slower-than-usual week due to 0.113&amp;apos;...</description>
      <content:encoded><![CDATA[
<p>Published Friday, 2026-05-29, including PRs merged Friday, 2026-05-22 through Thursday, 2026-05-28.</p>
<p>An as-expected slower-than-usual week due to 0.113's release (Yay!). That said, your future reedline
prompts may be slightly less boxy, and definitely more brackety, in the future with @speicherwerk's <code>&gt;</code> change
in Reedline #1043.</p>
<p>And a random shout-out to @Kissaki - Thank you for your continued improvements to Nushell and our Documentation!</p>
<p>And as always, thank you to all our Nushell contributors, whether first-timers or Nushell greybeards, young or old,
human or dependabot.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18298" target="_blank" rel="noopener noreferrer">refactored YAML handling to improve quoting logic and add support for multiline strings (#18298)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18284" target="_blank" rel="noopener noreferrer">updated to 0.8.4, added follow-symlinks, fixed <code>idx</code> family bugs (#18284)</a></li>
</ul>
</li>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18286" target="_blank" rel="noopener noreferrer">consolidated version and other metadata in top level Cargo.toml (#18286)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18268" target="_blank" rel="noopener noreferrer">made <code>peek</code> return the actual type of values (#18268)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18273" target="_blank" rel="noopener noreferrer">prepared release (#18273)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18270" target="_blank" rel="noopener noreferrer">fixed some build issues (#18270)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1088" target="_blank" rel="noopener noreferrer">added selection styling example (#1088)</a></li>
</ul>
</li>
<li>
<p>@Juhan280:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1086" target="_blank" rel="noopener noreferrer">removed deprecated functions and Display impl (#1086)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1085" target="_blank" rel="noopener noreferrer">bumped minor version (#1085)</a></li>
</ul>
</li>
<li>
<p>@speicherwerk:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1043" target="_blank" rel="noopener noreferrer">updated default prompt to use <code>&gt;</code> character (#1043)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@Kissaki:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2174" target="_blank" rel="noopener noreferrer">fixed fileop anchor links (#2174)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2173" target="_blank" rel="noopener noreferrer">added release notes for v0.113.0 (#2173)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2171" target="_blank" rel="noopener noreferrer">reverted &quot;support extracting nu code snippets into standalone .nu files for better downstream trackability&quot; (#2171)</a></li>
</ul>
</li>
<li>
<p>@NotTheDr01ds:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2170" target="_blank" rel="noopener noreferrer">published TWiN 352 (#2170)</a></li>
</ul>
</li>
<li>
<p>@hustcer:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2168" target="_blank" rel="noopener noreferrer">refreshed command docs for v0.113 (#2168)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2175" target="_blank" rel="noopener noreferrer">bumped tmp from 0.2.5 to 0.2.7 (#2175)</a></li>
</ul>
</li>
</ul>
<h2>VSCode Extension</h2>
<ul>
<li>@mst-mkt:
<ul>
<li><a href="https://github.com/nushell/vscode-nushell-lang/pull/232" target="_blank" rel="noopener noreferrer">fixed syntax highlighting broken for record keys containing brackets (#232)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>
<p>@Tyarel8:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1256" target="_blank" rel="noopener noreferrer">refactored output handling of <code>task log</code> in <code>task.nu</code> (#1256)</a></li>
</ul>
</li>
<li>
<p>@hhfgy1:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1255" target="_blank" rel="noopener noreferrer">fixed scoop to handle non-UTF-8 encoding in scoop list output (#1255)</a></li>
</ul>
</li>
</ul>
<h2>nufmt</h2>
<ul>
<li>@fdncred:
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/197" target="_blank" rel="noopener noreferrer">fixed side-comments, added tabs or spaces functionality (#197)</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>Nushell 0.113.0</title>
      <link>https://www.nushell.sh/blog/2026-05-23-nushell_v0_113_0.html</link>
      <guid>https://www.nushell.sh/blog/2026-05-23-nushell_v0_113_0.html</guid>
      <source url="https://www.nushell.sh/rss.xml">Nushell 0.113.0</source>
      <description>Nushell 0.113.0
Today, we&amp;apos;re releasing version 0.113.0 of Nu. This release adds fast in-memory indexing and search via idx, stream inspection without collection via peek, struct...</description>
      <content:encoded><![CDATA[
<p>Today, we're releasing version 0.113.0 of Nu. This release adds fast in-memory indexing and search via <code>idx</code>, stream inspection without collection via <code>peek</code>, structured verbose output for file operations, and a more concise default output mode for <code>from md</code>.</p>
<h1>Where to get it</h1>
<p>Nu 0.113.0 is available as <a href="https://github.com/nushell/nushell/releases/tag/0.113.0" target="_blank" rel="noopener noreferrer">pre-built binaries</a> or from <a href="https://crates.io/crates/nu" target="_blank" rel="noopener noreferrer">crates.io</a>. If you have Rust installed you can install it using <code>cargo install nu</code>.</p>
<p>As part of this release, we also publish a set of optional <a href="https://www.nushell.sh/book/plugins.html" target="_blank" rel="noopener noreferrer">plugins</a> you can install and use with Nushell.</p>

<h1>Highlights and themes of this release </h1>
<h2>Fast file search with <code>idx</code> </h2>
<p><a href="https://github.com/fdncred" target="_blank" rel="noopener noreferrer">@fdncred</a> introduced a new <code>idx</code> command family for in-memory indexing and search. It gives you fast file and directory lookup (<code>idx files</code>, <code>idx dirs</code>, <code>idx find</code>) and even content search (<code>idx search</code>) without having to rescan every time.</p>
<p>You can also export and import snapshots, which is especially handy when you want to persist an index and restore it later.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">idx</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> init</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> .</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">wait</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">idx</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> find</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> config</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">files</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">idx</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> search</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">regex</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> 'def\s+main'</span></span></code></pre>
</div><p>Take a look at all the commands <a href="#add-idx-family-of-commands-for-in-memory-indexing">here</a>.</p>
<h2>Stream detective mode: <code>peek</code> </h2>
<p>Working with streams is one of Nushell's superpowers, and now you can inspect them without forcing a collect. The new <code>peek</code> command from <a href="https://github.com/Bahex" target="_blank" rel="noopener noreferrer">@Bahex</a> exposes metadata and sample values so you can make smarter pipeline decisions while keeping stream behavior intact.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">..</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> peek</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> metadata access</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {|</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">md</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">|</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">    if</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $md.peek.stream</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">        # keep streaming</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    } </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">else</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">        $in</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div><p>See the detailed examples <a href="#new-peek-command-for-inspecting-streams-without-collecting">here</a>.</p>
<h2>Verbose file operations now return tables </h2>
<p>Verbose filesystem commands are now much easier to script against, with improvements from <a href="https://github.com/WindSoilder" target="_blank" rel="noopener noreferrer">@WindSoilder</a>. Instead of only human-readable text, <code>mkdir -v</code>, <code>mv -v</code>, and <code>rm -v</code> now return structured table data you can filter, transform, and report on directly.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">mkdir</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> -</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">v</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> foo</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> bar</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> where</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> created</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> ==</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66"> true</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">mv</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> -</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">v</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> before.txt</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> after.txt</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> get</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> 0.message</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">rm</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> -</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">v</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> missing.txt</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> existing.txt</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> where</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> deleted</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> ==</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66"> false</span></span></code></pre>
</div><p>Read more about <code>mkdir</code>/<code>mv</code> <a href="#mkdir-v-now-returns-a-table">here</a> and <code>rm</code> <a href="#rm-v-returns-structured-data">here</a>.</p>
<h2>Markdown, now with less AST noise </h2>
<p>With work by <a href="https://github.com/fdncred" target="_blank" rel="noopener noreferrer">@fdncred</a>, <code>from md</code> now defaults to a more concise, human-friendly output mode, which makes it much nicer for day-to-day markdown processing. The previous full AST-style output is still available when you need deep detail via <code>--verbose</code>.</p>
<p>If you've been experimenting with markdown parsing since the last release, this should feel a lot more ergonomic out of the box.</p>
<p>Read more <a href="#from-md-now-produces-a-more-concise-output-by-default">here</a>.</p>
<!-- NOTE: if you wanna write a section about a breaking change, when it's a very important one,
    please add the following snippet to have a "warning" banner :)
    > see [an example](https://www.nushell.sh/blog/2023-09-19-nushell_0_85_0.html#pythonesque-operators-removal)

    ```md
    ::: warning Breaking change
    See a full overview of the [breaking changes](#breaking-changes)
    :::
    ```
-->
<!-- NOTE: see https://vuepress.github.io/reference/default-theme/markdown.html#custom-containers
    for the list of available *containers*
-->
<h1>Changes </h1>
<h2>Breaking changes </h2>
<h3>Updated <code>kill</code> signal shorthand handling  </h3>
<div class="hint-container note">
<p class="hint-container-title">Note</p>
<p>This does not apply to Windows.</p>
</div>
<p>Allow <code>kill -0</code> to show an error instead of killing nushell. Disallow commands like <code>kill -9 pid</code> because syntax should be <code>kill -s 9 pid</code>.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">kill</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> -0</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::incorrect_value</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Incorrect value.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #2:1:1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ kill -0</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">──┬─</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold"> ─┬</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·   </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">│</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">   ╰── negative pid shorthand is not supported; use `kill -s 0 &#x3C;pid>`</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·   </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── encountered here</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span></code></pre>
</div><h3>Removed implicit line splitting of byte streams in <code>parse</code>  </h3>
<p><code>parse</code> command, when receiving byte or string stream input (i.e. from an external process or file), used to implicitly split the input into lines. With this release it will collect such streams before processing them.</p>
<p>While the line-by-line behavior is closer to how tools like <code>sed</code>, <code>grep</code> and <code>awk</code> operate, it was confusing as <code>parse</code> worked differently between working with a string <em>stream</em> input and working with a string <em>value</em> input.</p>
<table><tbody>
<tr><td>Input</td><td width="1000">
<table><tbody>
<tr><td><code>file.txt</code></td></tr>
<tr><td width="500">
<div class="language-" data-highlighter="shiki" data-ext style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-"><span class="line"><span>1. one</span></span>
<span class="line"><span>2. two and</span></span>
<span class="line"><span>   a half</span></span>
<span class="line"><span>3. three</span></span>
<span class="line"><span>4. four and</span></span>
<span class="line"><span>   some more</span></span></code></pre>
</div></td></tr>
</tbody></table>
</td></tr>
<tr><td>Code</td><td width="500">
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">open</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> file.txt</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> parse</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> -</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">r</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> r#'(?ms)^(?&#x3C;n>\d+)\. (?&#x3C;text>.*?)(?=$\s^\d|\Z)'#</span></span></code></pre>
</div></td></tr>
<tr><td>Output</td><td>
<table><tbody>
<tr><td>Before</td><td>After</td></tr>
<tr>
<td width="300">
<div class="language-" data-highlighter="shiki" data-ext style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-"><span class="line"><span>╭───┬───┬──────────╮</span></span>
<span class="line"><span>│ # │ n │   text   │</span></span>
<span class="line"><span>├───┼───┼──────────┤</span></span>
<span class="line"><span>│ 0 │ 1 │ one      │</span></span>
<span class="line"><span>│ 1 │ 2 │ two and  │</span></span>
<span class="line"><span>│ 2 │ 3 │ three    │</span></span>
<span class="line"><span>│ 3 │ 4 │ four and │</span></span>
<span class="line"><span>╰───┴───┴──────────╯</span></span></code></pre>
</div></td><td width="300">
<div class="language- line-numbers-mode" data-highlighter="shiki" data-ext style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-"><span class="line"><span>╭───┬───┬──────────────╮</span></span>
<span class="line"><span>│ # │ n │     text     │</span></span>
<span class="line"><span>├───┼───┼──────────────┤</span></span>
<span class="line"><span>│ 0 │ 1 │ one          │</span></span>
<span class="line"><span>│ 1 │ 2 │ two and      │</span></span>
<span class="line"><span>│   │   │    a half    │</span></span>
<span class="line"><span>│ 2 │ 3 │ three        │</span></span>
<span class="line"><span>│ 3 │ 4 │ four and     │</span></span>
<span class="line"><span>│   │   │    some more │</span></span>
<span class="line"><span>╰───┴───┴──────────────╯</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></td>
</tr>
</tbody></table>
</td></tr>
</tbody></table>
<p>To process the input line-by-line all you need to do is run the stream through <code>lines</code>:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">..</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> lines</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> parse</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> -</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">r</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> '...'</span></span></code></pre>
</div><h3><code>mkdir -v</code> now returns a table  </h3>
<p>Previously mkdir -v returned a string, now it returns a table.</p>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> x</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">mkdir</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -v</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> foo</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> bar</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">mkdir: created directory '/tmp/foo'</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">mkdir: created directory '/tmp/bar'</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$x</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">foo bar</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> x</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">mkdir</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -v</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> foo</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> bar</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$x</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬──────────┬─────────┬───────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">path</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">created</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">error</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼──────────┼─────────┼───────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ /tmp/foo │ </span><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">true</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    │       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ /tmp/bar │ </span><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">true</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    │       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴──────────┴─────────┴───────╯</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="<code>mv -v</code> returns a table too">
    <span><code>mv -v</code> returns a table too</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">touch</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> before.txt</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">mv</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -v</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> before.txt</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> after.txt</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬─────────────────┬────────────────┬────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │     </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">source</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">      │  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">destination</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │      </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">message</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼─────────────────┼────────────────┼────────────────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ /tmp/before.txt │ /tmp/after.txt │ mv-verbose-renamed │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴─────────────────┴────────────────┴────────────────────╯</span></span></code></pre>
</div>
</div><h3>Other breaking changes </h3>
<ul>
<li><code>from xlsx</code> now supports <code>--header-row</code> for specifying the 0-indexed index of the row from which to read column names. Default is the first non-empty row, which is a breaking change. Specify <code>--header-row null</code> for legacy behavior (i.e., no header). (<a href="https://github.com/nushell/nushell/pull/18189" target="_blank" rel="noopener noreferrer">#18189</a>)</li>
</ul>
<h2>Additions </h2>
<h3>Preserve TOML comments when saving files  </h3>
<p>TOML files now preserve comments, formatting, and inline tables when modified and saved.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">open</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> Cargo.toml</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> update</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> version</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "1.1.0"</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> save</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> Cargo.toml</span></span></code></pre>
</div><p>This should keep all comments intact.</p>
<h3>Enhance <code>ansi gradient</code> command with named gradients and improved options  </h3>
<p>You can now use named gradients with <code>ansi gradient</code>.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'Nushell Gradient!'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> ansi gradient</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --fgnamed</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> rainbow</span></span>
<span class="line"><span style="color:#bd1354;--shiki-light:#bd1354;--shiki-dark:#bd1354">N</span><span style="color:#c82c44;--shiki-light:#c82c44;--shiki-dark:#c82c44">u</span><span style="color:#d34635;--shiki-light:#d34635;--shiki-dark:#d34635">s</span><span style="color:#df6126;--shiki-light:#df6126;--shiki-dark:#df6126">h</span><span style="color:#e27520;--shiki-light:#e27520;--shiki-dark:#e27520">e</span><span style="color:#e2871e;--shiki-light:#e2871e;--shiki-dark:#e2871e">l</span><span style="color:#e1971d;--shiki-light:#e1971d;--shiki-dark:#e1971d">l</span><span style="color:#a2a421;--shiki-light:#a2a421;--shiki-dark:#a2a421"> G</span><span style="color:#6ca326;--shiki-light:#6ca326;--shiki-dark:#6ca326">r</span><span style="color:#38a22a;--shiki-light:#38a22a;--shiki-dark:#38a22a">a</span><span style="color:#2f8f59;--shiki-light:#2f8f59;--shiki-dark:#2f8f59">d</span><span style="color:#317792;--shiki-light:#317792;--shiki-dark:#317792">i</span><span style="color:#3460cb;--shiki-light:#3460cb;--shiki-dark:#3460cb">e</span><span style="color:#394ce0;--shiki-light:#394ce0;--shiki-dark:#394ce0">n</span><span style="color:#423dc1;--shiki-light:#423dc1;--shiki-dark:#423dc1">t</span><span style="color:#4c2ea1;--shiki-light:#4c2ea1;--shiki-dark:#4c2ea1">!</span></span></code></pre>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">ansi gradient</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --list</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭────┬───────────┬──────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">name</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    │       </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">text</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├────┼───────────┼──────────────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ atlast    │ </span><span style="color:#feac5e;--shiki-light:#feac5e;--shiki-dark:#feac5e">N</span><span style="color:#f6a96c;--shiki-light:#f6a96c;--shiki-dark:#f6a96c">u</span><span style="color:#efa87a;--shiki-light:#efa87a;--shiki-dark:#efa87a">s</span><span style="color:#e8a588;--shiki-light:#e8a588;--shiki-dark:#e8a588">h</span><span style="color:#e2a497;--shiki-light:#e2a497;--shiki-dark:#e2a497">e</span><span style="color:#dba2a5;--shiki-light:#dba2a5;--shiki-dark:#dba2a5">l</span><span style="color:#d4a0b3;--shiki-light:#d4a0b3;--shiki-dark:#d4a0b3">l</span><span style="color:#c79dd0;--shiki-light:#c79dd0;--shiki-dark:#c79dd0"> G</span><span style="color:#b7a1cf;--shiki-light:#b7a1cf;--shiki-dark:#b7a1cf">r</span><span style="color:#a7a5ce;--shiki-light:#a7a5ce;--shiki-dark:#a7a5ce">a</span><span style="color:#98aacd;--shiki-light:#98aacd;--shiki-dark:#98aacd">d</span><span style="color:#88aecc;--shiki-light:#88aecc;--shiki-dark:#88aecc">i</span><span style="color:#78b2cb;--shiki-light:#78b2cb;--shiki-dark:#78b2cb">e</span><span style="color:#69b7ca;--shiki-light:#69b7ca;--shiki-dark:#69b7ca">n</span><span style="color:#59bbc9;--shiki-light:#59bbc9;--shiki-dark:#59bbc9">t</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ crystal   │ </span><span style="color:#bdfff3;--shiki-light:#bdfff3;--shiki-dark:#bdfff3">N</span><span style="color:#b6fbec;--shiki-light:#b6fbec;--shiki-dark:#b6fbec">u</span><span style="color:#b0f7e7;--shiki-light:#b0f7e7;--shiki-dark:#b0f7e7">s</span><span style="color:#a9f3e1;--shiki-light:#a9f3e1;--shiki-dark:#a9f3e1">h</span><span style="color:#a3efdc;--shiki-light:#a3efdc;--shiki-dark:#a3efdc">e</span><span style="color:#9debd7;--shiki-light:#9debd7;--shiki-dark:#9debd7">l</span><span style="color:#97e7d0;--shiki-light:#97e7d0;--shiki-dark:#97e7d0">l</span><span style="color:#8be0c6;--shiki-light:#8be0c6;--shiki-dark:#8be0c6"> G</span><span style="color:#84dcc0;--shiki-light:#84dcc0;--shiki-dark:#84dcc0">r</span><span style="color:#7ed8bb;--shiki-light:#7ed8bb;--shiki-dark:#7ed8bb">a</span><span style="color:#78d4b4;--shiki-light:#78d4b4;--shiki-dark:#78d4b4">d</span><span style="color:#72d0af;--shiki-light:#72d0af;--shiki-dark:#72d0af">i</span><span style="color:#6cccaa;--shiki-light:#6cccaa;--shiki-dark:#6cccaa">e</span><span style="color:#65c8a4;--shiki-light:#65c8a4;--shiki-dark:#65c8a4">n</span><span style="color:#5fc49f;--shiki-light:#5fc49f;--shiki-dark:#5fc49f">t</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ teen      │ </span><span style="color:#77a1d3;--shiki-light:#77a1d3;--shiki-dark:#77a1d3">N</span><span style="color:#77a5d1;--shiki-light:#77a5d1;--shiki-dark:#77a5d1">u</span><span style="color:#77aad0;--shiki-light:#77aad0;--shiki-dark:#77aad0">s</span><span style="color:#77b0ce;--shiki-light:#77b0ce;--shiki-dark:#77b0ce">h</span><span style="color:#77b5ce;--shiki-light:#77b5ce;--shiki-dark:#77b5ce">e</span><span style="color:#77bacd;--shiki-light:#77bacd;--shiki-dark:#77bacd">l</span><span style="color:#77c0cb;--shiki-light:#77c0cb;--shiki-dark:#77c0cb">l</span><span style="color:#79cbca;--shiki-light:#79cbca;--shiki-dark:#79cbca"> G</span><span style="color:#85c1c5;--shiki-light:#85c1c5;--shiki-dark:#85c1c5">r</span><span style="color:#93b9c2;--shiki-light:#93b9c2;--shiki-dark:#93b9c2">a</span><span style="color:#a1afbf;--shiki-light:#a1afbf;--shiki-dark:#a1afbf">d</span><span style="color:#afa7bc;--shiki-light:#afa7bc;--shiki-dark:#afa7bc">i</span><span style="color:#bc9eb7;--shiki-light:#bc9eb7;--shiki-dark:#bc9eb7">e</span><span style="color:#ca95b4;--shiki-light:#ca95b4;--shiki-dark:#ca95b4">n</span><span style="color:#d88cb1;--shiki-light:#d88cb1;--shiki-dark:#d88cb1">t</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ mind      │ </span><span style="color:#473b7b;--shiki-light:#473b7b;--shiki-dark:#473b7b">N</span><span style="color:#44437f;--shiki-light:#44437f;--shiki-dark:#44437f">u</span><span style="color:#424d85;--shiki-light:#424d85;--shiki-dark:#424d85">s</span><span style="color:#3f558a;--shiki-light:#3f558a;--shiki-dark:#3f558a">h</span><span style="color:#3d5f90;--shiki-light:#3d5f90;--shiki-dark:#3d5f90">e</span><span style="color:#3b6896;--shiki-light:#3b6896;--shiki-dark:#3b6896">l</span><span style="color:#38719b;--shiki-light:#38719b;--shiki-dark:#38719b">l</span><span style="color:#3584a7;--shiki-light:#3584a7;--shiki-dark:#3584a7"> G</span><span style="color:#348da9;--shiki-light:#348da9;--shiki-dark:#348da9">r</span><span style="color:#3397ac;--shiki-light:#3397ac;--shiki-dark:#3397ac">a</span><span style="color:#33a0af;--shiki-light:#33a0af;--shiki-dark:#33a0af">d</span><span style="color:#32abb2;--shiki-light:#32abb2;--shiki-dark:#32abb2">i</span><span style="color:#31b4b4;--shiki-light:#31b4b4;--shiki-dark:#31b4b4">e</span><span style="color:#31beb7;--shiki-light:#31beb7;--shiki-dark:#31beb7">n</span><span style="color:#30c7ba;--shiki-light:#30c7ba;--shiki-dark:#30c7ba">t</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ morning   │ </span><span style="color:#ff5f6d;--shiki-light:#ff5f6d;--shiki-dark:#ff5f6d">N</span><span style="color:#fe656d;--shiki-light:#fe656d;--shiki-dark:#fe656d">u</span><span style="color:#fe6b6d;--shiki-light:#fe6b6d;--shiki-dark:#fe6b6d">s</span><span style="color:#fe716d;--shiki-light:#fe716d;--shiki-dark:#fe716d">h</span><span style="color:#fe776d;--shiki-light:#fe776d;--shiki-dark:#fe776d">e</span><span style="color:#fe7d6d;--shiki-light:#fe7d6d;--shiki-dark:#fe7d6d">l</span><span style="color:#fe846e;--shiki-light:#fe846e;--shiki-dark:#fe846e">l</span><span style="color:#fe906e;--shiki-light:#fe906e;--shiki-dark:#fe906e"> G</span><span style="color:#fe966e;--shiki-light:#fe966e;--shiki-dark:#fe966e">r</span><span style="color:#fe9c6e;--shiki-light:#fe9c6e;--shiki-dark:#fe9c6e">a</span><span style="color:#fea36f;--shiki-light:#fea36f;--shiki-dark:#fea36f">d</span><span style="color:#fea96f;--shiki-light:#fea96f;--shiki-dark:#fea96f">i</span><span style="color:#feaf6f;--shiki-light:#feaf6f;--shiki-dark:#feaf6f">e</span><span style="color:#feb56f;--shiki-light:#feb56f;--shiki-dark:#feb56f">n</span><span style="color:#febb6f;--shiki-light:#febb6f;--shiki-dark:#febb6f">t</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">5</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ vice      │ </span><span style="color:#5ee7df;--shiki-light:#5ee7df;--shiki-dark:#5ee7df">N</span><span style="color:#63e1dd;--shiki-light:#63e1dd;--shiki-dark:#63e1dd">u</span><span style="color:#68dcdc;--shiki-light:#68dcdc;--shiki-dark:#68dcdc">s</span><span style="color:#6dd6da;--shiki-light:#6dd6da;--shiki-dark:#6dd6da">h</span><span style="color:#73d1d9;--shiki-light:#73d1d9;--shiki-dark:#73d1d9">e</span><span style="color:#78cbd8;--shiki-light:#78cbd8;--shiki-dark:#78cbd8">l</span><span style="color:#7dc6d6;--shiki-light:#7dc6d6;--shiki-dark:#7dc6d6">l</span><span style="color:#89bbd4;--shiki-light:#89bbd4;--shiki-dark:#89bbd4"> G</span><span style="color:#8eb6d2;--shiki-light:#8eb6d2;--shiki-dark:#8eb6d2">r</span><span style="color:#93b0d1;--shiki-light:#93b0d1;--shiki-dark:#93b0d1">a</span><span style="color:#98abcf;--shiki-light:#98abcf;--shiki-dark:#98abcf">d</span><span style="color:#9ea5ce;--shiki-light:#9ea5ce;--shiki-dark:#9ea5ce">i</span><span style="color:#a3a0cd;--shiki-light:#a3a0cd;--shiki-dark:#a3a0cd">e</span><span style="color:#a89acb;--shiki-light:#a89acb;--shiki-dark:#a89acb">n</span><span style="color:#ad95ca;--shiki-light:#ad95ca;--shiki-dark:#ad95ca">t</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">6</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ passion   │ </span><span style="color:#f43b47;--shiki-light:#f43b47;--shiki-dark:#f43b47">N</span><span style="color:#e83a4b;--shiki-light:#e83a4b;--shiki-dark:#e83a4b">u</span><span style="color:#dd3a50;--shiki-light:#dd3a50;--shiki-dark:#dd3a50">s</span><span style="color:#d23954;--shiki-light:#d23954;--shiki-dark:#d23954">h</span><span style="color:#c83a5a;--shiki-light:#c83a5a;--shiki-dark:#c83a5a">e</span><span style="color:#bc3a5e;--shiki-light:#bc3a5e;--shiki-dark:#bc3a5e">l</span><span style="color:#b13963;--shiki-light:#b13963;--shiki-dark:#b13963">l</span><span style="color:#9c3a6d;--shiki-light:#9c3a6d;--shiki-dark:#9c3a6d"> G</span><span style="color:#903972;--shiki-light:#903972;--shiki-dark:#903972">r</span><span style="color:#863a76;--shiki-light:#863a76;--shiki-dark:#863a76">a</span><span style="color:#7b397b;--shiki-light:#7b397b;--shiki-dark:#7b397b">d</span><span style="color:#703980;--shiki-light:#703980;--shiki-dark:#703980">i</span><span style="color:#653a85;--shiki-light:#653a85;--shiki-dark:#653a85">e</span><span style="color:#5a3989;--shiki-light:#5a3989;--shiki-dark:#5a3989">n</span><span style="color:#4f398e;--shiki-light:#4f398e;--shiki-dark:#4f398e">t</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">7</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ fruit     │ </span><span style="color:#ff4e50;--shiki-light:#ff4e50;--shiki-dark:#ff4e50">N</span><span style="color:#fe564d;--shiki-light:#fe564d;--shiki-dark:#fe564d">u</span><span style="color:#fe5e4a;--shiki-light:#fe5e4a;--shiki-dark:#fe5e4a">s</span><span style="color:#fd6647;--shiki-light:#fd6647;--shiki-dark:#fd6647">h</span><span style="color:#fd6f44;--shiki-light:#fd6f44;--shiki-dark:#fd6f44">e</span><span style="color:#fc7741;--shiki-light:#fc7741;--shiki-dark:#fc7741">l</span><span style="color:#fc7f3f;--shiki-light:#fc7f3f;--shiki-dark:#fc7f3f">l</span><span style="color:#fb9139;--shiki-light:#fb9139;--shiki-dark:#fb9139"> G</span><span style="color:#fb9936;--shiki-light:#fb9936;--shiki-dark:#fb9936">r</span><span style="color:#faa133;--shiki-light:#faa133;--shiki-dark:#faa133">a</span><span style="color:#faa931;--shiki-light:#faa931;--shiki-dark:#faa931">d</span><span style="color:#f9b22e;--shiki-light:#f9b22e;--shiki-dark:#f9b22e">i</span><span style="color:#f9ba2b;--shiki-light:#f9ba2b;--shiki-dark:#f9ba2b">e</span><span style="color:#f8c228;--shiki-light:#f8c228;--shiki-dark:#f8c228">n</span><span style="color:#f8ca25;--shiki-light:#f8ca25;--shiki-dark:#f8ca25">t</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">8</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ retro     │ </span><span style="color:#3f51b1;--shiki-light:#3f51b1;--shiki-dark:#3f51b1">N</span><span style="color:#4c52af;--shiki-light:#4c52af;--shiki-dark:#4c52af">u</span><span style="color:#5a55ae;--shiki-light:#5a55ae;--shiki-dark:#5a55ae">s</span><span style="color:#6a59ad;--shiki-light:#6a59ad;--shiki-dark:#6a59ad">h</span><span style="color:#7b5fac;--shiki-light:#7b5fac;--shiki-dark:#7b5fac">e</span><span style="color:#8464ad;--shiki-light:#8464ad;--shiki-dark:#8464ad">l</span><span style="color:#8f6aae;--shiki-light:#8f6aae;--shiki-dark:#8f6aae">l</span><span style="color:#a86aa4;--shiki-light:#a86aa4;--shiki-dark:#a86aa4"> G</span><span style="color:#b66a9f;--shiki-light:#b66a9f;--shiki-dark:#b66a9f">r</span><span style="color:#c56a9b;--shiki-light:#c56a9b;--shiki-dark:#c56a9b">a</span><span style="color:#c86a94;--shiki-light:#c86a94;--shiki-dark:#c86a94">d</span><span style="color:#cc6b8e;--shiki-light:#cc6b8e;--shiki-dark:#cc6b8e">i</span><span style="color:#de767f;--shiki-light:#de767f;--shiki-dark:#de767f">e</span><span style="color:#f18271;--shiki-light:#f18271;--shiki-dark:#f18271">n</span><span style="color:#f1936c;--shiki-light:#f1936c;--shiki-dark:#f1936c">t</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">9</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ summer    │ </span><span style="color:#fdbb2d;--shiki-light:#fdbb2d;--shiki-dark:#fdbb2d">N</span><span style="color:#efbb36;--shiki-light:#efbb36;--shiki-dark:#efbb36">u</span><span style="color:#e1bb3f;--shiki-light:#e1bb3f;--shiki-dark:#e1bb3f">s</span><span style="color:#d3bb48;--shiki-light:#d3bb48;--shiki-dark:#d3bb48">h</span><span style="color:#c5bc51;--shiki-light:#c5bc51;--shiki-dark:#c5bc51">e</span><span style="color:#b7bc5a;--shiki-light:#b7bc5a;--shiki-dark:#b7bc5a">l</span><span style="color:#aabc65;--shiki-light:#aabc65;--shiki-dark:#aabc65">l</span><span style="color:#8fbd77;--shiki-light:#8fbd77;--shiki-dark:#8fbd77"> G</span><span style="color:#81bd80;--shiki-light:#81bd80;--shiki-dark:#81bd80">r</span><span style="color:#73be89;--shiki-light:#73be89;--shiki-dark:#73be89">a</span><span style="color:#66be94;--shiki-light:#66be94;--shiki-dark:#66be94">d</span><span style="color:#58be9d;--shiki-light:#58be9d;--shiki-dark:#58be9d">i</span><span style="color:#4abfa6;--shiki-light:#4abfa6;--shiki-dark:#4abfa6">e</span><span style="color:#3cbfaf;--shiki-light:#3cbfaf;--shiki-dark:#3cbfaf">n</span><span style="color:#2ebfb8;--shiki-light:#2ebfb8;--shiki-dark:#2ebfb8">t</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">10</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ rainbow   │ </span><span style="color:#bd1354;--shiki-light:#bd1354;--shiki-dark:#bd1354">N</span><span style="color:#c82e43;--shiki-light:#c82e43;--shiki-dark:#c82e43">u</span><span style="color:#d44a33;--shiki-light:#d44a33;--shiki-dark:#d44a33">s</span><span style="color:#e06623;--shiki-light:#e06623;--shiki-dark:#e06623">h</span><span style="color:#e37a1f;--shiki-light:#e37a1f;--shiki-dark:#e37a1f">e</span><span style="color:#e28c1e;--shiki-light:#e28c1e;--shiki-dark:#e28c1e">l</span><span style="color:#e19e1d;--shiki-light:#e19e1d;--shiki-dark:#e19e1d">l</span><span style="color:#88a424;--shiki-light:#88a424;--shiki-dark:#88a424"> G</span><span style="color:#4fa328;--shiki-light:#4fa328;--shiki-dark:#4fa328">r</span><span style="color:#2e9843;--shiki-light:#2e9843;--shiki-dark:#2e9843">a</span><span style="color:#307f80;--shiki-light:#307f80;--shiki-dark:#307f80">d</span><span style="color:#3366bd;--shiki-light:#3366bd;--shiki-dark:#3366bd">i</span><span style="color:#374fe7;--shiki-light:#374fe7;--shiki-dark:#374fe7">e</span><span style="color:#413fc5;--shiki-light:#413fc5;--shiki-dark:#413fc5">n</span><span style="color:#4b2fa4;--shiki-light:#4b2fa4;--shiki-dark:#4b2fa4">t</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">11</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ pastel    │ </span><span style="color:#ffdfcc;--shiki-light:#ffdfcc;--shiki-dark:#ffdfcc">N</span><span style="color:#fee3cf;--shiki-light:#fee3cf;--shiki-dark:#fee3cf">u</span><span style="color:#fee8d3;--shiki-light:#fee8d3;--shiki-dark:#fee8d3">s</span><span style="color:#feedd7;--shiki-light:#feedd7;--shiki-dark:#feedd7">h</span><span style="color:#fff3db;--shiki-light:#fff3db;--shiki-dark:#fff3db">e</span><span style="color:#f1f0d4;--shiki-light:#f1f0d4;--shiki-dark:#f1f0d4">l</span><span style="color:#e4eece;--shiki-light:#e4eece;--shiki-dark:#e4eece">l</span><span style="color:#cbebc3;--shiki-light:#cbebc3;--shiki-dark:#cbebc3"> G</span><span style="color:#c3e5c8;--shiki-light:#c3e5c8;--shiki-dark:#c3e5c8">r</span><span style="color:#bbe0ce;--shiki-light:#bbe0ce;--shiki-dark:#bbe0ce">a</span><span style="color:#b3dbd4;--shiki-light:#b3dbd4;--shiki-dark:#b3dbd4">d</span><span style="color:#add7db;--shiki-light:#add7db;--shiki-dark:#add7db">i</span><span style="color:#a3c4cf;--shiki-light:#a3c4cf;--shiki-dark:#a3c4cf">e</span><span style="color:#9ab2c3;--shiki-light:#9ab2c3;--shiki-dark:#9ab2c3">n</span><span style="color:#91a0b7;--shiki-light:#91a0b7;--shiki-dark:#91a0b7">t</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">12</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ monsoon   │ </span><span style="color:#b5c7cc;--shiki-light:#b5c7cc;--shiki-dark:#b5c7cc">N</span><span style="color:#a7bac2;--shiki-light:#a7bac2;--shiki-dark:#a7bac2">u</span><span style="color:#99aeb8;--shiki-light:#99aeb8;--shiki-dark:#99aeb8">s</span><span style="color:#8da2ae;--shiki-light:#8da2ae;--shiki-dark:#8da2ae">h</span><span style="color:#7e96a3;--shiki-light:#7e96a3;--shiki-dark:#7e96a3">e</span><span style="color:#6d8b98;--shiki-light:#6d8b98;--shiki-dark:#6d8b98">l</span><span style="color:#5e7f8c;--shiki-light:#5e7f8c;--shiki-dark:#5e7f8c">l</span><span style="color:#3e6377;--shiki-light:#3e6377;--shiki-dark:#3e6377"> G</span><span style="color:#2d546b;--shiki-light:#2d546b;--shiki-dark:#2d546b">r</span><span style="color:#275166;--shiki-light:#275166;--shiki-dark:#275166">a</span><span style="color:#306068;--shiki-light:#306068;--shiki-dark:#306068">d</span><span style="color:#39706a;--shiki-light:#39706a;--shiki-dark:#39706a">i</span><span style="color:#43806e;--shiki-light:#43806e;--shiki-dark:#43806e">e</span><span style="color:#569079;--shiki-light:#569079;--shiki-dark:#569079">n</span><span style="color:#69a184;--shiki-light:#69a184;--shiki-dark:#69a184">t</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">13</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ forest    │ </span><span style="color:#453730;--shiki-light:#453730;--shiki-dark:#453730">N</span><span style="color:#534034;--shiki-light:#534034;--shiki-dark:#534034">u</span><span style="color:#634a38;--shiki-light:#634a38;--shiki-dark:#634a38">s</span><span style="color:#72533c;--shiki-light:#72533c;--shiki-dark:#72533c">h</span><span style="color:#825e41;--shiki-light:#825e41;--shiki-dark:#825e41">e</span><span style="color:#6c553e;--shiki-light:#6c553e;--shiki-dark:#6c553e">l</span><span style="color:#574e3c;--shiki-light:#574e3c;--shiki-dark:#574e3c">l</span><span style="color:#2c3e39;--shiki-light:#2c3e39;--shiki-dark:#2c3e39"> G</span><span style="color:#31443b;--shiki-light:#31443b;--shiki-dark:#31443b">r</span><span style="color:#364c3e;--shiki-light:#364c3e;--shiki-dark:#364c3e">a</span><span style="color:#3b5241;--shiki-light:#3b5241;--shiki-dark:#3b5241">d</span><span style="color:#415a45;--shiki-light:#415a45;--shiki-dark:#415a45">i</span><span style="color:#4b5f49;--shiki-light:#4b5f49;--shiki-dark:#4b5f49">e</span><span style="color:#56654e;--shiki-light:#56654e;--shiki-dark:#56654e">n</span><span style="color:#616a53;--shiki-light:#616a53;--shiki-dark:#616a53">t</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">14</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ instagram │ </span><span style="color:#833ab4;--shiki-light:#833ab4;--shiki-dark:#833ab4">N</span><span style="color:#9135a0;--shiki-light:#9135a0;--shiki-dark:#9135a0">u</span><span style="color:#a1328e;--shiki-light:#a1328e;--shiki-dark:#a1328e">s</span><span style="color:#af2e7a;--shiki-light:#af2e7a;--shiki-dark:#af2e7a">h</span><span style="color:#bf2b68;--shiki-light:#bf2b68;--shiki-dark:#bf2b68">e</span><span style="color:#cf2755;--shiki-light:#cf2755;--shiki-dark:#cf2755">l</span><span style="color:#dd2342;--shiki-light:#dd2342;--shiki-dark:#dd2342">l</span><span style="color:#fd1d1d;--shiki-light:#fd1d1d;--shiki-dark:#fd1d1d"> G</span><span style="color:#fc2f21;--shiki-light:#fc2f21;--shiki-dark:#fc2f21">r</span><span style="color:#fc4126;--shiki-light:#fc4126;--shiki-dark:#fc4126">a</span><span style="color:#fc542b;--shiki-light:#fc542b;--shiki-dark:#fc542b">d</span><span style="color:#fc6630;--shiki-light:#fc6630;--shiki-dark:#fc6630">i</span><span style="color:#fb7835;--shiki-light:#fb7835;--shiki-dark:#fb7835">e</span><span style="color:#fc8b3a;--shiki-light:#fc8b3a;--shiki-dark:#fc8b3a">n</span><span style="color:#fb9d3f;--shiki-light:#fb9d3f;--shiki-dark:#fb9d3f">t</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰────┴───────────┴──────────────────╯</span></span></code></pre>
</div><h3>New commands for vi normal mode  </h3>
<p>Added two new commands to the vi normal modes:</p>
<ul>
<li><code>o</code>: inserts a newline below the cursor and enters insert mode</li>
<li><code>O</code>: inserts a newline above the cursor and enters insert mode</li>
</ul>
<p>Their respective edit commands are <code>InsertNewlineBelow</code> and <code>InsertNewlineAbove</code>.</p>
<h3>Terminal emulator progress bars via <code>std-rfc/pb</code>  </h3>
<p>Added a new module to <code>std-rfc/pb</code>, it wraps the <code>OSC 9;4</code> escape sequences for setting progress bars in the terminal (some terminals don't support any/some of the commands).</p>
<p>Example:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">use</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> std-rfc/</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">pb</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">try</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">	0</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">..&#x3C;</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">10</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> each</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {|</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">x</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">| </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">sleep</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 200ms</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> ; </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">pb</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> set-idx</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $x</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 10</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">} </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">catch</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">	pb</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> error</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">} </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">finally</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">	pb</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> clear</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div><h3>New <code>peek</code> command for inspecting streams without collecting  </h3>
<p>Added <code>peek</code> command, which can be used to access properties of the pipeline input and get the first <code>$n</code> items of a list stream <em>without</em> collecting it.</p>
<p>It works by exposing this information as pipeline metadata so it can be retrieved with <code>metadata access</code>.</p>
<div class="language-nushell line-numbers-mode" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">..</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> peek</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> metadata access</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {|</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">md</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">|</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">    if</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> not</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $md.peek.stream</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">        $env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.LAST_RESULT</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $in</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">        $in</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    } </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">else</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">        # do not collect, pass the stream through as it is</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><div class="language-nushell line-numbers-mode" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">..</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> peek</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> metadata access</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {|</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">md</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">|</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">    if</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">        $md.peek.value</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">?.0?</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> !=</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66"> null</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">        and</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$md.peek.value.0</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> columns</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $in</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> has</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "type"</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> and</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $in</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> has</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "name"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">)</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    ) {</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">        sort-by</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> type</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> name</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    } </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">else</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">        # pass the stream through as it is</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3>Add additional polars selectors: ends-with, alpha, and alphanumeric  </h3>
<p>Introduces new <code>polars selector</code> sub commands</p>
<ul>
<li><code>polars selector alpha</code> for selecting columns alphabetic characters</li>
<li><code>polars selector alphanumeric</code> for selecting columns with alphanumeric characters</li>
<li><code>polars selector ends-with</code> for selecting columns with a suffix</li>
</ul>
<h3>And even more polars selectors  </h3>
<p>Added 20 additional polars selectors:</p>
<ul>
<li><code>polars selector array</code> - Select all array columns. Optionally filter by fixed width.</li>
<li><code>polars selector binary</code> - Select all binary columns.</li>
<li><code>polars selector boolean</code> - Select all boolean columns.</li>
<li><code>polars selector by-index</code> - Select columns by their index position. Supports negative indices (e.g., <code>-1</code> for the last column).</li>
<li><code>polars selector categorical</code> - Select all categorical columns.</li>
<li><code>polars selector contains</code> - Select columns whose names contain the given literal substring(s).</li>
<li><code>polars selector date</code> - Select all date columns.</li>
<li><code>polars selector datetime</code> - Select all datetime columns. Optionally filter by time unit (<code>ns</code>, <code>us</code>, <code>ms</code>) and/or timezone.</li>
<li><code>polars selector decimal</code> - Select all decimal columns.</li>
<li><code>polars selector digit</code> - Select columns whose names consist entirely of digit characters. By default uses Unicode decimal digits; use <code>--ascii-only</code> to restrict to ASCII <code>0-9</code>.</li>
<li><code>polars selector duration</code> - Select all duration columns. Optionally filter by time unit (<code>ns</code>, <code>us</code>, <code>ms</code>).</li>
<li><code>polars selector empty</code> - Create an empty selector that matches no columns. Useful as a base for selector composition.</li>
<li><code>polars selector ends-with</code> - Select columns that end with the given substring(s).</li>
<li><code>polars selector enum</code> - Select all enum columns.</li>
<li><code>polars selector exclude</code> - Select all columns except those with the given name(s). This is the inverse of <code>polars selector by-name</code>.</li>
<li><code>polars selector list</code> - Select all list columns.</li>
<li><code>polars selector nested</code> - Select all nested columns (<code>list</code>, <code>array</code>, or <code>struct</code>).</li>
<li><code>polars selector object</code> - Select all object columns.</li>
<li><code>polars selector starts-with</code> - Select columns that start with the given substring(s).</li>
<li><code>polars selector string</code> - Select all string columns. Use <code>--include-categorical</code> to also select categorical columns.</li>
<li><code>polars selector struct</code> - Select all struct columns.</li>
<li><code>polars selector temporal</code> - Select all temporal columns (<code>date</code>, <code>datetime</code>, <code>duration</code>, and <code>time</code>).</li>
</ul>
<h3>Add <code>idx</code> family of commands for in-memory indexing  </h3>
<p>Add the <code>idx</code> command family for in-memory filesystem indexing and search.</p>
<h4>Commands</h4>
<h5><code>idx init &lt;path&gt; [--wait]</code></h5>
<p>Initializes the global idx runtime by scanning <code>&lt;path&gt;</code>. If the runtime is already initialized it is dropped and re-scanned. <code>--wait</code> blocks until the initial scan completes; omitting it returns immediately with a <code>scanning = true</code> status.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">idx</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> init</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> .</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">idx</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> init</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> ~/projects</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">wait</span></span></code></pre>
</div><h5><code>idx status</code></h5>
<p>Returns a record describing the current runtime: <code>initialized</code>, <code>base_path</code>, <code>watch</code>, <code>scanning</code>, <code>scan_duration_ms</code>, <code>files</code>, <code>dirs</code>, and arena memory usage fields.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">idx</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> status</span></span></code></pre>
</div><h5><code>idx dirs</code></h5>
<p>Returns all indexed directories as records with <code>relative_path</code> and <code>full_path</code> columns.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">idx</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> dirs</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">idx</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> dirs</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> where</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> full_path</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =~</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> src</span></span></code></pre>
</div><h5><code>idx files [&lt;path&gt;]</code></h5>
<p>Returns all indexed files as records with <code>relative_path</code>, <code>full_path</code>, <code>file_name</code>, <code>directory</code>, <code>size</code>, and <code>modified</code> columns. If an optional <code>&lt;path&gt;</code> is provided it performs a direct lookup by relative or absolute path.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">idx</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> files</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">idx</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> files</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> src/main.rs</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">idx</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> files</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> /absolute/path/to/file.rs</span></span></code></pre>
</div><h5><code>idx find &lt;query&gt; [--files] [--dirs] [--verbose] [--limit &lt;n&gt;]</code></h5>
<p>Fuzzy-searches the index using <a href="https://docs.rs/fff-search/latest/fff_search/" target="_blank" rel="noopener noreferrer"><code>fff-search</code> scoring</a>. By default searches both files and directories. <code>--files</code> or <code>--dirs</code> narrows the search. <code>--verbose</code> adds a <code>score_details</code> column. <code>--limit</code> caps the result count (default 100).</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">idx</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> find</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> main</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">idx</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> find</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> config</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">files</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">verbose</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">idx</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> find</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> src</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">dirs</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">limit</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 10</span></span></code></pre>
</div><h5><code>idx search &lt;pattern&gt;... [--regex] [--fuzzy] [--limit &lt;n&gt;]</code></h5>
<p>Searches the <strong>contents</strong> of indexed files. Plain text is the default. <code>--regex</code> enables regex matching. <code>--fuzzy</code> enables approximate line matching. Multiple patterns are searched with <code>multi_grep</code>. <code>--limit</code> caps matches (default 50).</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">idx</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> search</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> hello</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">idx</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> search</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">regex</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> 'fn \w+'</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">idx</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> search</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> TODO</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> FIXME</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> HACK</span></span></code></pre>
</div><h5><code>idx export &lt;filepath&gt;</code></h5>
<p>Persists the current runtime to a <strong>SQLite</strong> database at <code>&lt;filepath&gt;</code>. Returns a record with <code>stored</code>, <code>path</code>, <code>file_count</code>, <code>dir_count</code>, <code>base_path</code>, and <code>format</code>.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">idx</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> export</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> ~/my-index.db</span></span></code></pre>
</div><h5><code>idx import &lt;filepath&gt;</code></h5>
<p>Imports a SQLite snapshot created by <code>idx export</code>. Performs true offline restoration by hydrating the index from stored file and directory rows in the database with no filesystem rescanning. Returns a record with <code>restored</code>, <code>source_path</code>, <code>base_path</code>, <code>watch</code>, <code>rehydration_mode</code>, <code>status</code>, <code>restored_files</code>, <code>restored_dirs</code>, and <code>format</code>. The <code>rehydration_mode</code> is <code>offline_from_snapshot_rows</code>, and the status fields (<code>scanning</code>, <code>scan_duration_ms</code>).</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">idx</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> import</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> ~/my-index.db</span></span></code></pre>
</div><h5><code>idx drop</code></h5>
<p>Drops the current runtime from memory. Returns <code>{dropped: bool, status: record}</code> where <code>status</code> is always the default (zeroed) status after the drop.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">idx</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> drop</span></span></code></pre>
</div><h3>Allow filtering custom completions by description  </h3>
<p>Custom completers can now opt into matching the user's prefix against suggestion descriptions in addition to values, by setting <code>match_description: true</code> in the returned <code>options</code> record. The inserted completion is still the suggestion's <code>value</code>.</p>
<div class="language-nu line-numbers-mode" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> "nu-complete users"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [] {</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">  {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">    options</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> { </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">match_description</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66"> true</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">completion_algorithm</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "substring"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">    completions</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">      { </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">value</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "lk446763@example.com"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">description</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "Lennart Kiil"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">      { </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">value</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "ab123456@example.com"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">description</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "Alice Bob"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    ]</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">  }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3>New <code>std-rfc/iter prod</code> command to produce cartesian products  </h3>
<p>A new command for producing cartesian products of an arbitrary number of lists, accessible as <code>std-rfc/iter prod</code>.</p>
<p>It takes a record with list values and returns a table where each column has items from the corresponding list:</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">use</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> std-rfc/iter</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> prod</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">prod</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> {</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">  size</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: [</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">little</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">big</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">  color</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: [</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">red</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">blue</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">  shape</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: [</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">circle</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">box</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬────────┬───────┬────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">size</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">color</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">shape</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼────────┼───────┼────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ little │ red   │ circle │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ little │ red   │ box    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ little │ blue  │ circle │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ little │ blue  │ box    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ big    │ red   │ circle │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">5</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ big    │ red   │ box    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">6</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ big    │ blue  │ circle │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">7</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ big    │ blue  │ box    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴────────┴───────┴────────╯</span></span></code></pre>
</div><p>It can also take an input stream, items of which will be in the <code>&quot;in&quot;</code> column:</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">use</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> std-rfc/iter</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> prod</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> prod</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> { </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">rhs</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: [</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">b</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">] }</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬────┬─────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">in</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">rhs</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼────┼─────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  1 │ a   │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  1 │ b   │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  2 │ a   │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  2 │ b   │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴────┴─────╯</span></span></code></pre>
</div><p><code>prod</code> generates its output lazily, so it doesn't collect its input.</p>
<h3>Added <code>--no-commas</code> flag to <code>to nuon</code> to exclude optional commas  </h3>
<p>When you use the new <code>--no-commas</code> flag on <code>to nuon</code> you won't have to see commas. Since nuon doesn't require commas, this will make the output more succinct. Some may argue that it's harder to read, which may be true, but nuon doesn't care about that.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">ls</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to nuon</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --indent</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --list-of-records</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> str length</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">1014</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">ls</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to nuon</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --indent</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --list-of-records</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --no-commas</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> str length</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">983</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">ls</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to nuon</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> str length</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">802</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">ls</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to nuon</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --no-commas</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> str length</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">768</span></span></code></pre>
</div><p>Sometimes, every little bit helps.</p>
<h3>The <code>pre_prompt</code> and <code>env_change</code> hooks may now modify the commandline  </h3>
<p>The <code>pre_prompt</code> and <code>env_change</code> hooks can now modify the commandline using the <code>commandline edit</code> command.</p>
<p>Example:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.config.hooks.pre_prompt</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> ++=</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [{ </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">commandline edit</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "test"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }]</span></span></code></pre>
</div><h3><code>rm -v</code> returns structured data  </h3>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">touch</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> a</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">rm</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -v</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> z</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> a</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> c</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬────────┬─────────┬───────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">path</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">deleted</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">error</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼────────┼─────────┼───────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ /tmp/z │ </span><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">false</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ Not found │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ /tmp/c │ </span><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">false</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ Not found │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ /tmp/a │ </span><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">true</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    │           │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴────────┴─────────┴───────────╯</span></span></code></pre>
</div><h4><code>rm</code> removes other files even if there is an error in the middle</h4>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">touch</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> a</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">rm</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> z</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> a</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> c</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::io::not_found</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Not found</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #66:1:8</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ rm z a c</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">       ┬</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·        </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── Not found</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  help: </span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">'/tmp/c' does not exist</span></span>
<span class="line"></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::io::not_found</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Not found</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #66:1:4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ rm z a c</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">   ┬</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·    </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── Not found</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  help: </span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">'/tmp/z' does not exist</span></span>
<span class="line"></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'a'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> path exists</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">false</span></span></code></pre>
</div><h3><code>ps -l</code> has more columns  </h3>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">ps</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -l</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> select</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> pid</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> name</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> mem</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> virtual</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> working</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> paged</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> first</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 5</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬─────┬─────────────────┬──────────┬─────────┬──────────┬───────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">pid</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │      </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">name</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">       │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">mem</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">virtual</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">working</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">paged</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼─────┼─────────────────┼──────────┼─────────┼──────────┼───────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   1 │ systemd         │  </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">13.3 MB</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">22.2 MB</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">13.3 MB</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">0 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   2 │ init-systemd(Ub │   </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">1.9 MB</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">2.8 MB</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">1.9 MB</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">0 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  10 │ init            │ </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">135.1 kB</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">2.8 MB</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">135.1 kB</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">0 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  55 │ systemd-journal │  </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">17.8 MB</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">68.4 MB</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">17.8 MB</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">0 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 100 │ systemd-udevd   │   </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">6.2 MB</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">24.9 MB</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">6.2 MB</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">0 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴─────┴─────────────────┴──────────┴─────────┴──────────┴───────╯</span></span></code></pre>
</div><h3>Added fish-style abbreviations  </h3>
<p>Added support for fish-style abbreviations that are expanded on <code>enter</code> or <code>space</code>. Abbreviations are syntax-aware in that expansion doesn't occur within strings or when appearing as arguments to an external program.</p>
<p>Abbreviations can be added to the config like so:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.config.abbreviations</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">  ll</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "ls -l"</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">  gs</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "git status"</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div><h3>Locked history related config values during REPL  </h3>
<p>The following <code>$env.config.history</code> fields are now read-only after the REPL starts, since reedline only reads them once at startup and silently ignored later changes:</p>
<ul>
<li><code>$env.config.history.path</code></li>
<li><code>$env.config.history.max_size</code></li>
<li><code>$env.config.history.file_format</code></li>
<li><code>$env.config.history.isolation</code></li>
</ul>
<p><code>sync_on_enter</code> and <code>ignore_space_prefixed</code> remain mutable from the REPL since they are re-read on each prompt.</p>
<p>Attempting to change one of the locked fields from the REPL now produces a clear error instead of being silently ignored:</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$env</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">config</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">history</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">path</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510"> =</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> "/tmp/elsewhere.txt"</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::invalid_config</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Encountered 1 error(s) when updating config</span></span>
<span class="line"></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::config_option_locked_after_startup</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> $env.config.history.path cannot be changed after Nushell has started</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #73:1:28</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ $env.config.history.path = "/tmp/elsewhere.txt"</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">                           ──────────┬─────────</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·                                      </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── cannot be changed at runtime</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  help: </span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">set $env.config.history.path in your config.nu (or via --config / the relevant env var) and restart Nushell</span></span></code></pre>
</div><h3>Other additions </h3>
<ul>
<li><code>metadata access</code>'s closure can now modify the caller's environment, as if run with <code>do --env</code> (<a href="https://github.com/nushell/nushell/pull/18085" target="_blank" rel="noopener noreferrer">#18085</a>)</li>
<li>Introduced <code>std-rfc</code>/<code>str lcp</code> calculating longest common prefix for a list of strings (<a href="https://github.com/nushell/nushell/pull/17907" target="_blank" rel="noopener noreferrer">#17907</a>)</li>
<li><code>std-rfc/iter recurse</code> now supports multiple cell-path arguments. (<a href="https://github.com/nushell/nushell/pull/18172" target="_blank" rel="noopener noreferrer">#18172</a>)</li>
<li>Added the <code>std-rfc/url</code> module to modify urls more concisely. (<a href="https://github.com/nushell/nushell/pull/18239" target="_blank" rel="noopener noreferrer">#18239</a>)</li>
</ul>
<h2>Deprecations </h2>
<h3>Deprecated <code>watch</code> command's optional closure argument  </h3>
<p><code>watch</code> command's optional closure argument is deprecated and will be removed in a future release. Update your scripts to use a for-loop or <code>each</code> instead:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">for</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> event</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> in</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">watch</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> .</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">glob</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">=**/*.rs</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) {</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">	cargo</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> test</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># or</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">watch</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> .</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">glob</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">=**/*.rs</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> each</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> { </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">cargo</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> test</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }</span></span></code></pre>
</div><p>As a reminder, using this streaming approach allows you to combine <code>watch</code> with other commands as well:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">watch</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> .</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> where</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> operation</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> ==</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> Write</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> and</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> path</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> like</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "*.md"</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> each</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> { </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">md-lint</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $in.path</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }</span></span></code></pre>
</div><h3>Deprecated implicit <code>name</code> column for <code>grid</code> command  </h3>
<p>The <code>grid</code> command now accepts an optional column name to display the contents of that column in a grid. One should no longer rely on the old behavior which automatically displays the <code>name</code> column as it is deprecated. Moreover, passing in a record as the input is also deprecated.</p>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">ls</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> grid</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># or</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">{ </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">name</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> test</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> } </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> grid</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">ls</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> grid</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> name</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># or</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">[{ </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">name</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> test</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }] </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> grid</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> name</span></span></code></pre>
</div>
</div><h2>Removals </h2>
<h3>Removed deprecated flag <code>--datasource-ls</code> of <code>metadata set</code>  </h3>
<p>The deprecated flag of metadata <code>--datasource-ls</code> has been removed. Use <code>metadata set --path-columns [name]</code> instead.
The <code>ls</code> command will no longer set the <code>source</code> metadata to <code>ls</code>.</p>
<h2>Other changes </h2>
<h3><code>to csv</code> and <code>to tsv</code> stream now to <code>save</code>  </h3>
<p>Saving streaming table data to <code>.csv</code> and <code>.tsv</code> now writes rows to disk as they arrive instead of buffering the full output first.</p>
<p>Streaming CSV/TSV export now fails with a clear schema-drift error if later rows introduce new columns after output has started. If your input has varying columns, use <code>to csv --columns [...]</code> / <code>to tsv --columns [...]</code> or <code>collect</code> first.</p>
<h3><code>to yaml</code> now correctly quotes string values  </h3>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'{"value": "off", "listen": "0.0.0.0:8444"}'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> from json</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to yaml</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">value: off</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">listen: 0.0.0.0:8444</span></span>
<span class="line"></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'{"value": "off", "listen": "0.0.0.0:8444"}'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> from json</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to yaml</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">value: 'off'</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">listen: '0.0.0.0:8444'</span></span>
<span class="line"></span></code></pre>
</div>
</div><h3>Raise default promote-after to 2m and add <code>timeout_secs</code> param  </h3>
<ul>
<li><code>nu-mcp</code>: default auto-promote-to-background threshold raised from 10s to 120s.</li>
<li><code>nu-mcp</code>: the <code>evaluate</code> tool accepts a new optional <code>timeout_secs</code> parameter to override the promotion threshold per call.</li>
</ul>
<h3><code>from md</code> now produces a more concise output by default  </h3>
<p>The <code>from md</code> command now defaults to a more human friendly reduced mode. The original ast mode is now behind the <code>--verbose</code> switch.</p>
<p>Here are a couple screenshots of reduced mode.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">open</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> AGENTS.md</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> first</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 10</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> table</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --flatten</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬─────────────┬─────────────────────────────────────────────────────┬───────────────────┬───────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">element</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │                       </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">content</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">                       │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">content_span</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    │    </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">attributes</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">     │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼─────────────┼─────────────────────────────────────────────────────┼───────────────────┼───────────────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ text        │ AGENTS.md                                           │ {record 2 fields} │ {record 2 fields} │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ text        │ Testing and code style rules                        │ {record 2 fields} │ {record 2 fields} │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ text        │ Before every commit:                                │ {record 2 fields} │ {record 2 fields} │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ code_inline │ nu -c "use toolkit.nu; toolkit fmt"                 │ {record 2 fields} │ {record 2 fields} │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ text        │  and                                                │ {record 2 fields} │ {record 2 fields} │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">5</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ code_inline │ nu -c "use toolkit.nu; toolkit clippy"              │ {record 2 fields} │ {record 2 fields} │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">6</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ text        │ . This is pretty fast so you can run it frequently. │ {record 2 fields} │ {record 2 fields} │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">7</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ text        │ Run tests:                                          │ {record 2 fields} │ {record 2 fields} │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">8</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ code_inline │ nu -c "use toolkit.nu; toolkit test"                │ {record 2 fields} │ {record 2 fields} │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">9</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ text        │  or                                                 │ {record 2 fields} │ {record 2 fields} │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴─────────────┴─────────────────────────────────────────────────────┴───────────────────┴───────────────────╯</span></span></code></pre>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">open</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> README.md</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> get</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 89</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> table</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -e</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭──────────────┬─────────────────────────────────────────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">element</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">      │ code                                                    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">content</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">      │ ls | where type == "dir" | table                        │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│              │ # => ╭────┬──────────┬──────┬─────────┬───────────────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│              │ # => │ #  │   name   │ type │  size   │   modified    │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│              │ # => ├────┼──────────┼──────┼─────────┼───────────────┤ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│              │ # => │  0 │ .cargo   │ dir  │     0 B │ 9 minutes ago │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│              │ # => │  1 │ assets   │ dir  │     0 B │ 2 weeks ago   │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│              │ # => │  2 │ crates   │ dir  │ 4.0 KiB │ 2 weeks ago   │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│              │ # => │  3 │ docker   │ dir  │     0 B │ 2 weeks ago   │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│              │ # => │  4 │ docs     │ dir  │     0 B │ 2 weeks ago   │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│              │ # => │  5 │ images   │ dir  │     0 B │ 2 weeks ago   │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│              │ # => │  6 │ pkg_mgrs │ dir  │     0 B │ 2 weeks ago   │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│              │ # => │  7 │ samples  │ dir  │     0 B │ 2 weeks ago   │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│              │ # => │  8 │ src      │ dir  │ 4.0 KiB │ 2 weeks ago   │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│              │ # => │  9 │ target   │ dir  │     0 B │ a day ago     │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│              │ # => │ 10 │ tests    │ dir  │ 4.0 KiB │ 2 weeks ago   │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│              │ # => │ 11 │ wix      │ dir  │     0 B │ 2 weeks ago   │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│              │ # => ╰────┴──────────┴──────┴─────────┴───────────────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│              │ ╭───────┬──────────────────╮                            │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">content_span</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │       │ ╭────────┬────╮  │                            │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│              │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">start</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">line</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ 96 │  │                            │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│              │ │       │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">column</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1  │  │                            │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│              │ │       │ ╰────────┴────╯  │                            │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│              │ │       │ ╭────────┬─────╮ │                            │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│              │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">end</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">line</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ 114 │ │                            │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│              │ │       │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">column</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 4   │ │                            │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│              │ │       │ ╰────────┴─────╯ │                            │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│              │ ╰───────┴──────────────────╯                            │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│              │ ╭──────┬───────╮                                        │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">attributes</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">lang</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ shell │                                        │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│              │ ╰──────┴───────╯                                        │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰──────────────┴─────────────────────────────────────────────────────────╯</span></span></code></pre>
</div><h3>Improved argument handling for untyped rest parameters  </h3>
<p>Fixed wrapped command argument handling in <code>def --wrapped [...rest]</code> for untyped rest params:</p>
<ul>
<li>Nushell now parses <code>--key=&quot;value&quot;</code> and <code>--key='value'</code> in wrapped rest args like external args, removing quote wrappers around the value.</li>
<li>Nushell now expands <code>~</code> in untyped wrapped rest args even when args are read directly (for example via <code>$args | to nuon</code>), not only when forwarding to an external command.</li>
<li>Explicitly typed string rest params <code>[...rest: string]</code> keep prior literal behavior.</li>
</ul>
<h3>Added dynamic dispatch for <code>%</code> sigil commands  </h3>
<p>Nushell now supports dynamic percent builtin dispatch with forms like %($cmd) and %$cmd.</p>
<p>This preserves percent safety semantics while allowing runtime command selection:</p>
<ul>
<li>only builtins are eligible targets</li>
<li>non-builtin/custom/alias targets are rejected</li>
<li>arguments are forwarded as parsed values (not string-evaluated like shell eval)</li>
</ul>
<p>This should work very similarly to dynamic dispatch of externals. The same model was followed to implement it.</p>
<p>Here's a couple examples that are also tests.</p>
<h4>Built-ins resolve</h4>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> cmd</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'echo'</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">; </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">%$cmd 'hello'</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">hello</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">%('echo') 'world'</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">world</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> cmd</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'echo'</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">; </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">%($cmd) 'hello'</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">hello</span></span></code></pre>
</div><h4>Missing commands fail</h4>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> cmd</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'my_nonexistent_cmd'</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">; </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">%($cmd)</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::command_not_found</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Command not found</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #94:1:33</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ let cmd = 'my_nonexistent_cmd'; %($cmd)</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">                                ───┬───</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·                                    </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── command not found</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div><h4>Custom commands aren't built-in commands so they fail too</h4>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">def</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> custom_cmd</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> []</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'nope'</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">; </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> cmd</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'custom_cmd'</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">; </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">%($cmd)</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::command_not_found</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Command not found</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #96:1:55</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ def custom_cmd [] { 'nope' }; let cmd = 'custom_cmd'; %($cmd)</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">                                                      ───┬───</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·                                                          </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── command not found</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div><h3>Improved escape handling  </h3>
<p>Nushell handles escaping better with the back slash <code>\</code> when use with double quotes or string interpolation with double quotes where escapes are interpreted.</p>
<p>Nushell now supports and validates more backslash escape forms consistently in string parsing, and reports clearer errors for invalid unicode/hex escapes (including better wording around missing <code>}</code> and unicode code point limits).</p>
<p>Parse and process escape sequences in a byte string.</p>
<p>Now, the following escape sequences are handled:</p>
<ul>
<li>Simple: <code>\n</code>, <code>\r</code>, <code>\t</code>, <code>\\</code>, <code>\&quot;</code>, <code>\'</code></li>
<li>Control: <code>\0</code>, <code>\a</code>, <code>\b</code>, <code>\e</code>, <code>\f</code></li>
<li>Hex: <code>\xHH</code> (exactly 2 hex digits)</li>
<li>Unicode: <code>\u{XXXXXX}</code> (1-6 hex digits, max 0x10FFFF)</li>
<li>Special: <code>\/</code>, <code>\(</code>, <code>\)</code>, <code>\{</code>, <code>\}</code>, <code>\$</code>, <code>\^</code>, <code>\#</code>, <code>\|</code>, <code>\~</code></li>
</ul>
<h3>Make <code>env_hook</code> case insensitive  </h3>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.config.hooks.env_change.pwd</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [{|| </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">print</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "dir changed"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }]</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">cd</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> ..</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># => No result</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.config.hooks.env_change.pwd</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [{|| </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">print</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "dir changed"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }]</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">cd</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> ..</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># => nushell prints out `dir changed`.</span></span></code></pre>
</div>
</div><h3>Additional changes </h3>
<ul>
<li>Added conditional compilation to fix never used warning when compiling without the mcp feature. (<a href="https://github.com/nushell/nushell/pull/18056" target="_blank" rel="noopener noreferrer">#18056</a>)</li>
<li>Fixes <code>input list</code> backtab functionality by undoing previous selection before navigation. (<a href="https://github.com/nushell/nushell/pull/18068" target="_blank" rel="noopener noreferrer">#18068</a>)</li>
<li>The <code>evaluate</code> MCP tool no longer accepts a <code>timeout_secs</code> parameter. To override the promote-after timeout, set <code>$env.NU_MCP_PROMOTE_AFTER</code> (e.g. <code>$env.NU_MCP_PROMOTE_AFTER = 10min</code>) — the setting is REPL-sticky and applies to subsequent calls until changed. (<a href="https://github.com/nushell/nushell/pull/18070" target="_blank" rel="noopener noreferrer">#18070</a>)</li>
<li>Improved language for the &quot;Cannot find column ...&quot; shell error to be more precise about missing data and suggest user actions to fix. (<a href="https://github.com/nushell/nushell/pull/18108" target="_blank" rel="noopener noreferrer">#18108</a>)</li>
<li>Refactor <code>--on-cols</code> in <code>polars pivot</code> from required to optional parameter; supply default values based on unique values of <code>--on</code> columns (<a href="https://github.com/nushell/nushell/pull/18140" target="_blank" rel="noopener noreferrer">#18140</a>)</li>
<li><code>which</code> and <code>history</code> command now also have <code>path_columns</code> metadata in their output. So the paths will render like it does for <code>ls</code> command. (<a href="https://github.com/nushell/nushell/pull/18020" target="_blank" rel="noopener noreferrer">#18020</a>)</li>
<li>Fixed an issue where <code>cp</code> could not copy symbolic links as links. Nushell now supports <code>cp -P</code> and <code>cp --no-dereference</code>, including for symlinks that point to directories. (<a href="https://github.com/nushell/nushell/pull/18162" target="_blank" rel="noopener noreferrer">#18162</a>)</li>
<li>Make auto-cd accept paths with leading/trailing whitespace. (<a href="https://github.com/nushell/nushell/pull/18123" target="_blank" rel="noopener noreferrer">#18123</a>)</li>
<li>The <code>each</code> command now preserves the metadata of the output of the closure if the input is a scalar value. (<a href="https://github.com/nushell/nushell/pull/18201" target="_blank" rel="noopener noreferrer">#18201</a>)</li>
</ul>
<h2>Bug fixes </h2>
<h3>Fixed internal sigil recursion error  </h3>
<p>Fixed an issue where if you used the built-in sigil you might get a recursion error like this. This no longer happens.</p>
<details>
<summary>Previous error output</summary>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">def</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> ls</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> []</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { %</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">ls</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> move</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> name</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --last</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">ls</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::recursion_limit_reached</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Recursion limit (50) reached</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #10:1:11</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ def ls [] { %ls | move name --last }</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">          ─────────────┬────────────</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·                        </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── This called itself too many times</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div></details>
<h3><code>http</code> commands now respect the <code>$env.NO_PROXY</code> variable  </h3>
<p><code>http</code> command now reads the environment variable <code>NO_PROXY</code> and supports the following patterns.
| Pattern | Behavior |</p>
]]></content:encoded>
    </item>
    <item>
      <title>This week in Nushell #352</title>
      <link>https://www.nushell.sh/blog/2026-05-22-twin0352.html</link>
      <guid>https://www.nushell.sh/blog/2026-05-22-twin0352.html</guid>
      <source url="https://www.nushell.sh/rss.xml">This week in Nushell #352</source>
      <description>This Week in Nushell #352
Published Friday, 2026-05-22, including PRs merged Friday, 2026-05-15 through Thursday, 2026-05-21.
Nushell


@Matthieu-LAURENT39:

fixed query web --a...</description>
      <content:encoded><![CDATA[
<p>Published Friday, 2026-05-22, including PRs merged Friday, 2026-05-15 through Thursday, 2026-05-21.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@Matthieu-LAURENT39:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18262" target="_blank" rel="noopener noreferrer">fixed query web --as-table example (#18262)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18258" target="_blank" rel="noopener noreferrer">fixed hash quoting and added tests (#18258)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18245" target="_blank" rel="noopener noreferrer">added benchmarks for parser performance and throughput analysis (#18245)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18224" target="_blank" rel="noopener noreferrer">updated deps for <code>idx</code> commands (#18224)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18217" target="_blank" rel="noopener noreferrer">improved escape handling (#18217)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18210" target="_blank" rel="noopener noreferrer">improved error handling and cleanup on unexpected errors (#18210)</a></li>
</ul>
</li>
<li>
<p>@WindSoilder:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18255" target="_blank" rel="noopener noreferrer">ps -l: introduced working_size, paged_size on windows and linux system (#18255)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18234" target="_blank" rel="noopener noreferrer">made env_hook case insensitive (#18234)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18202" target="_blank" rel="noopener noreferrer">rm: returned structure data when -v is used, and didn't interrupt when error happened (#18202)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18195" target="_blank" rel="noopener noreferrer">mkdir: didn't interrupt when error happened (#18195)</a></li>
</ul>
</li>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18253" target="_blank" rel="noopener noreferrer">test: stderr/stdout full tests should not read user config (#18253)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18242" target="_blank" rel="noopener noreferrer">Small refactors utilizing pattern matching for conciseness (#18242)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18233" target="_blank" rel="noopener noreferrer">test(watch): marked <code>watch</code> tests serial and increased timeout (#18233)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18213" target="_blank" rel="noopener noreferrer">Empty blocks' output types are the same as their input types (#18213)</a></li>
</ul>
</li>
<li>
<p>@orbisai0security:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18251" target="_blank" rel="noopener noreferrer">Limited explore search query length to keep TUI responsive (#18251)</a></li>
</ul>
</li>
<li>
<p>@SunayKulkarni:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18243" target="_blank" rel="noopener noreferrer">removed executable bit from AGENTS.md (#18243)</a></li>
</ul>
</li>
<li>
<p>@Mrfiregem:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18239" target="_blank" rel="noopener noreferrer">added <code>std-rfc/url</code> module (#18239)</a></li>
</ul>
</li>
<li>
<p>@blindFS:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18237" target="_blank" rel="noopener noreferrer">refactor(parser): PathLikeKind enum for parse_path_like (#18237)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18231" target="_blank" rel="noopener noreferrer">Moved <code>merge</code> implementation to <code>nu-heavy-utils</code> (#18231)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18216" target="_blank" rel="noopener noreferrer">Fixed running tests for only <code>nu-cli</code> (#18216)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18211" target="_blank" rel="noopener noreferrer">Fixed CI not executing all tests on Windows (#18211)</a></li>
</ul>
</li>
<li>
<p>@Juhan280:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18204" target="_blank" rel="noopener noreferrer">made <code>commandline</code> command family work again in ExecuteHostCommand (#18204)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18201" target="_blank" rel="noopener noreferrer">made <code>each</code> maintain the metadata of closure result if input is scalar (#18201)</a></li>
</ul>
</li>
<li>
<p>@quyentonndbs:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18200" target="_blank" rel="noopener noreferrer">fixed duplicated &quot;that&quot; in nu-parser comment (#18200)</a></li>
</ul>
</li>
<li>
<p>@casedami:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18197" target="_blank" rel="noopener noreferrer">added fish-style abbreviations (#18197)</a></li>
</ul>
</li>
<li>
<p>@kx0101:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18190" target="_blank" rel="noopener noreferrer">locked $env.config.history.path after REPL startup (#18190)</a></li>
</ul>
</li>
<li>
<p>@colinmparker:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18088" target="_blank" rel="noopener noreferrer">Consolidated internal Value mutation logic (#18088)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18250" target="_blank" rel="noopener noreferrer">bumped quick-xml from 0.39.2 to 0.40.1 (#18250)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18249" target="_blank" rel="noopener noreferrer">bumped rmcp from 1.6.0 to 1.7.0 (#18249)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18246" target="_blank" rel="noopener noreferrer">bumped crate-ci/typos from 1.46.1 to 1.46.2 (#18246)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@NotTheDr01ds:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2165" target="_blank" rel="noopener noreferrer">TWiN 351 (#2165)</a></li>
</ul>
</li>
<li>
<p>@orthonormalremy:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2162" target="_blank" rel="noopener noreferrer">supported extracting nu code snippets into standalone .nu files for better downstream trackability (#2162)</a></li>
</ul>
</li>
<li>
<p>@ian-h-chamberlain:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2143" target="_blank" rel="noopener noreferrer">Implemented page search URL + Opensearch XML (#2143)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2169" target="_blank" rel="noopener noreferrer">bumped postcss from 8.5.6 to 8.5.15 (#2169)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@casedami:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1083" target="_blank" rel="noopener noreferrer">expanded and submitted abbr on enter (#1083)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1074" target="_blank" rel="noopener noreferrer">moved string lit check to trait (#1074)</a></li>
</ul>
</li>
<li>
<p>@NotTheDr01ds:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1081" target="_blank" rel="noopener noreferrer">Reverted the changes in #1051 and #1058 (#1081)</a></li>
</ul>
</li>
<li>
<p>@Juhan280:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1079" target="_blank" rel="noopener noreferrer">fixed cargo doc warning (#1079)</a></li>
</ul>
</li>
</ul>
<h2>nufmt</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li>
<p><a href="https://github.com/nushell/nufmt/pull/193" target="_blank" rel="noopener noreferrer">bumped nushell deps (#193)</a></p>
</li>
<li>
<p><a href="https://github.com/nushell/nufmt/pull/192" target="_blank" rel="noopener noreferrer">batch fixes for 187, 188, 189, 190 (#192)</a></p>
</li>
<li>
<p><a href="https://github.com/nushell/nufmt/pull/191" target="_blank" rel="noopener noreferrer">Updated bug_report.md (#191)</a></p>
<div class="language-" data-highlighter="shiki" data-ext style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-"><span class="line"><span></span></span></code></pre>
</div></li>
</ul>
</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>This week in Nushell #351</title>
      <link>https://www.nushell.sh/blog/2026-05-15-twin0351.html</link>
      <guid>https://www.nushell.sh/blog/2026-05-15-twin0351.html</guid>
      <source url="https://www.nushell.sh/rss.xml">This week in Nushell #351</source>
      <description>This Week in Nushell #351
Published Friday, 2026-05-15, including PRs merged Friday, 2026-05-08 through Thursday, 2026-05-14.
Nushell


@vip892766gma:

fixed duplicated words in...</description>
      <content:encoded><![CDATA[
<p>Published Friday, 2026-05-15, including PRs merged Friday, 2026-05-08 through Thursday, 2026-05-14.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@vip892766gma:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18196" target="_blank" rel="noopener noreferrer">fixed duplicated words in comments (#18196)</a></li>
</ul>
</li>
<li>
<p>@pyz4:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18189" target="_blank" rel="noopener noreferrer">added support for header row in <code>from xlsx</code> (#18189)</a></li>
</ul>
</li>
<li>
<p>@Juhan280:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18187" target="_blank" rel="noopener noreferrer">added optional column argument for <code>grid</code> command (#18187)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18119" target="_blank" rel="noopener noreferrer">allowed <code>pre_prompt</code> and <code>env_change</code> hooks to modify the commandline (#18119)</a></li>
</ul>
</li>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18186" target="_blank" rel="noopener noreferrer">did some more cleaning (#18186)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18184" target="_blank" rel="noopener noreferrer">added <code>nu-heavy-utils</code> crate and consolidated endian flag handling (#18184)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18177" target="_blank" rel="noopener noreferrer">added new <code>prod</code> command for cartesian products in <code>std-rfc/iter</code> (#18177)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18172" target="_blank" rel="noopener noreferrer">added support for multiple cell-paths in <code>std-rfc/iter recurse</code> (#18172)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18143" target="_blank" rel="noopener noreferrer">deprecated the optional closure argument in <code>watch</code> command (#18143)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18185" target="_blank" rel="noopener noreferrer">added <code>--no-commas</code> flag to <code>to nuon</code> for compact output without comma separators (#18185)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18170" target="_blank" rel="noopener noreferrer">fixed <code>hide-env</code> and renamed <code>remove_env_var</code> to <code>hide_env_var</code> for clarity (#18170)</a></li>
</ul>
</li>
<li>
<p>@132ikl:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18181" target="_blank" rel="noopener noreferrer">gated idx import and export commands behind sqlite feature (#18181)</a></li>
</ul>
</li>
<li>
<p>@Metbcy:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18179" target="_blank" rel="noopener noreferrer">added table rendering benchmarks for nu-table (#18179)</a></li>
</ul>
</li>
<li>
<p>@WindSoilder:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18174" target="_blank" rel="noopener noreferrer">fixed clippy warnings (#18174)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18173" target="_blank" rel="noopener noreferrer">fixed <code>try</code> causing other code to run twice (#18173)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18171" target="_blank" rel="noopener noreferrer">made <code>mv -v</code> and <code>mkdir -v</code> return structured data (#18171)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18155" target="_blank" rel="noopener noreferrer">made ctrl-c work with <code>try..finally</code> while running script (#18155)</a></li>
</ul>
</li>
<li>
<p>@vvvu:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18162" target="_blank" rel="noopener noreferrer">fixed <code>cp --no-dereference</code> for symlinks (#18162)</a></li>
</ul>
</li>
<li>
<p>@ymcx:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18123" target="_blank" rel="noopener noreferrer">trimmed whitespace from REPL input, improving auto-cd with leading/trailing spaces (#18123)</a></li>
</ul>
</li>
<li>
<p>@Tyarel8:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18111" target="_blank" rel="noopener noreferrer">fixed parsing default values of type glob correctly (#18111)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18194" target="_blank" rel="noopener noreferrer">bumped scraper from 0.26.0 to 0.27.0 (#18194)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18193" target="_blank" rel="noopener noreferrer">bumped calamine from 0.34.0 to 0.35.0 (#18193)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18191" target="_blank" rel="noopener noreferrer">bumped crate-ci/typos from 1.46.0 to 1.46.1 (#18191)</a></li>
</ul>
</li>
</ul>
<h2>Awesome Nu</h2>
<ul>
<li>@BoweFlex:
<ul>
<li><a href="https://github.com/nushell/awesome-nu/pull/164" target="_blank" rel="noopener noreferrer">added Sessionizer.nu to Script List (#164)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@casedami:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1073" target="_blank" rel="noopener noreferrer">fixed quote detection in bash expansion (#1073)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1072" target="_blank" rel="noopener noreferrer">fixed abbreviation expansion before space is inserted (#1072)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1060" target="_blank" rel="noopener noreferrer">added support for fish-like abbreviations (#1060)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1068" target="_blank" rel="noopener noreferrer">refactored core_editor: extracted grapheme boundary helpers into free functions (#1068)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1061" target="_blank" rel="noopener noreferrer">introduced HelixRange selection type in helix-mode (no wiring) (#1061)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@Juhan280:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2164" target="_blank" rel="noopener noreferrer">updated jq_v_nushell (#2164)</a></li>
</ul>
</li>
<li>
<p>@NotTheDr01ds:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2161" target="_blank" rel="noopener noreferrer">published TWiN 350 (#2161)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>@orthonormalremy:
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1253" target="_blank" rel="noopener noreferrer">made just-completions obey <code>set fallback</code> (#1253)</a></li>
</ul>
</li>
</ul>
<h2>New nu-parser</h2>
<ul>
<li>@WindSoilder:
<ul>
<li><a href="https://github.com/nushell/new-nu-parser/pull/70" target="_blank" rel="noopener noreferrer">implemented <code>Copy</code> trait on <code>AstNode</code> (#70)</a></li>
</ul>
</li>
</ul>
<h2>nufmt</h2>
<ul>
<li>@jmatth:
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/186" target="_blank" rel="noopener noreferrer">fixed preserving curly braces around <code>export module</code> blocks (#186)</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>This week in Nushell #350</title>
      <link>https://www.nushell.sh/blog/2026-05-08-twin0350.html</link>
      <guid>https://www.nushell.sh/blog/2026-05-08-twin0350.html</guid>
      <source url="https://www.nushell.sh/rss.xml">This week in Nushell #350</source>
      <description>This Week in Nushell #350
Published Sunday, 2026-05-10, including PRs merged Friday, 2026-05-01 through Thursday, 2026-05-07.
Nushell


@Bahex:

added docs for get_vendor_autolo...</description>
      <content:encoded><![CDATA[
<p>Published Sunday, 2026-05-10, including PRs merged Friday, 2026-05-01 through Thursday, 2026-05-07.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18163" target="_blank" rel="noopener noreferrer">added docs for <code>get_vendor_autoload_dirs</code> (#18163)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18154" target="_blank" rel="noopener noreferrer">assorted small refactors (#18154)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18141" target="_blank" rel="noopener noreferrer">removed implicit line splitting of byte streams in <code>parse</code> (#18141)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18158" target="_blank" rel="noopener noreferrer">implemented dynamic dispatch for % sigil commands (#18158)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18142" target="_blank" rel="noopener noreferrer">added <code>idx</code> family of commands for in-memory indexing (#18142)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18081" target="_blank" rel="noopener noreferrer">handled <code>kill -0</code> as signal shorthand and updated PID handling (#18081)</a></li>
</ul>
</li>
<li>
<p>@kiil:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18156" target="_blank" rel="noopener noreferrer">allowed filtering custom completions by description (#18156)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18144" target="_blank" rel="noopener noreferrer">allowed configuring <code>version</code> field in <code>version</code> command (#18144)</a></li>
</ul>
</li>
<li>
<p>@Juhan280:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18020" target="_blank" rel="noopener noreferrer">added <code>path_columns</code> metadata to <code>which</code> and history command (#18020)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18167" target="_blank" rel="noopener noreferrer">bumped openssl from 0.10.78 to 0.10.79 (#18167)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18166" target="_blank" rel="noopener noreferrer">bumped rmcp from 1.5.0 to 1.6.0 (#18166)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18164" target="_blank" rel="noopener noreferrer">bumped crate-ci/typos from 1.45.2 to 1.46.0 (#18164)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18138" target="_blank" rel="noopener noreferrer">bumped fancy-regex from 0.17.0 to 0.18.0 (#18138)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18136" target="_blank" rel="noopener noreferrer">bumped lru from 0.17.0 to 0.18.0 (#18136)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18135" target="_blank" rel="noopener noreferrer">bumped data-encoding from 2.10.0 to 2.11.0 (#18135)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18134" target="_blank" rel="noopener noreferrer">bumped shadow-rs from 1.7.1 to 2.0.0 (#18134)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18133" target="_blank" rel="noopener noreferrer">bumped crate-ci/typos from 1.45.1 to 1.45.2 (#18133)</a></li>
</ul>
</li>
</ul>
<h2>New nu-parser</h2>
<ul>
<li>@kubouch:
<ul>
<li><a href="https://github.com/nushell/new-nu-parser/pull/69" target="_blank" rel="noopener noreferrer">added block-getting helper (#69)</a></li>
</ul>
</li>
</ul>
<h2>nufmt</h2>
<ul>
<li>
<p>@matystroia:</p>
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/184" target="_blank" rel="noopener noreferrer">fixed typo after formatting single file (#184)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/183" target="_blank" rel="noopener noreferrer">batch fixes, updated some deps (#183)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>@NotTheDr01ds:
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2160" target="_blank" rel="noopener noreferrer">added TWiN 349 (#2160)</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>This week in Nushell #349</title>
      <link>https://www.nushell.sh/blog/2026-05-01-twin0349.html</link>
      <guid>https://www.nushell.sh/blog/2026-05-01-twin0349.html</guid>
      <source url="https://www.nushell.sh/rss.xml">This week in Nushell #349</source>
      <description>This Week in Nushell #349
Published Friday, 2026-05-01, including PRs merged Friday, 2026-04-24 through Thursday, 2026-04-30.
Nushell


@ayax79:

removed claude settings and ign...</description>
      <content:encoded><![CDATA[
<p>Published Friday, 2026-05-01, including PRs merged Friday, 2026-04-24 through Thursday, 2026-04-30.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@ayax79:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18145" target="_blank" rel="noopener noreferrer">removed claude settings and ignored them (#18145)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18120" target="_blank" rel="noopener noreferrer">added even more polars selectors (#18120)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18114" target="_blank" rel="noopener noreferrer">added additional polars selectors: ends-with, alpha, and alphanumeric (#18114)</a></li>
</ul>
</li>
<li>
<p>@pyz4:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18140" target="_blank" rel="noopener noreferrer">added default --on-cols value for pivot when not specified (#18140)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18131" target="_blank" rel="noopener noreferrer">improved argument handling for untyped rest parameters (#18131)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18107" target="_blank" rel="noopener noreferrer">refactored <code>from md</code> with <code>--verbose</code> for full AST and defaulting to a reduced mode (#18107)</a></li>
</ul>
</li>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18127" target="_blank" rel="noopener noreferrer">refactored tests to avoid format! (#18127)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18115" target="_blank" rel="noopener noreferrer">fixed <code>Rename</code> events in <code>watch</code> (#18115)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18098" target="_blank" rel="noopener noreferrer">added <code>test_table!</code> macro for easier writing of tests and examples (#18098)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18095" target="_blank" rel="noopener noreferrer">refactored parser parameter type and string interpolation (#18095)</a></li>
</ul>
</li>
<li>
<p>@colinmparker:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18108" target="_blank" rel="noopener noreferrer">(#17448) updated label and help text on CantFindCol error (#18108)</a></li>
</ul>
</li>
</ul>
<h2>nufmt</h2>
<ul>
<li>@fdncred:
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/177" target="_blank" rel="noopener noreferrer">preserved parentheses in if-call expressions and added related tests (#177)</a></li>
<li><a href="https://github.com/nushell/nufmt/pull/175" target="_blank" rel="noopener noreferrer">improved organization, added more documentation, and applied DRY principle (#175)</a></li>
<li><a href="https://github.com/nushell/nufmt/pull/174" target="_blank" rel="noopener noreferrer">enhanced formatting options and added tests for margin behavior and alias invocation (#174)</a></li>
<li><a href="https://github.com/nushell/nufmt/pull/170" target="_blank" rel="noopener noreferrer">added support for alias command formatting and preserved comment spacing (#170)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>
<p>@NotTheDr01ds:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1251" target="_blank" rel="noopener noreferrer">formatted TWiN using Deepseek V4 Flash (#1251)</a></li>
</ul>
</li>
<li>
<p>@Abdillah:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1250" target="_blank" rel="noopener noreferrer">added diff completion for modified files in git (#1250)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>@NotTheDr01ds:
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2159" target="_blank" rel="noopener noreferrer">published TWiN 348 (#2159)</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>This week in Nushell #348</title>
      <link>https://www.nushell.sh/blog/2026-04-24-twin0348.html</link>
      <guid>https://www.nushell.sh/blog/2026-04-24-twin0348.html</guid>
      <source url="https://www.nushell.sh/rss.xml">This week in Nushell #348</source>
      <description>This Week in Nushell #348
Published Monday, 2026-04-27, including PRs merged Friday, 2026-04-17 through Thursday, 2026-04-23.
Nushell


@freepicheep:

fixed module description p...</description>
      <content:encoded><![CDATA[
<p>Published Monday, 2026-04-27, including PRs merged Friday, 2026-04-17 through Thursday, 2026-04-23.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@freepicheep:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18106" target="_blank" rel="noopener noreferrer">fixed module description parsing with leading shebang (#18106)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18099" target="_blank" rel="noopener noreferrer">bumped reedline to latest commit (#18099)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18084" target="_blank" rel="noopener noreferrer">fixed issue with sigil recursion (#18084)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18077" target="_blank" rel="noopener noreferrer">updated Rust toolchain to 1.93.1 + some deps (#18077)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18067" target="_blank" rel="noopener noreferrer">updated nushell to latest reedline commit 4ffb1d3 (#18067)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18058" target="_blank" rel="noopener noreferrer">enhanced <code>ansi gradient</code> command with named gradients and improved options (#18058)</a></li>
</ul>
</li>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18097" target="_blank" rel="noopener noreferrer">refactored to prefer borrowed strings (#18097)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18096" target="_blank" rel="noopener noreferrer">refactored/updated some old tests to the newer in process style (#18096)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18094" target="_blank" rel="noopener noreferrer">replaced FindMapResult with ControlFlow (#18094)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18085" target="_blank" rel="noopener noreferrer">made <code>metadata access</code> able to modify <code>$env</code> (#18085)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18093" target="_blank" rel="noopener noreferrer">updated <code>random choice</code> type signature (#18093)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18092" target="_blank" rel="noopener noreferrer">bumped <code>rustls-webpki</code> (#18092)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18091" target="_blank" rel="noopener noreferrer">implemented <code>Debug</code> for <code>EngineState</code> and derived more <code>Debug</code> impls (#18091)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18083" target="_blank" rel="noopener noreferrer">tightened up <code>nu_mcp::evaluation::test_cancellation_promotes_to_background_job</code> test (#18083)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18076" target="_blank" rel="noopener noreferrer">added <code>Command: Any</code> and <code>CustomValue: Any</code> (#18076)</a></li>
</ul>
</li>
<li>
<p>@WindSoilder:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18075" target="_blank" rel="noopener noreferrer">made <code>finally</code> not affect return value (#18075)</a></li>
</ul>
</li>
<li>
<p>@orbisai0security:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18074" target="_blank" rel="noopener noreferrer">fixed variable interpolation <code>${{</code> in release-msi.yml (#18074)</a></li>
</ul>
</li>
<li>
<p>@Tyarel8:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18073" target="_blank" rel="noopener noreferrer">added progressbar osc 9;4 wrapper to std-rfc (#18073)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18056" target="_blank" rel="noopener noreferrer">fixed warning when not compiling with mcp (#18056)</a></li>
</ul>
</li>
<li>
<p>@andrewgazelka:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18071" target="_blank" rel="noopener noreferrer">documented preferring <code>| complete</code> over <code>o+e&gt;| complete</code> in nu-mcp (#18071)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18070" target="_blank" rel="noopener noreferrer">removed timeout_secs param in nu-mcp, relying on NU_MCP_PROMOTE_AFTER (#18070)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18059" target="_blank" rel="noopener noreferrer">raised default promote-after to 2m and added <code>timeout_secs</code> param in nu-mcp (#18059)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18057" target="_blank" rel="noopener noreferrer">overhauled nu-mcp instructions sent to MCP clients (#18057)</a></li>
</ul>
</li>
<li>
<p>@kaathewisegit:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18068" target="_blank" rel="noopener noreferrer">fixed backtabbing in <code>--multi</code> mode in <code>input list</code> (#18068)</a></li>
</ul>
</li>
<li>
<p>@OneProgGit:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18066" target="_blank" rel="noopener noreferrer">fixed typo (#18066)</a></li>
</ul>
</li>
<li>
<p>@Juhan280:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18065" target="_blank" rel="noopener noreferrer">fixed failing test for <code>grid</code> command (#18065)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18087" target="_blank" rel="noopener noreferrer">bumped similar from 3.0.0 to 3.1.0 (#18087)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18086" target="_blank" rel="noopener noreferrer">bumped rmcp from 1.3.0 to 1.5.0 (#18086)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18043" target="_blank" rel="noopener noreferrer">bumped hashbrown from 0.16.1 to 0.17.0 (#18043)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18042" target="_blank" rel="noopener noreferrer">bumped lean_string from 0.5.1 to 0.6.0 (#18042)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>@jatinderjit:
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1249" target="_blank" rel="noopener noreferrer">updated <code>tldr</code> completions for commands (#1249)</a></li>
<li><a href="https://github.com/nushell/nu_scripts/pull/1247" target="_blank" rel="noopener noreferrer">fixed wordle (#1247)</a></li>
</ul>
</li>
</ul>
<h2>Tree-sitter</h2>
<ul>
<li>@Tyarel8:
<ul>
<li><a href="https://github.com/nushell/tree-sitter-nu/pull/248" target="_blank" rel="noopener noreferrer">added optional sigil <code>%</code> to start of commands (#248)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2158" target="_blank" rel="noopener noreferrer">updated startup stages to include sourcing of autoload directories (#2158)</a></li>
</ul>
</li>
<li>
<p>@NotTheDr01ds:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2157" target="_blank" rel="noopener noreferrer">added a few more TWiNs (#2157)</a></li>
</ul>
</li>
<li>
<p>@istar410:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2156" target="_blank" rel="noopener noreferrer">fixed keychain command (#2156)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@tisonkun:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1058" target="_blank" rel="noopener noreferrer">fixed always reset undo stack on Ctrl+C event (#1058)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1051" target="_blank" rel="noopener noreferrer">gracefully handled ReedlineEvent::CtrlC (#1051)</a></li>
</ul>
</li>
<li>
<p>@Juhan280:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1057" target="_blank" rel="noopener noreferrer">made <code>keybindings</code> crate only used for <code>helix</code> (#1057)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1053" target="_blank" rel="noopener noreferrer">added vi normal mode <code>o</code> and <code>O</code> command (#1053)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1052" target="_blank" rel="noopener noreferrer">deprecated <code>get_reedline_reedline_events</code>, <code>get_reedline_edit_commands</code> and <code>get_reedline_prompt_edit_modes</code> (#1052)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1049" target="_blank" rel="noopener noreferrer">made <code>ReedlineEvent::ExecuteHostCommand</code> return <code>Signal::HostCommand</code> instead of <code>Signal::Success</code> (#1049)</a></li>
</ul>
</li>
<li>
<p>@SAY-5:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1055" target="_blank" rel="noopener noreferrer">fixed divide-by-zero in estimate_single_line_wraps for 0-column terminals (#1055)</a></li>
</ul>
</li>
<li>
<p>@schlich:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1039" target="_blank" rel="noopener noreferrer">added basic mode switching in helix mode (#1039)</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>This week in Nushell #347</title>
      <link>https://www.nushell.sh/blog/2026-04-17-twin0347.html</link>
      <guid>https://www.nushell.sh/blog/2026-04-17-twin0347.html</guid>
      <source url="https://www.nushell.sh/rss.xml">This week in Nushell #347</source>
      <description>This Week in Nushell #347
Published Sunday, 2026-04-19, including PRs merged Friday, 2026-04-10 through Thursday, 2026-04-16.
Nushell


@cptpiepmatz:

bumped to 0.112.3 (#18055)...</description>
      <content:encoded><![CDATA[
<p>Published Sunday, 2026-04-19, including PRs merged Friday, 2026-04-10 through Thursday, 2026-04-16.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18055" target="_blank" rel="noopener noreferrer">bumped to 0.112.3 (#18055)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18053" target="_blank" rel="noopener noreferrer">bumped rustls-webpki (#18053)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18017" target="_blank" rel="noopener noreferrer">post release bump to 0.112.2 (#18017)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18016" target="_blank" rel="noopener noreferrer">selected specific version for <code>getrandom</code> and bumped minor (#18016)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18015" target="_blank" rel="noopener noreferrer">stopped using <code>version</code> for nu dev dependencies (#18015)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18014" target="_blank" rel="noopener noreferrer">prepared release (#18014)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18039" target="_blank" rel="noopener noreferrer">fixed input list regressions with keystrokes and fuzzy (#18039)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18030" target="_blank" rel="noopener noreferrer">fixed quoting regression in argument handling for evaluate_file; added tests (#18030)</a></li>
</ul>
</li>
<li>
<p>@Juhan280:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18027" target="_blank" rel="noopener noreferrer">fixed: properly quoted special characters in script arguments (#18027)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>@cptpiepmatz:
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1047" target="_blank" rel="noopener noreferrer">bumped to 0.47.0 (#1047)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>
<p>@Juhan280:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1246" target="_blank" rel="noopener noreferrer">updated result module (#1246)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1245" target="_blank" rel="noopener noreferrer">updated get-weather.nu to url encode location (#1245)</a></li>
</ul>
</li>
<li>
<p>@ask4fusora:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1244" target="_blank" rel="noopener noreferrer">used path-columns in result metadata hook (#1244)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1243" target="_blank" rel="noopener noreferrer">fixed <code>FileVersion</code> entry in bump-version script (#1243)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2154" target="_blank" rel="noopener noreferrer">added release notes for <code>v0.112.2</code> (#2154)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2149" target="_blank" rel="noopener noreferrer">fixed smol issues with 0.112.1 changelog (#2149)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2148" target="_blank" rel="noopener noreferrer">added release notes for <code>v0.112.0</code> (#2148)</a></li>
</ul>
</li>
<li>
<p>@Kissaki:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2151" target="_blank" rel="noopener noreferrer">fixed typo in v0.112.1 post (#2151)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2150" target="_blank" rel="noopener noreferrer">added inline code fencing in v0.112.1 post (#2150)</a></li>
</ul>
</li>
<li>
<p>@hustcer:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2147" target="_blank" rel="noopener noreferrer">refreshed command docs for 0.112 (#2147)</a></li>
</ul>
</li>
<li>
<p>@Juhan280:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2146" target="_blank" rel="noopener noreferrer">updated <code>metadata set</code> example of the book (#2146)</a></li>
</ul>
</li>
<li>
<p>@Drazape:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2100" target="_blank" rel="noopener noreferrer">fixed outdated substring output in book (#2100)</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>Nushell 0.112.2</title>
      <link>https://www.nushell.sh/blog/2026-04-15-nushell_v0_112_2.html</link>
      <guid>https://www.nushell.sh/blog/2026-04-15-nushell_v0_112_2.html</guid>
      <source url="https://www.nushell.sh/rss.xml">Nushell 0.112.2</source>
      <description>Nushell 0.112.2
Today, we&amp;apos;re releasing version 0.112.2 of Nu. This release adds fixes for regressions in script argument quoting and input list, improving handling for quoted st...</description>
      <content:encoded><![CDATA[
<p>Today, we're releasing version 0.112.2 of Nu. This release adds fixes for regressions in script argument quoting and <code>input list</code>, improving handling for quoted strings, special characters, fuzzy selection, and multi-select navigation.</p>
<h1>Where to get it</h1>
<p>Nu 0.112.2 is available as <a href="https://github.com/nushell/nushell/releases/tag/0.112.2" target="_blank" rel="noopener noreferrer">pre-built binaries</a> or from <a href="https://crates.io/crates/nu" target="_blank" rel="noopener noreferrer">crates.io</a>. If you have Rust installed you can install it using <code>cargo install nu</code>.</p>
<p>As part of this release, we also publish a set of optional <a href="https://www.nushell.sh/book/plugins.html" target="_blank" rel="noopener noreferrer">plugins</a> you can install and use with Nushell.</p>

<h1>Changes </h1>
<h2>Bug fixes </h2>
<h3>Fixed regressions in quoting for string arguments in Nu script calls  </h3>
<p>This release fixes incorrect quoting behavior when passing string arguments to Nu scripts. Quoted strings, including those with spaces and escape sequences, are now handled consistently.</p>
<p>Using these test scripts:</p>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="test.nu">
    <span>test.nu</span>
  </div>
  <div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> --wrapped</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> main</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic">...</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">args</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">string</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] {</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">  print</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $args</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">  print</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$args.1</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> str substring</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 0</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">..</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">0</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">)</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="test2.nu">
    <span>test2.nu</span>
  </div>
  <div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> main</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic">...</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">args</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">string</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] {</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">    print</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> ...</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">(</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$args</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">)</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div>
</div><p>Quoted arguments now behave correctly:</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">nu</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> test2.nu</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> a</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> b</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> "c\nd"</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">a</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">b</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">c</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">d</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">nu</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> test.nu</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> arg1</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> "arg 2"</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ arg1  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ arg 2 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───────╯</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">a</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">nu</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> --no-config-file</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> test2.nu</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> a</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> b</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> "c\nd"</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">a</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">b</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">c</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">d</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">nu</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> --no-config-file</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> test.nu</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> arg1</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> "arg 2"</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ arg1  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ arg 2 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───────╯</span></span></code></pre>
</div><h3>Fixed regressions for <code>input list</code>  </h3>
<p>This release fixes several regressions introduced in the previous release affecting <code>input list</code> behavior:</p>
<ul>
<li>Restored correct Tab and Backtab handling when using <code>--fuzzy</code>.</li>
<li>Aligned behavior across <code>--fuzzy</code>, <code>--multi</code>, and combined <code>--fuzzy --multi</code>.</li>
<li>Fixed cursor movement issues when <code>--multi</code> is enabled.</li>
<li>Resolved Backtab wrap-around behavior.</li>
<li>Corrected arrow key cursor navigation.</li>
<li>Fixed an issue where <code>--fuzzy</code> did not search all items when input is streamed.</li>
</ul>
<h3>Other fixes</h3>
<ul>
<li>When nu is run from a script, empty strings and strings containing <code>[</code>, <code>{</code>, or <code>}</code> in the arguments are properly quoted. (<a href="https://github.com/nushell/nushell/pull/18027" target="_blank" rel="noopener noreferrer">#18027</a>)</li>
</ul>
<h1>Full changelog </h1>
<p>| author                                         | title                                                                    | link                                                    |
|</p>
]]></content:encoded>
    </item>
    <item>
      <title>Nushell 0.112.1</title>
      <link>https://www.nushell.sh/blog/2026-04-11-nushell_v0_112_1.html</link>
      <guid>https://www.nushell.sh/blog/2026-04-11-nushell_v0_112_1.html</guid>
      <source url="https://www.nushell.sh/rss.xml">Nushell 0.112.1</source>
      <description>Nushell 0.112.1
Today, we&amp;apos;re releasing version 0.112.1 of Nu. This release adds structured markdown parsing with from md, a new % sigil to explicitly call internal commands, and...</description>
      <content:encoded><![CDATA[
<p>Today, we're releasing version 0.112.1 of Nu. This release adds structured markdown parsing with <code>from md</code>, a new <code>%</code> sigil to explicitly call internal commands, and a bunch of new config options to better shape Nu to your workflow, along with improvements to type checking for cell paths.</p>
<div class="hint-container note">
<p class="hint-container-title">Note</p>
<p>Some crates failed to release properly, so we skip <code>0.112.0</code>.</p>
</div>
<h1>Where to get it</h1>
<p>Nu 0.112.1 is available as <a href="https://github.com/nushell/nushell/releases/tag/0.112.1" target="_blank" rel="noopener noreferrer">pre-built binaries</a> or from <a href="https://crates.io/crates/nu" target="_blank" rel="noopener noreferrer">crates.io</a>. If you have Rust installed you can install it using <code>cargo install nu</code>.</p>
<p>As part of this release, we also publish a set of optional <a href="https://www.nushell.sh/book/plugins.html" target="_blank" rel="noopener noreferrer">plugins</a> you can install and use with Nushell.</p>

<h1>Highlights and themes of this release </h1>
<h2>Parse markdown via <code>from md</code></h2>
<div class="hint-container warning">
<p class="hint-container-title">Breaking change</p>
<p>The <code>from md</code> is considered a breaking change as previously <code>open *.md</code> would return a string.</p>
</div>
<p>We added a new <code>from md</code> command that lets you parse markdown into structured data. Instead of manually pulling pieces out of a markdown string and hoping it works, you now get something much more reliable to work with.</p>
<div class="hint-container info">
<p class="hint-container-title">Info</p>
<p>Since <code>from</code> commands affect how <code>open</code> behaves, we'd love your input on whether the name still makes sense. Join the discussion on <a href="https://github.com/nushell/nushell/discussions/18011" target="_blank" rel="noopener noreferrer">Github</a> and share your thoughts.</p>
</div>
<p>Check out the example output <a href="#parse-markdown-via-from-md-1">here</a>.</p>
<h2>No more shadows, call internals with <code>%</code></h2>
<p>Nushell already has the <code>^</code> sigil to explicitly call external commands. That way you can still run a binary even if there's a built-in or custom command with the same name.</p>
<p>A lot of people asked for something similar for internal commands and now we have it. Thanks to <a href="https://github.com/fdncred" target="_blank" rel="noopener noreferrer">@fdncred</a>, the new <code>%</code> sigil lets you explicitly call built-ins.</p>
<p>It always uses the initial scope and won't fall back to externals. That means you can reliably call internal commands, even if they're hidden.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">version</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> get</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> version</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">0.112.1</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">hide</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> version</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">version</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> get</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> version</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::external_command</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> External command failed</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #17:1:1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ version | get version</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">───┬───</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·    </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── Command `version` not found</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  help: </span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Did you mean `version check`?</span></span>
<span class="line"></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">%</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">version</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> get</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> version</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">0.112.1</span></span></code></pre>
</div><p>More details in the <a href="#new-sigil-to-explicitly-call-built-ins">main entry</a>.</p>
<h2>Configure Nushell how you like</h2>
<p>This release comes with a bunch of new config options to tweak things to your liking.</p>
<h3><code>$env.config.history.path</code></h3>
<details>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># history.path (string): Path to the history file.</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># If not set, Nushell will use the default location.</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># You can also provide a custom path for your history file.</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># Examples:</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># Use a custom location (e.g., in your home directory):</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.config.history.path</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "~/custom/my-history.txt"</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># Default behavior:</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># If not set (null), Nushell stores history in the default config directory.</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># If set to a directory, the appropriate file name (e.g., history.txt) is used.</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># If set to a filename only, the file will be stored in $nu.default-config-dir.</span></span></code></pre>
</div></details>
<p>Thanks to <a href="https://github.com/kx0101" target="_blank" rel="noopener noreferrer">@kx0101</a>, you can now choose exactly where your history file lives.
This ignores the file format, so make sure your config matches.
You can also set it to <code>null</code> to disable history entirely.
Read <a href="#history-file-path-can-now-be-configured">more</a>.</p>
<h3><code>$env.config.history.ignore_space_prefixed</code></h3>
<details>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># history.ignore_space_prefixed (bool): Whether commands starting with leading whitespace are saved to history.</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># true: Commands starting with one or more spaces or tabs will NOT be saved.</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># false: All commands are saved, including those with any amount of leading whitespace.</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># Default: true</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.config.history.ignore_space_prefixed</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66"> true</span></span></code></pre>
</div></details>
<p><a href="https://github.com/guluo2016" target="_blank" rel="noopener noreferrer">@guluo2016</a> added an option to control whether commands starting with a space end up in your history.
Read <a href="#new-option-to-allow-command-with-space-prefixes-to-be-recorded-in-history">more</a>.</p>
<h3><code>$env.config.auto_cd_implicit</code></h3>
<details>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># auto_cd_implicit (bool): Gives precedence to auto-cd when command string is</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># an existing directory path.</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># false: A relative (e.g.  './dirname') or absolute path is required to auto-cd.</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># true: If the command string matches a subdirectory in the current directory</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># (e.g. 'src'), auto-cd will be triggered without needing './' or '/'.</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.config.auto_cd_implicit</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66"> false</span></span></code></pre>
</div></details>
<p><a href="https://github.com/dxrcy" target="_blank" rel="noopener noreferrer">@dxrcy</a> added a config option that lets you automatically <code>cd</code> into directories when you type their name.
Read <a href="#new-configuration-option-auto-cd-always">more</a>.</p>
<h3><code>$env.config.hinter.closure</code></h3>
<details>
<div class="language-nushell line-numbers-mode" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># hinter.closure (closure|null): Custom hint closure.</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># Closure input: one record argument {|ctx| ... } where</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">#   $ctx.line (string): current line buffer</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">#   $ctx.pos (int): current cursor position</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">#   $ctx.cwd (string): current working directory</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># Return:</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">#   string -> hint suffix to render and accept</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">#   record -> {hint: string, next_token?: string} for custom token splitting</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">#   null   -> no hint (equivalent to "")</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># Any closure error or unsupported return type yields no hint.</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># To use the built-in hinter instead, set hinter.closure = null in config.</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># This closure runs frequently while typing, so keep it lightweight.</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># Default: null</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.config.hinter.closure</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66"> null</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># Example:</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># $env.config.hinter.closure = {|ctx|</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">#   let last = (history | last 1 | get command_line? | get 0?)</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">#   if $last == null or not ($last | str starts-with $ctx.line) {</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">#     null</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">#   } else {</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">#     ($last | str substring ($ctx.line | str length)..)</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">#   }</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># }</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>
<p>Thanks to <a href="https://github.com/stuartcarnie" target="_blank" rel="noopener noreferrer">@stuartcarnie</a>, you can now plug in your own hinter using a closure.
Read <a href="#added-configurable-external-hinter-closure">more</a>.</p>
<h3><code>$env.config.table.mode = &quot;frameless&quot;</code></h3>
<details>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># table.mode (string): Visual border style for tables.</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># One of: "rounded", "basic", "compact", "compact_double", "light", "thin",</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># "with_love", "reinforced", "heavy", "none", "psql", "markdown", "dots",</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># "restructured", "ascii_rounded", "basic_compact", "single", "double",</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># "frameless".</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># Can be overridden with `| table --theme/-t`.</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># Default: "rounded"</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.config.table.mode</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "rounded"</span></span></code></pre>
</div></details>
<p><a href="https://github.com/Benjas333" target="_blank" rel="noopener noreferrer">@Benjas333</a> added a new table style called &quot;frameless&quot;.
Take a look <a href="#new-table-style-frameless">here</a>.</p>
<h3><code>$env.config.color_config.binary_*</code></h3>
<details>
<div class="language-nushell line-numbers-mode" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># color_config.binary_null_char: Style for null characters (\0) in binary hex viewer.</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># Default: grey42</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.config.color_config.binary_null_char</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "grey42"</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># color_config.binary_printable: Style for printable ASCII characters in binary hex viewer.</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># Default: cyan_bold</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.config.color_config.binary_printable</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "cyan_bold"</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># color_config.binary_whitespace: Style for whitespace ASCII characters in binary hex viewer.</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># Default: green_bold</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.config.color_config.binary_whitespace</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "green_bold"</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># color_config.binary_ascii_other: Style for other ASCII characters in binary hex viewer.</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># Default: purple_bold</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.config.color_config.binary_ascii_other</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "purple_bold"</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># color_config.binary_non_ascii: Style for non-ASCII characters in binary hex viewer.</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># Default: yellow_bold</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.config.color_config.binary_non_ascii</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "yellow_bold"</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>
<p><a href="https://github.com/ian-h-chamberlain" target="_blank" rel="noopener noreferrer">@ian-h-chamberlain</a> added more color options for binary data in the hex viewer in <a href="https://github.com/nushell/nushell/pull/17887" target="_blank" rel="noopener noreferrer">#17887</a>.</p>
<h2>Types via cell.paths! - <code>cell-path-types</code></h2>
<p><a href="https://github.com/blindFS" target="_blank" rel="noopener noreferrer">@blindFS</a> introduced a new experimental option that makes type inference smarter when working with cell paths.</p>
<p>Before this, issues with nested types would only show up at runtime. Now they can already be caught during parsing.</p>
<p>Check out some examples <a href="#new-experimental-option-cell-path-types">here</a>.</p>
<h1>Changes </h1>
<h2>Breaking changes </h2>
<h3>Parse markdown via <code>from md</code>  </h3>
<div class="hint-container info">
<p class="hint-container-title">Info</p>
<p>The introduction of <code>from md</code> caused some discussion whether Nushell should automatically parse text formats like markdown.
We want to encourage discussion whether this is a fitting name or not in a <a href="https://github.com/nushell/nushell/discussions/18011" target="_blank" rel="noopener noreferrer">Github discussion</a>.
Please state your opinion on this.</p>
</div>
<p>Added new command <code>from md</code> to parse markdown into an AST.
This is considered a breaking change as <code>open</code>ing a markdown file now no longer returns a raw string but rather a structured AST.</p>
<p>Use <code>open --raw</code> to open without conversion or hide the command using <code>hide 'from md'</code>.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'# Title'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> from md</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> table</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -e</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───────┬──────────┬────────────────────────────────┬──────────────────┬───────────────────────────────────────────────────────────────────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│     </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">type</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │            </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">position</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">            │      </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">attrs</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">       │                                     </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">children</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">                                      │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───────┼──────────┼────────────────────────────────┼──────────────────┼───────────────────────────────────────────────────────────────────────────────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│     </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ h1       │ ╭───────┬────────────────╮     │ ╭───────┬───╮    │ ╭───┬──────┬────────────────────────────┬───────────────────┬────────────────╮    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│       │          │ │       │ ╭────────┬───╮ │     │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">depth</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │    │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">type</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │          </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">position</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">          │       </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">attrs</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">       │    </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">children</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    │    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│       │          │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">start</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">line</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ 1 │ │     │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">level</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │    │ ├───┼──────┼────────────────────────────┼───────────────────┼────────────────┤    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│       │          │ │       │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">column</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │ │     │ ╰───────┴───╯    │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ text │ ╭───────┬────────────────╮ │ ╭───────┬───────╮ │ [list 0 items] │    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│       │          │ │       │ ╰────────┴───╯ │     │                  │ │   │      │ │       │ ╭────────┬───╮ │ │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">value</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ Title │ │                │    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│       │          │ │       │ ╭────────┬───╮ │     │                  │ │   │      │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">start</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">line</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ 1 │ │ │ ╰───────┴───────╯ │                │    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│       │          │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">end</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">line</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ 1 │ │     │                  │ │   │      │ │       │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">column</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 3 │ │ │                   │                │    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│       │          │ │       │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">column</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 8 │ │     │                  │ │   │      │ │       │ ╰────────┴───╯ │ │                   │                │    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│       │          │ │       │ ╰────────┴───╯ │     │                  │ │   │      │ │       │ ╭────────┬───╮ │ │                   │                │    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│       │          │ ╰───────┴────────────────╯     │                  │ │   │      │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">end</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">line</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ 1 │ │ │                   │                │    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│       │          │                                │                  │ │   │      │ │       │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">column</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 8 │ │ │                   │                │    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│       │          │                                │                  │ │   │      │ │       │ ╰────────┴───╯ │ │                   │                │    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│       │          │                                │                  │ │   │      │ ╰───────┴────────────────╯ │                   │                │    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│       │          │                                │                  │ ╰───┴──────┴────────────────────────────┴───────────────────┴────────────────╯    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───────┴──────────┴────────────────────────────────┴──────────────────┴───────────────────────────────────────────────────────────────────────────────────╯</span></span></code></pre>
</div><h3>Other breaking changes </h3>
<ul>
<li>Mutable cell assignment now respects experimental option <a href="#new-experimental-option-cell-path-types"><code>reorder-cell-paths</code></a>. (<a href="https://github.com/nushell/nushell/pull/17696" target="_blank" rel="noopener noreferrer">#17696</a>)</li>
<li><code>job tag</code> is now called <code>job describe</code>, the <code>--tag</code> flag in <code>job spawn</code> and the <code>tag</code> column in <code>job list</code>, as <code>tag</code> was renamed to <code>description</code> for these. (<a href="https://github.com/nushell/nushell/pull/17496" target="_blank" rel="noopener noreferrer">#17496</a>)</li>
<li><code>random choice</code> from <code>std-rfc</code> now behaves more similar to <code>first</code>, so that <code>random choice</code> returns a single element and <code>random choice 1</code> returns a list with one element. (<a href="https://github.com/nushell/nushell/pull/17983" target="_blank" rel="noopener noreferrer">#17983</a>)</li>
</ul>
<h2>Additions </h2>
<h3>New flag <code> --list-of-records</code> for <code>to nuon</code>  </h3>
<p>Add support for <code>list-of-records</code> serialization in <code>to nuon</code> command to return tables as a list of records instead of inline tables.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">ls</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to nuon</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --list-of-records</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">[{name: ".cargo", type: dir, size: 0b, modified: 2026-04-11T14:28:01.485060+02:00}, {name: ".gitattributes", type: file, size: 113b, modified: 2026-04-11T14:28:01.485565900+02:00}, {name: ".githooks", type: dir, size: 0b, modified: 2026-04-11T14:28:01.486572700+02:00}, {name: ".github", type: dir, size: 0b, modified: 2026-04-11T14:28:01.490573100+02:00}, {name: ".gitignore", type: file, size: 834b, modified: 2026-04-11T14:28:01.497597200+02:00}, {name: "AGENTS.md", type: file, size: 2115b, modified: 2026-04-11T14:28:01.498597200+02:00}, {name: "CITATION.cff", type: file, size: 838b, modified: 2026-04-11T14:28:01.498597200+02:00}, {name: "CLAUDE.md", type: symlink, size: 0b, modified: 2026-04-11T14:28:01.499597100+02:00}, {name: "CODE_OF_CONDUCT.md", type: file, size: 3520b, modified: 2026-04-11T14:28:01.499597100+02:00}, {name: "CONTRIBUTING.md", type: file, size: 18714b, modified: 2026-04-11T14:28:01.500597200+02:00}, {name: "Cargo.lock", type: file, size: 257047b, modified: 2026-04-11T14:28:01.501597200+02:00}, {name: "Cargo.toml", type: file, size: 11950b, modified: 2026-04-11T14:28:01.502596700+02:00}, {name: "Cross.toml", type: file, size: 684b, modified: 2026-04-11T14:28:01.502596700+02:00}, {name: LICENSE, type: file, size: 1115b, modified: 2026-04-11T14:28:01.502596700+02:00}, {name: "README.md", type: file, size: 12742b, modified: 2026-04-11T14:28:01.504102900+02:00}, {name: "SECURITY.md", type: file, size: 2710b, modified: 2026-04-11T14:28:01.504102900+02:00}, {name: assets, type: dir, size: 0b, modified: 2026-04-11T14:28:01.512623900+02:00}, {name: ast-grep, type: dir, size: 0b, modified: 2026-04-11T14:28:01.522645800+02:00}, {name: benches, type: dir, size: 0b, modified: 2026-04-11T14:28:01.524151300+02:00}, {name: "clippy.toml", type: file, size: 170b, modified: 2026-04-11T14:28:01.525159300+02:00}, {name: crates, type: dir, size: 0b, modified: 2026-04-11T14:28:02.451098600+02:00}, {name: devdocs, type: dir, size: 0b, modified: 2026-04-11T14:28:02.457631100+02:00}, {name: docker, type: dir, size: 0b, modified: 2026-04-11T14:28:02.458631500+02:00}, {name: "rust-toolchain.toml", type: file, size: 956b, modified: 2026-04-11T14:28:02.459632800+02:00}, {name: "rustfmt.toml", type: file, size: 18b, modified: 2026-04-11T14:28:02.459632800+02:00}, {name: scripts, type: dir, size: 0b, modified: 2026-04-11T14:28:02.466730800+02:00}, {name: "sgconfig.yml", type: file, size: 218b, modified: 2026-04-11T14:28:02.466730800+02:00}, {name: src, type: dir, size: 0b, modified: 2026-04-11T14:28:02.472540600+02:00}, {name: target, type: dir, size: 0b, modified: 2026-04-11T14:30:48.430795700+02:00}, {name: tests, type: dir, size: 0b, modified: 2026-04-11T14:28:02.629683500+02:00}, {name: toolkit, type: dir, size: 0b, modified: 2026-04-11T14:28:02.641237300+02:00}, {name: "toolkit.nu", type: file, size: 61b, modified: 2026-04-11T14:28:02.635231400+02:00}, {name: "typos.toml", type: file, size: 732b, modified: 2026-04-11T14:28:02.642236500+02:00}, {name: wix, type: dir, size: 0b, modified: 2026-04-11T14:28:02.645247500+02:00}]</span></span></code></pre>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">ls</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to nuon</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --list-of-records</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --indent</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">[</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: ".cargo", type: dir, size: 0b, modified: 2026-04-11T14:28:01.485060+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: ".gitattributes", type: file, size: 113b, modified: 2026-04-11T14:28:01.485565900+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: ".githooks", type: dir, size: 0b, modified: 2026-04-11T14:28:01.486572700+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: ".github", type: dir, size: 0b, modified: 2026-04-11T14:28:01.490573100+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: ".gitignore", type: file, size: 834b, modified: 2026-04-11T14:28:01.497597200+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: "AGENTS.md", type: file, size: 2115b, modified: 2026-04-11T14:28:01.498597200+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: "CITATION.cff", type: file, size: 838b, modified: 2026-04-11T14:28:01.498597200+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: "CLAUDE.md", type: symlink, size: 0b, modified: 2026-04-11T14:28:01.499597100+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: "CODE_OF_CONDUCT.md", type: file, size: 3520b, modified: 2026-04-11T14:28:01.499597100+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: "CONTRIBUTING.md", type: file, size: 18714b, modified: 2026-04-11T14:28:01.500597200+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: "Cargo.lock", type: file, size: 257047b, modified: 2026-04-11T14:28:01.501597200+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: "Cargo.toml", type: file, size: 11950b, modified: 2026-04-11T14:28:01.502596700+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: "Cross.toml", type: file, size: 684b, modified: 2026-04-11T14:28:01.502596700+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: LICENSE, type: file, size: 1115b, modified: 2026-04-11T14:28:01.502596700+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: "README.md", type: file, size: 12742b, modified: 2026-04-11T14:28:01.504102900+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: "SECURITY.md", type: file, size: 2710b, modified: 2026-04-11T14:28:01.504102900+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: assets, type: dir, size: 0b, modified: 2026-04-11T14:28:01.512623900+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: ast-grep, type: dir, size: 0b, modified: 2026-04-11T14:28:01.522645800+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: benches, type: dir, size: 0b, modified: 2026-04-11T14:28:01.524151300+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: "clippy.toml", type: file, size: 170b, modified: 2026-04-11T14:28:01.525159300+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: crates, type: dir, size: 0b, modified: 2026-04-11T14:28:02.451098600+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: devdocs, type: dir, size: 0b, modified: 2026-04-11T14:28:02.457631100+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: docker, type: dir, size: 0b, modified: 2026-04-11T14:28:02.458631500+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: "rust-toolchain.toml", type: file, size: 956b, modified: 2026-04-11T14:28:02.459632800+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: "rustfmt.toml", type: file, size: 18b, modified: 2026-04-11T14:28:02.459632800+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: scripts, type: dir, size: 0b, modified: 2026-04-11T14:28:02.466730800+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: "sgconfig.yml", type: file, size: 218b, modified: 2026-04-11T14:28:02.466730800+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: src, type: dir, size: 0b, modified: 2026-04-11T14:28:02.472540600+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: target, type: dir, size: 0b, modified: 2026-04-11T14:30:48.430795700+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: tests, type: dir, size: 0b, modified: 2026-04-11T14:28:02.629683500+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: toolkit, type: dir, size: 0b, modified: 2026-04-11T14:28:02.641237300+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: "toolkit.nu", type: file, size: 61b, modified: 2026-04-11T14:28:02.635231400+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: "typos.toml", type: file, size: 732b, modified: 2026-04-11T14:28:02.642236500+02:00},</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  {name: wix, type: dir, size: 0b, modified: 2026-04-11T14:28:02.645247500+02:00}</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span></code></pre>
</div><h3>New command <code>str escape-regex</code>  </h3>
<p>A new command, <code>str escape-regex</code>, has been added.
It allows us to sanitize strings before inserting them into a regular-expression pattern.</p>
<div class="language-nushell line-numbers-mode" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># Check if the input matches the data exactly (not using `==` for demonstration)</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># User input used directly in a regex</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> bad</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">str</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">string</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">  $in</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> like</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> $"^(</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$str</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">)$"</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"hello"</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> bad</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> ".*"</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">   # true (incorrect)</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># Escape the input before inserting it into the regex</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> good</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">str</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">string</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">  $in</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> like</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> $"^(</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$str</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> str</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> escape-regex)$"</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"hello"</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> good</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> ".*"</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # false</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3>Add <code>polars selector ends-with</code>  </h3>
<p>Introduces <code>polars selector ends-with</code> allowing columns to be selected by a suffix:</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">{</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">    "foo"</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: [</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"x"</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"y"</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">],</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">    "bar"</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">123</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">456</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">],</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">    "baz"</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2.0</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">5.5</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">],</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">    "zap"</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: [</span><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">false</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">true</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">],</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> polars into-df</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --as-columns</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> polars select</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> (</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">polars selector ends-with</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> z</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">)</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> polars sort-by</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> baz</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> polars collect</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬──────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">baz</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼──────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2.00 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 5.50 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴──────╯</span></span></code></pre>
</div><p>This is is part of an effort to add selectors available in the python API.</p>
<h3>History file path can now be configured  </h3>
<p>Nushell now supports configuring the history file path using <code>$env.config.history.path</code>. This value can be <code>null</code> or any custom location, which is particularly useful for TTY login scenarios where the <code>--no-history</code> flag cannot be used.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.config.history.path</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66"> null</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # disable history</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.config.history.path</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "/custom/history.txt"</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # custom location</span></span></code></pre>
</div><h3>New experimental option <code>cell-path-types</code>  </h3>
<p>Added a new experimental option named <code>cell-path-types</code> which enforces type inferencing on cell path expressions like <code>{foo: 1}.foo</code> if enabled. That means the following examples (previously caused runtime errors or ran successfully) will be rejected by the parser:</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> foo</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">: string = </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::parser::type_mismatch</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Type mismatch.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #1:1:19</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ let foo: string = [1].0</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">                  ──┬──</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·                     </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── expected string, found int</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">mut</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> foo</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">{</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">bar</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$foo</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">bar </span><span style="color:#80858f;background-color:#e05561;--shiki-onedarkpro-font-weight:bold;--shiki-light:#D4D4D4;--shiki-light-bg:#cd3131;--shiki-light-font-weight:bold;--shiki-dark:#D4D4D4;--shiki-dark-bg:#cd3131;--shiki-dark-font-weight:bold">=</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 1.0</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::parser::operator_incompatible_types</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Types 'int' and 'float' are not compatible for the '=' operator.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #4:1:1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ $foo.bar = 1.0</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">────┬───</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold"> ┬</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> ─┬─</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·     </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">│</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">    │</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">  ╰── float</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·     </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">│</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">    ╰── does not operate between 'int' and 'float'</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·     </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── int</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> foo</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">def</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> bar</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> [baz: string]</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { }</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">bar </span><span style="color:#80858f;background-color:#e05561;--shiki-onedarkpro-font-weight:bold;--shiki-light:#D4D4D4;--shiki-light-bg:#cd3131;--shiki-light-font-weight:bold;--shiki-dark:#D4D4D4;--shiki-dark-bg:#cd3131;--shiki-dark-font-weight:bold">$foo.0</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::parser::type_mismatch</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Type mismatch.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #8:1:5</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ bar $foo.0</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">    ───┬──</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·        </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── expected string, found int</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div><h3>Implement selector commands for numeric types  </h3>
<ul>
<li>Added command <code>polars selector numeric</code> to select all numeric columns.</li>
<li>Added command <code>polars selector integer</code> to select all integer columns.</li>
<li>Added command <code>polars selector signed-integer</code> to select signed integer columns.</li>
<li>Added command <code>polars selector unsigned-integer</code> to select unsigned integer columns.</li>
<li>Added command <code>polars selector float</code> to select unsigned float columns.</li>
</ul>
<h3>Added testbin &quot;bins&quot; to nushell help  </h3>
<p>Updates the nushell command help by adding the testbin &quot;bins&quot; to the <code>nu --help</code> screen.
Now you see this output in the <code>--testbin</code> section of the help.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  --testbin</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> &#x3C;</span><span style="color:#4dc4ff;--shiki-light:#3B8EEA;--shiki-dark:#3B8EEA">string</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">></span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">      run an internal test binary (see available bins below)</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">      Example: </span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">nu --testbin cococo</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">      Available test bins:</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">      chop</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> -> </span><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">With no parameters, will chop a character off the end of each line</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">      cococo</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> -> </span><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">Cross platform echo using println!()(e.g: nu --testbin cococo a b c)</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">      echo_env</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> -> </span><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">Echo's value of env keys from args(e.g: nu --testbin echo_env FOO BAR)</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">      echo_env_mixed</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> -> </span><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">Mix echo of env keys from input(e.g: nu --testbin echo_env_mixed out-err FOO BAR; nu --testbin echo_env_mixed err-out FOO BAR)</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">      echo_env_stderr</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> -> </span><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">Echo's value of env keys from args to stderr(e.g: nu --testbin echo_env_stderr FOO BAR)</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">      echo_env_stderr_fail</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> -> </span><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">Echo's value of env keys from args to stderr, and exit with failure(e.g: nu --testbin echo_env_stderr_fail FOO BAR)</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">      fail</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> -> </span><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">Exits with failure code &#x3C;c>, if not given, fail with code 1(e.g: nu --testbin fail 10)</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">      iecho</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> -> </span><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">Another type of echo that outputs a parameter per line, looping infinitely(e.g: nu --testbin iecho 3)</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">      input_bytes_length</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> -> </span><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">Prints the number of bytes received on stdin(e.g: 0x[deadbeef] | nu --testbin input_bytes_length)</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">      meow</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> -> </span><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">Cross platform cat (open a file, print the contents) using read_to_string and println!()(e.g: nu --testbin meow file.txt)</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">      meowb</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> -> </span><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">Cross platform cat (open a file, print the contents) using read() and write_all() / binary(e.g: nu --testbin meowb sample.db)</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">      nonu</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> -> </span><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">Cross platform echo but concats arguments without space and NO newline(e.g: nu --testbin nonu a b c)</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">      nu_repl</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> -> </span><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">Run a REPL with the given source lines, it must be called with `--testbin=nu_repl`, `--testbin nu_repl` will not work due to argument count logic</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">      relay</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> -> </span><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">Relays anything received on stdin to stdout(e.g: 0x[beef] | nu --testbin relay)</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">      repeat_bytes</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> -> </span><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">A version of repeater that can output binary data, even null bytes(e.g: nu --testbin repeat_bytes 003d9fbf 10)</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">      repeater</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> -> </span><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">Repeat a string or char N times(e.g: nu --testbin repeater a 5)</span></span></code></pre>
</div><h3>Added support for parsing <code>hh:mm:ss</code> formatted strings in <code>into duration</code>  </h3>
<p>Added the ability to parse <code>h:m:s</code> with <code>into datetime</code> with optional <code>.mmm</code> for millis, <code>.mmmmmm</code> for micros, and <code>.mmmmmmmmm</code> for nanos.</p>
<p>It has to be in the format of <code>h:m:s</code>:</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"3:34"</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into duration</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::incorrect_value</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Incorrect value.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #12:1:1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ "3:34" | into duration</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">──┬─</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">┬</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·   </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">│</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold"> ╰── encountered here</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·   </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── invalid clock-style duration; please use hh:mm:ss with optional .f up to .fffffffff</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div><p>When it is, it should just work:</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"3:34:0"</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into duration</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">3hr 34min</span></span></code></pre>
</div><p>When minutes or seconds &gt;= <code>60</code> there are errors:</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"3:61:0"</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into duration</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::incorrect_value</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Incorrect value.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #15:1:1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ "3:61:0" | into duration</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">───┬──</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">┬</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·    </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">│</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">  ╰── encountered here</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·    </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── invalid clock-style duration; hours must be >= 0 and minutes/seconds must be >= 0 and &#x3C; 60</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"3:59:60"</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into duration</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::incorrect_value</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Incorrect value.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #16:1:1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ "3:59:60" | into duration</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">───┬───</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">┬</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·    </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">│</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">   ╰── encountered here</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·    </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── invalid clock-style duration; hours must be >= 0 and minutes/seconds must be >= 0 and &#x3C; 60</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div><p>Parsing <code>h:m:s</code>:</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"16:59:58"</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into duration</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">16hr 59min 58sec</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"316:59:58"</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into duration</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">1wk 6day 4hr 59min 58sec</span></span></code></pre>
</div><p>With 100% more optional fractional time:</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"16:59:58.235"</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into duration</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">16hr 59min 58sec 235ms</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"16:59:58.235123"</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into duration</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">16hr 59min 58sec 235ms 123µs</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"16:59:58.235123456"</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into duration</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">16hr 59min 58sec 235ms 123µs 456ns</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'2:45:31.2'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into duration</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">2hr 45min 31sec 200ms</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'2:45:31.23'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into duration</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">2hr 45min 31sec 230ms</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'2:45:31.234'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into duration</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">2hr 45min 31sec 234ms</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'2:45:31.2345'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into duration</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">2hr 45min 31sec 234ms 500µs</span></span></code></pre>
</div><h3><code>help</code> now also shows command type  </h3>
<p>Add &quot;Command Type&quot; information to help.</p>
<div class="language-ansi has-collapsed-lines collapsed" data-highlighter="shiki" data-ext="ansi" style="--vp-collapsed-lines:17;background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">help</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> from</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> ini</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Parse text as .ini and create table.</span></span>
<span class="line"></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">Usage</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">:</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  > from ini {flags}</span></span>
<span class="line"></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">Flags</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">:</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  -h</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">, </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">--help</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">: Display the help message for this command</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  -q</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">, </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">--no-quote</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">: Disable quote handling for values.</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  -e</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">, </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">--no-escape</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">: Disable escape sequence handling for values.</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  -m</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">, </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">--indented-multiline-value</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">: Allow values to continue on indented lines.</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  -w</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">, </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">--preserve-key-leading-whitespace</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">: Preserve leading whitespace in keys.</span></span>
<span class="line"></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">Command Type</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">:</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  > plugin</span></span>
<span class="line"></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">Input/output types</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">:</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  ╭───┬────────┬────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">input</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">output</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  ├───┼────────┼────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ string │ record │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  ╰───┴────────┴────────╯</span></span>
<span class="line"></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">Examples</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">:</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  Converts ini formatted string to record</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  > </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'[foo]</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a=1</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">b=2'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> from ini</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  ╭─────┬───────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │     │ ╭───┬───╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">foo</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">a</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │     │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">b</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │     │ ╰───┴───╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  ╰─────┴───────────╯</span></span>
<span class="line"></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  Disable escaping to keep backslashes literal</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  > </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'[start]</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">file=C:\Windows\System32\xcopy.exe'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> from ini</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --no-escape</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  ╭───────┬──────────────────────────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │       │ ╭──────┬───────────────────────────────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">start</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">file</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ C:\Windows\System32\xcopy.exe │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │       │ ╰──────┴───────────────────────────────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  ╰───────┴──────────────────────────────────────────╯</span></span>
<span class="line"></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  Disable quote handling to keep quote characters</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  > </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'[foo]</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">bar="quoted"'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> from ini</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --no-quote</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  ╭─────┬────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │     │ ╭─────┬──────────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">foo</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">bar</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ "quoted" │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │     │ ╰─────┴──────────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  ╰─────┴────────────────────╯</span></span>
<span class="line"></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  Allow values to continue on indented lines</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  > </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'[foo]</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">bar=line one</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">  line two'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> from ini</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --indented-multiline-value</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  ╭─────┬────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │     │ ╭─────┬──────────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">foo</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">bar</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ line one │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │     │ │     │ line two │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │     │ ╰─────┴──────────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  ╰─────┴────────────────────╯</span></span>
<span class="line"></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  Preserve leading whitespace in keys</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  > </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'[foo]</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">  key=value'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> from ini</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --preserve-key-leading-whitespace</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  ╭─────┬───────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │     │ ╭───────┬───────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">foo</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">  key</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ value │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │     │ ╰───────┴───────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  ╰─────┴───────────────────╯</span></span>
<span class="line"></span>
<span class="line"></span></code></pre>
<div class="collapsed-lines"></div></div><h3>New flag <code>--prune</code> for <code>group-by</code>  </h3>
<p>Adds <code>group-by --prune</code> to delete the column(s) used for grouping when the arguments are cell paths; closure arguments are unaffected. If pruning leaves a parent empty (e.g., due to nested columns), the parent is removed as well.`</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> table</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">[</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">  [</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">name</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">meta</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">];</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">  [</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">andres</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">, </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">{</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">lang</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">rb</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">year</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"2019"</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">],</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">  [</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">jt</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">, </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">{</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">lang</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">rs</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">year</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"2019"</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">],</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">  [</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">storm</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">, </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">{</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">lang</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">rs</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">year</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"2021"</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">],</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">  [</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">kai</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">, </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">{</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">lang</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">rb</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">year</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"2021"</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]</span></span>
<span class="line"></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$table</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬────────┬─────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">name</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │      </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">meta</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼────────┼─────────────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ andres │ ╭──────┬──────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">lang</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ rb   │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">year</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2019 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │        │ ╰──────┴──────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ jt     │ ╭──────┬──────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">lang</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ rs   │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">year</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2019 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │        │ ╰──────┴──────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ storm  │ ╭──────┬──────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">lang</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ rs   │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">year</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2021 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │        │ ╰──────┴──────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ kai    │ ╭──────┬──────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">lang</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ rb   │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">year</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2021 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │        │ ╰──────┴──────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴────────┴─────────────────╯</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$table</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> group-by</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> meta</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">year</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --prune</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭──────┬────────────────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ ╭───┬────────┬───────────────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2019</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">name</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │     </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">meta</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">      │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ ├───┼────────┼───────────────┤ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ andres │ ╭──────┬────╮ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │   │        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">lang</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ rb │ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │   │        │ ╰──────┴────╯ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ jt     │ ╭──────┬────╮ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │   │        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">lang</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ rs │ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │   │        │ ╰──────┴────╯ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ ╰───┴────────┴───────────────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ ╭───┬───────┬───────────────╮  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2021</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">name</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │     </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">meta</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">      │  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ ├───┼───────┼───────────────┤  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ storm │ ╭──────┬────╮ │  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │   │       │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">lang</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ rs │ │  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │   │       │ ╰──────┴────╯ │  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ kai   │ ╭──────┬────╮ │  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │   │       │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">lang</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ rb │ │  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │   │       │ ╰──────┴────╯ │  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ ╰───┴───────┴───────────────╯  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰──────┴────────────────────────────────╯</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$table</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> group-by</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> meta</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">year</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> meta</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">lang</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --prune</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> # also removes the parent if it's now empty</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭──────┬─────────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ ╭────┬────────────────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2019</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │    │ ╭───┬────────╮ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">rb</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">name</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │    │ ├───┼────────┤ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │    │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ andres │ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │    │ ╰───┴────────╯ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │    │ ╭───┬──────╮   │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">rs</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">name</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │    │ ├───┼──────┤   │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │    │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ jt   │   │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │    │ ╰───┴──────╯   │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ ╰────┴────────────────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ ╭────┬───────────────╮  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2021</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │    │ ╭───┬───────╮ │  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">rs</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">name</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ │  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │    │ ├───┼───────┤ │  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │    │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ storm │ │  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │    │ ╰───┴───────╯ │  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │    │ ╭───┬──────╮  │  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">rb</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">name</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  │  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │    │ ├───┼──────┤  │  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │    │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ kai  │  │  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ │    │ ╰───┴──────╯  │  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│      │ ╰────┴───────────────╯  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰──────┴─────────────────────────╯</span></span></code></pre>
</div><h3>New and improved <code>xaccess</code>!  </h3>
<p>An experimental upgrade to <code>std/xml xaccess</code>, currently accessible as <code>std-rfc/xml xaccess</code>. It is completely backwards compatible, with the addition of:</p>
<ul>
<li>using a <code>...rest</code> parameter, removing the need to use a list (though still supporting it).</li>
<li>supporting cell-paths, rather than plain strings and ints.</li>
<li>supporting <code>descendant-or-self::node()</code> (aka <code>//</code>) with <code>**</code></li>
</ul>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">use</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> std-rfc/xml</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> xaccess</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">http get</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> 'https://www.nushell.sh/rss.xml'</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> xaccess</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> rss</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">**</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">item</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  # grab all items</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> update</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> content</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> {</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">    xaccess</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> *</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> { </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$in</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">tag</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">? </span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510">in</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> [</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">title</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">link</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> }</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">  # only grab title and link</span></span>
<span class="line"><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">}</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> first</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 3</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> {</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">tag</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">rss</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">content</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$in</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to xml</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -i</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">&#x3C;rss></span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  &#x3C;item></span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    &#x3C;title>This week in Nushell #344&#x3C;/title></span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    &#x3C;link>https://www.nushell.sh/blog/2026-03-27-twin0344.html&#x3C;/link></span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  &#x3C;/item></span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  &#x3C;item></span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    &#x3C;title>This week in Nushell #343&#x3C;/title></span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    &#x3C;link>https://www.nushell.sh/blog/2026-03-20-twin0343.html&#x3C;/link></span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  &#x3C;/item></span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  &#x3C;item></span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    &#x3C;title>This week in Nushell #342&#x3C;/title></span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    &#x3C;link>https://www.nushell.sh/blog/2026-03-13-twin0342.html&#x3C;/link></span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  &#x3C;/item></span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">&#x3C;/rss></span></span></code></pre>
</div><h3>Added configurable external hinter closure  </h3>
<p>Added support for configurable external hinter closures via <code>$env.config.hinter.closure</code>.
This allows users to provide a custom closure that receives the current line, cursor position, and working directory, and returns inline hint text (like fish-style autosuggestions).
Closures can return a simple string or a record <code>{hint: string, next_token?: string}</code> for custom token-based hint acceptance.</p>
<h4>Examples</h4>
<h5>Atuin-based hint closure</h5>
<div class="language-nu line-numbers-mode" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.config.line_editor.external.hinter</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">  enable</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66"> true</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">  closure</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {|</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">ctx</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">|</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">    if</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$ctx.line</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> str length</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">==</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 0</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66">      null</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    } </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">else</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">      let</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> candidate</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">try</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">        ^</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">atuin</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> search</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">cwd</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $ctx.cwd</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">limit</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">search-mode</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> prefix</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">cmd-only</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $ctx.line</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">        |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> lines</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">        |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> first</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">      } </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">catch</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66">        null</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">      })</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">      if</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $candidate</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> ==</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66"> null</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> or</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> not</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$candidate</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> str starts-with</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $ctx.line</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) {</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66">        null</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">      } </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">else</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">        (</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$candidate</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> str substring</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> ((</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$ctx.line</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> str length</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">))</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">..</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">)</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">      }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">  }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h5>Simple deterministic test closure (good for validating script hinter behavior)</h5>
<div class="language-nu line-numbers-mode" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.config.line_editor.external.hinter</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">  enable</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66"> true</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">  closure</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {|</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">ctx</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">|</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">    if</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$ctx.line</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> str length</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">==</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 0</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66">      null</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    } </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">else</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">      let</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> target</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "zzhint from-script"</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">      if</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> not</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$target</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> str starts-with</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $ctx.line</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) {</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66">        null</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">      } </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">else</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">        let</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> remaining</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$target</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> str substring</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> ((</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$ctx.line</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> str length</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">))</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">..</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">)</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">        if</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$remaining</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> str length</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">==</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 0</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> { </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66">null</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> } </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">else</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> { </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$remaining</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">      }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">  }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3>New <code>--base</code> flag for <code>url parse</code>  </h3>
<p><code>url parse</code> now supports an optional <code>--base/-b</code> flag to resolve relative URLs against a base URL (WHATWG-compatible). This makes it easier to normalize links from scraped pages while still returning the same structured URL record (scheme, host, path, query, fragment, and params).</p>
<h3>MCP: Auto-promote long-running evaluations to background jobs  </h3>
<p>Evaluations that take longer than 10 seconds, or are cancelled by the client, are automatically promoted to background jobs instead of being discarded. Their results are delivered to job 0's mailbox, where they can be retrieved using <code>job recv</code>. These promoted jobs appear in <code>job list</code> with descriptions like <code>mcp: &lt;command&gt;</code>, and they can be terminated using <code>job kill</code>. The timeout for this behavior can be configured through the <code>$env.NU_MCP_PROMOTE_AFTER</code> setting.</p>
<h3>New option to allow command with space prefixes to be recorded in history  </h3>
<p>Usually commands that start with a space are not recorded to the history.
With <code>$env.config.history.ignore_space_prefixed</code> this can be changed.</p>
<h3><code>table</code> command now respects metadata of <code>Custom</code> values.  </h3>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># before nushell didn't render the `cwd` column like paths</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># now it does</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">history</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> metadata set</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">path-columns</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">cwd</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> table</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">icons</span></span></code></pre>
</div><h3>New configuration option <code>auto_cd_always</code>  </h3>
<p>This release adds the configuration option <code>$env.config.auto_cd_implicit</code>, which allows auto-cd behavior as long as the command string is an existing directory.</p>
<h3>Unordered <code>par-each</code> is now streaming  </h3>
<p>Allow <code>par-each</code> to stream.
The following example will print out a new value each second that passes.</p>

<h3>New sigil <code>%</code> to explicitly call built-ins  </h3>
<p>Nushell has a new sigil <code>%</code> that allows you to call a built-in even if you have the built-in shadowed by a custom command or alias.</p>
<div class="language-ansi has-collapsed-lines collapsed" data-highlighter="shiki" data-ext="ansi" style="--vp-collapsed-lines:9;background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">def</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> ls</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> []</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">echo</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> duck</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">ls</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">duck</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">%</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">ls</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭────┬─────────────────────┬─────────┬──────────┬──────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │        </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">name</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">         │  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">type</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">size</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">modified</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├────┼─────────────────────┼─────────┼──────────┼──────────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ .cargo              │ dir     │      </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">0 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">7 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ .gitattributes      │ file    │    </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">113 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">7 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ .githooks           │ dir     │      </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">0 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">7 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ .github             │ dir     │      </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">0 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 weeks ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ .gitignore          │ file    │    </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">834 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">2 weeks ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">5</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ .idea               │ dir     │      </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">0 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">9 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">6</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ .opencode           │ dir     │      </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">0 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">a month ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">7</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ .vscode             │ dir     │      </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">0 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">8 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">8</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ AGENTS.md           │ file    │   </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">2,1 kB</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">a day ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">9</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ CITATION.cff        │ file    │    </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">838 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">6 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">10</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ CLAUDE.md           │ symlink │      </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">0 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">a day ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">11</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ CODE_OF_CONDUCT.md  │ file    │   </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">3,5 kB</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">7 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">12</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ CONTRIBUTING.md     │ file    │  </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">18,7 kB</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 weeks ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">13</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ Cargo.lock          │ file    │ </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">257,0 kB</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">4 hours ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">14</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ Cargo.toml          │ file    │  </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">11,9 kB</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">a day ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">15</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ Cross.toml          │ file    │    </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">684 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">7 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">16</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ LICENSE             │ file    │   </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">1,1 kB</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 weeks ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">17</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ README.md           │ file    │  </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">12,7 kB</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 weeks ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">18</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ SECURITY.md         │ file    │   </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">2,7 kB</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 weeks ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">19</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ assets              │ dir     │      </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">0 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">7 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">20</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ast-grep            │ dir     │      </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">0 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 weeks ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">21</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ benches             │ dir     │      </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">0 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">a week ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">22</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ clippy.toml         │ file    │    </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">170 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">a week ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">23</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ crates              │ dir     │      </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">0 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 weeks ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">24</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ devdocs             │ dir     │      </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">0 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">2 weeks ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">25</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ docker              │ dir     │      </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">0 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 weeks ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">26</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ file.sqlite         │ file    │      </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">3 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">2 weeks ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">27</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ my_ls.sqlite        │ file    │   </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">8,1 kB</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">6 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">28</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ notes.sqlite.md     │ file    │    </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">670 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">7 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">29</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ opencode.json       │ file    │    </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">809 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">a day ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">30</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ rust-toolchain.toml │ file    │    </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">956 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">2 weeks ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">31</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ rustfmt.toml        │ file    │     </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">18 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">2 days ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">32</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ scratch             │ dir     │      </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">0 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">2 weeks ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">33</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ script.nu           │ file    │    </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">416 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">4 weeks ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">34</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ scripts             │ dir     │      </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">0 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">2 weeks ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">35</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ sgconfig.yml        │ file    │    </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">218 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 weeks ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">36</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ src                 │ dir     │      </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">0 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">a day ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">37</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ target              │ dir     │      </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">0 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 hours ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">38</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ tests               │ dir     │      </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">0 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">a week ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">39</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ toolkit             │ dir     │      </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">0 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">a week ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">40</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ toolkit.nu          │ file    │     </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">61 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 weeks ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">41</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ typos.toml          │ file    │    </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">732 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 weeks ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">42</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ wix                 │ dir     │      </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">0 B</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 weeks ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├────┼─────────────────────┼─────────┼──────────┼──────────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │        </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">name</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">         │  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">type</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">size</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">modified</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰────┴─────────────────────┴─────────┴──────────┴──────────────╯</span></span></code></pre>
<div class="collapsed-lines"></div></div><p>If you try to call something that doesn't exist as a built-in you get an error:</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">%lss</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::parser::error</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> percent sigil requires a built-in command</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #59:1:2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ %lss</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> ─┬─</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·   </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── unknown built-in command</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  help: </span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">remove `%` to use normal resolution, or use `^` to run an external command explicitly</span></span>
<span class="line"></span></code></pre>
</div><h3>New table style <code>frameless</code>  </h3>
<p>Added the &quot;frameless&quot; table theme.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$env</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">config</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">table</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">mode</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510"> =</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> "frameless"</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">[[</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> b</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">c</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]; [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 3</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">] [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">4</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 5</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 6</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> table</span></span>
<span class="line"><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> #</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">a</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">b</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">c</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">───┼───┼───┼───</span></span>
<span class="line"><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> 0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │ 2 │ 3</span></span>
<span class="line"><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 4 │ 5 │ 6</span></span></code></pre>
</div><h3>MCP: Promoted jobs now return full output  </h3>
<p>When an MCP evaluation gets auto-promoted to a background job (after timeout or client cancellation), the mailbox payload was the potentially-truncated MCP response. If output exceeded <code>NU_MCP_OUTPUT_LIMIT</code>, <code>job recv</code> would return a dangling <code>$history.N</code> reference instead of the actual data — <code>$history</code> is only populated for non-promoted evals.</p>
<p>This PR introduces an <code>EvalOutput</code> struct that separates the MCP response (possibly truncated with a <code>$history</code> note) from the full output string. Promoted jobs now send <code>full_output</code> through the mailbox so <code>job recv</code> always returns complete, usable data.</p>
<p>Also fixes a pipefail issue where external commands that write to both stdout and stderr would re-raise <code>non_zero_exit_code</code> after <code>process_pipeline</code> had already captured the output — solved by calling <code>ignore_error(true)</code> on the child.</p>
<h3>Other additions </h3>
<ul>
<li>Added <code>ctrl + p/n</code> to move up and down the input list like with <code>fzf</code>. (<a href="https://github.com/nushell/nushell/pull/17707" target="_blank" rel="noopener noreferrer">#17707</a>)</li>
<li><code>hide-env</code> now autocompletes environment variable names when pressing tab. (<a href="https://github.com/nushell/nushell/pull/17658" target="_blank" rel="noopener noreferrer">#17658</a>)</li>
<li>Add the ability for <code>query web</code> to parse the entire html document when using the <code>--document</code> flag. (<a href="https://github.com/nushell/nushell/pull/17759" target="_blank" rel="noopener noreferrer">#17759</a>)</li>
<li><code>ansi</code> command now has completions for its positional argument. (<a href="https://github.com/nushell/nushell/pull/17761" target="_blank" rel="noopener noreferrer">#17761</a>)</li>
<li><code>into binary</code> now has a completion for the <code>--endian</code> flag. (<a href="https://github.com/nushell/nushell/pull/17788" target="_blank" rel="noopener noreferrer">#17788</a>)</li>
<li><code>ps -l</code> output has two new columns: <code>process_group_id</code> and <code>session_id</code>. (<a href="https://github.com/nushell/nushell/pull/16357" target="_blank" rel="noopener noreferrer">#16357</a>)</li>
<li>Binary hex colors are now configurable with <code>$env.config.color_config.binary_*</code> and <code>$env.config.use_ansi_coloring</code>. (<a href="https://github.com/nushell/nushell/pull/17887" target="_blank" rel="noopener noreferrer">#17887</a>)</li>
<li><code>metadata set --content-type</code> now also accepts <code>null</code> to unset the <code>content_type</code> metadata (<a href="https://github.com/nushell/nushell/pull/17944" target="_blank" rel="noopener noreferrer">#17944</a>)</li>
<li><code>http get</code> now also automatically parses <code>x-</code>-prefixed mime types like <code>application/x-nuon</code>. (<a href="https://github.com/nushell/nushell/pull/17967" target="_blank" rel="noopener noreferrer">#17967</a>)</li>
<li>The <code>input list</code> command now streams by consuming an upstream list or range incrementally vs collecting. (<a href="https://github.com/nushell/nushell/pull/17966" target="_blank" rel="noopener noreferrer">#17966</a>)</li>
<li>Add <code>--full</code> (<code>-f</code>) and <code>--allow-errors</code> (<code>-e</code>) support to <code>http head</code> for parity with other HTTP verbs. (<a href="https://github.com/nushell/nushell/pull/17650" target="_blank" rel="noopener noreferrer">#17650</a>)</li>
</ul>
<h2>Removals </h2>
<h3>Removed some deprecated commands and flags  </h3>
<p>Command removed:</p>
<ul>
<li><code>random dice</code> in favor of <code>std/random dice</code></li>
</ul>
<p>Flags removed:</p>
<ul>
<li><code>metadata set --merge</code> in favor of <code>metadata set { merge {key: value} }</code></li>
<li><code>watch --debounce-ms</code> in favor of <code>watch --debounce</code></li>
<li><code>into value --columns --prefer-filesizes</code> in favor of <code>detect type --columns --prefer-filesizes</code></li>
</ul>
<p><code>into value</code> no longer infer nushell datatype from string. Use <code>detect type</code> in combination with <code>update cells</code> instead.</p>
<h2>Other changes </h2>
<h3><code>$nu/$env/$in</code> are now more aggressively reserved  </h3>
<p>More aggressive reserved names (<code>$nu/$env/$in</code>) exclusion in implicit variable declaration. e.g.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">for</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> nu</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> int</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> in</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [] {}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">match</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">1</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">2</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">3</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] { [</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$in</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$nu</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">=></span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> { </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$in</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> +</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B"> $nu</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> +</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B"> $env</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }, </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">_</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> =></span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 0</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }</span></span></code></pre>
</div><p>On the other hand, <code>$it</code> is re-enabled in <code>let it = 1</code> or <code>1 | let it</code></p>
<h3>Improve alias expression error message to use user-friendly descriptions  </h3>
<p>Error messages for invalid alias expressions now show user-friendly descriptions instead of internal Rust type names. The error code <code>nu::parser::cant_alias_expression</code> is unchanged.</p>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">alias</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> foo </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">= </span><span style="color:#80858f;background-color:#e05561;--shiki-onedarkpro-font-weight:bold;--shiki-light:#D4D4D4;--shiki-light-bg:#cd3131;--shiki-light-font-weight:bold;--shiki-dark:#D4D4D4;--shiki-dark-bg:#cd3131;--shiki-dark-font-weight:bold">$bar</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">baz</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::parser::cant_alias_expression</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Can't create alias to expression.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #4:1:13</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ alias foo = $bar.baz</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">            ────┬───</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·                 </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── aliasing FullCellPath is not supported</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  help: </span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Only command calls can be aliased.</span></span>
<span class="line"></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">alias</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> foo</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> = </span><span style="color:#80858f;background-color:#e05561;--shiki-onedarkpro-font-weight:bold;--shiki-light:#D4D4D4;--shiki-light-bg:#cd3131;--shiki-light-font-weight:bold;--shiki-dark:#D4D4D4;--shiki-dark-bg:#cd3131;--shiki-dark-font-weight:bold">$bar</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">baz</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::parser::cant_alias_expression</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Can't create alias to expression.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #65:1:13</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ alias foo = $bar.baz</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">            ────┬───</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·                 </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── aliasing a cell path expression is not supported</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  help: </span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Only command calls can be aliased.</span></span>
<span class="line"></span></code></pre>
</div>
</div><h3>More compact output for <code>to nuon --indent n</code>  </h3>
<p><code>to nuon --indent n</code> will print in a more compact output:</p>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[{</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">column1</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">column2</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}, {</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">column1</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">column2</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">4</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to nuon</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --indent</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">[</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  [</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    "column1",</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    "column2"</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  ];</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  [</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    1,</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    2</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  ],</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  [</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    3,</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    4</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  ]</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[{</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">column1</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">column2</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}, {</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">column1</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">column2</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">4</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to nuon</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --indent</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">[</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  ["column1", "column2"];</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  [1, 2],</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  [3, 4]</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span></code></pre>
</div>
</div><h3>Some Polars upgrades  </h3>
<ul>
<li>Upgrades polars to 0.53.</li>
<li>Reimplemented <code>polars pivot</code> command to polars' updated pivot library. Introduced support for &quot;element&quot; type aggregates.</li>
<li><code>polars unpivot</code> will now only work on LazyFrames. Eager dataframes will be converted to a LazyFrame.</li>
<li>Added flags <code>--keep-nulls</code> and <code>--empty-as-null</code> to <code>polars concat</code>.</li>
<li>Some improvements on list conversion from nushell to polars. Sub-lists should retain their type instead of being converted to type &quot;object&quot;. Using NuDataFrame::try_from_value will convert a Value::List object directly and attempt use an appropriate DataType before falling back to &quot;object&quot;.</li>
<li>Added additional selectors: <code>polars selector not</code>, <code>polars selector matches</code>, <code>polars selector starts-with</code>.</li>
</ul>
<h3>Additional changes </h3>
<ul>
<li>Type widening now flattens a bit more. (<a href="https://github.com/nushell/nushell/pull/17575" target="_blank" rel="noopener noreferrer">#17575</a>)</li>
<li><code>keybindings list</code> command is updated with new descriptions. <code>CutFromStartLinewise</code> / <code>CutToEndLinewise</code> now takes <code>keep_line</code> instead of <code>value</code> as its parameter for clarity. (<a href="https://github.com/nushell/nushell/pull/17859" target="_blank" rel="noopener noreferrer">#17859</a>)</li>
<li><code>get</code> command now removes the <code>path_columns</code> metadata if none of the cell paths are a index. (<a href="https://github.com/nushell/nushell/pull/17866" target="_blank" rel="noopener noreferrer">#17866</a>)</li>
<li><code>first</code> and <code>last</code> preserve pipeline metadata (such as <code>content_type</code> and <code>path_columns</code>) for list, range, and list-stream input. <code>content_type</code> is still cleared when the output is only part of a binary value (for example a single byte as an integer or a truncated binary value). (<a href="https://github.com/nushell/nushell/pull/17875" target="_blank" rel="noopener noreferrer">#17875</a>)</li>
<li>Fixed a crash (“known external name not found”) when an alias reused the same name as an extern used for completions (for example wrapping an external with default flags). (<a href="https://github.com/nushell/nushell/pull/17878" target="_blank" rel="noopener noreferrer">#17878</a>)</li>
<li>Update help text for the <code>--ide-*</code> commands in the <code>nu --help</code> screen. (<a href="https://github.com/nushell/nushell/pull/17905" target="_blank" rel="noopener noreferrer">#17905</a>)</li>
<li><code>detect type</code> now preserves <code>content_type</code> metadata if it cannot detect the input value (<a href="https://github.com/nushell/nushell/pull/17906" target="_blank" rel="noopener noreferrer">#17906</a>)</li>
<li>Some code that was already known to be invalid early-on, will now be highlighted as an error. (<a href="https://github.com/nushell/nushell/pull/17917" target="_blank" rel="noopener noreferrer">#17917</a>)</li>
<li>When <code>--full</code> is used, <code>http head</code> now returns the standard full response record (<code>urls</code>, <code>headers.request</code>, <code>headers.response</code>, <code>body</code>, <code>status</code>). (<a href="https://github.com/nushell/nushell/pull/17650" target="_blank" rel="noopener noreferrer">#17650</a>)</li>
<li>When <code>--allow-errors</code> is used, <code>http head</code> no longer fails on non-2xx statuses and still exposes headers. (<a href="https://github.com/nushell/nushell/pull/17650" target="_blank" rel="noopener noreferrer">#17650</a>)</li>
<li><code>skip</code> command only removes <code>content_type</code> metadata if n &gt; 0 and input is binary. (<a href="https://github.com/nushell/nushell/pull/17867" target="_blank" rel="noopener noreferrer">#17867</a>)</li>
<li><code>reject</code> command also removes the path from <code>path_columns</code> metadata when removing a column. (<a href="https://github.com/nushell/nushell/pull/17867" target="_blank" rel="noopener noreferrer">#17867</a>)</li>
</ul>
<h2>Bug fixes </h2>
<h3><code>history</code> now returns date values for sqlite-based history  </h3>
<p>Update the sqlite output of the history file by adding column adapters so we can maintain speed but still get nushell values out of the command.</p>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">history</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> last</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭─────────────────┬─────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">start_timestamp</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1775933381705       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">command</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">         │ history | last      │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">cwd</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">             │ D:\Projects\nushell │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">duration</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">        │                     │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">exit_status</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">     │                     │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰─────────────────┴─────────────────────╯</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">history</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> last</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 3</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬─────────────────┬──────────────────┬─────────────────────┬──────────┬─────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">start_timestamp</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │     </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">command</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">      │         </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">cwd</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">         │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">duration</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">exit_status</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼─────────────────┼──────────────────┼─────────────────────┼──────────┼─────────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   1775933378360 │ clear            │ D:\Projects\nushell │        1 │           0 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   1775933381705 │ history | last   │ D:\Projects\nushell │       17 │           0 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   1775933392010 │ history | last 3 │ D:\Projects\nushell │          │             │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴─────────────────┴──────────────────┴─────────────────────┴──────────┴─────────────╯</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">history</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> last</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭─────────────────┬─────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">start_timestamp</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">now</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">                 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">command</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">         │ history | last      │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">cwd</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">             │ D:\Projects\nushell │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">duration</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">        │                     │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">exit_status</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">     │                     │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰─────────────────┴─────────────────────╯</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">history</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> last</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 3</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬─────────────────┬──────────────────┬─────────────────────┬──────────┬─────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">start_timestamp</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │     </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">command</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">      │         </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">cwd</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">         │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">duration</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">exit_status</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼─────────────────┼──────────────────┼─────────────────────┼──────────┼─────────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">now</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">             │ clear            │ D:\Projects\nushell │      2ms │           0 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">now</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">             │ history | last   │ D:\Projects\nushell │     19ms │           0 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">now</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">             │ history | last 3 │ D:\Projects\nushell │          │             │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴─────────────────┴──────────────────┴─────────────────────┴──────────┴─────────────╯</span></span></code></pre>
</div>
</div><h3>Brought back missing <code>--log-*</code> flags for nushell  </h3>
<p>Fixed the broken nushell executable logging flags.</p>
<p>Here's the new logging section.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">Logging:</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  --log-level</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> &#x3C;</span><span style="color:#4dc4ff;--shiki-light:#3B8EEA;--shiki-dark:#3B8EEA">string</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">></span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">      log level for diagnostic logs (error, warn, info, debug, trace). Off by default</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">      Example: </span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">nu --log-level info</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  --log-target</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> &#x3C;</span><span style="color:#4dc4ff;--shiki-light:#3B8EEA;--shiki-dark:#3B8EEA">string</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">></span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">      set the target for the log to output. stdout, stderr(default), mixed or file (requires --log-file)</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">      Example: </span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">nu --log-target stdout</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  --log-file</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> &#x3C;</span><span style="color:#4dc4ff;--shiki-light:#3B8EEA;--shiki-dark:#3B8EEA">path</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">></span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">      specify a custom log file path (requires --log-target file and --log-level &#x3C;level>)</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">      Example: </span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">nu --log-target file --log-file ~/.local/share/nushell/nu.log --log-level info</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  --log-include</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> &#x3C;</span><span style="color:#4dc4ff;--shiki-light:#3B8EEA;--shiki-dark:#3B8EEA">string...</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">></span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">      set the Rust module prefixes to include from the log output</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">      Example: </span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">nu --log-include info</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  --log-exclude</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> &#x3C;</span><span style="color:#4dc4ff;--shiki-light:#3B8EEA;--shiki-dark:#3B8EEA">string...</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">></span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">      set the Rust module prefixes to exclude from the log output</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">      Example: </span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">nu --log-exclude info</span></span></code></pre>
</div><h3>Fix confusing type mismatch error in bytes collect  </h3>
<p><code>bytes collect</code> now accepts table/stream input (e.g. from <code>each</code>), and type mismatch errors no longer repeat the same type multiple times.</p>
<p>Two changes:</p>
<ul>
<li>Added <code>Type::table()</code> to <code>bytes collect</code> input types so pipelines like <code>0..128 | each {} | into binary --compact | bytes collect</code> work without requiring an explicit <code>collect</code> first</li>
<li>Deduplicated types in <code>combined_type_string</code> so error messages say &quot;binary, table, or record&quot; instead of &quot;binary, binary, binary, binary, table, or record&quot;</li>
</ul>
<h3>built-in commands now support <code>null</code> for optional parameters  </h3>
<p>Optional positional parameters in built-in commands now accept <code>null</code>, treating it as if the argument was omitted. This allows custom commands to wrap built-ins and transparently forward optional parameters:</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">def</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> wraps-first</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> [rows?: int]</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> first</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> $rows</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">wraps-first</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">1</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">wraps-first</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───╯</span></span></code></pre>
</div><h3>finally block won't run twice if error produced in finally block  </h3>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">try</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> {} </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">finally</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> {</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">  print</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> "inside finally"</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">  error make</span></span>
<span class="line"><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">}</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">inside finally</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::error</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> originates from here</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #6:3:3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   print "inside finally"</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   error make</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">  ──────────</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ }</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div><p>It prints &quot;inside finally&quot; once.</p>
<h4>finally block won't run before try/catch finished</h4>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">try</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> {</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  nu</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> -c</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> 'print before; sleep 3sec; print after'</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">}</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> finally</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> {</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">  print</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> "finally ran"</span></span>
<span class="line"><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">}</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">before</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">after</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">finally ran</span></span></code></pre>
</div><p>Finally won't run before try finished.</p>
<div class="hint-container info">
<p class="hint-container-title">Notes about streaming</p>
<ul>
<li><code>try</code> does not stream if <code>catch</code> or <code>finally</code> exists.</li>
<li><code>catch</code> does not stream if <code>finally</code> exists.</li>
</ul>
</div>
<h4>let ignores pipefail checking</h4>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">nu</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> -c</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> "print 'hello\nworld'; exit 1"</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> lines</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> x</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ hello │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ world │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───────╯</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$x</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ hello │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ world │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───────╯</span></span></code></pre>
</div><p>The variable <code>x</code> will be assigned.</p>
<h4>Try doesn't produce output if it has an error</h4>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">try</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> { </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">nu</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> -c</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> 'exit 1'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> is-empty</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> }</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> catch</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'result-on-catch'</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">result-on-catch</span></span></code></pre>
</div><p>It returns <code>result-on-catch</code>, and redundant <code>true</code> won't be returned.</p>
<h3>Fixed some <code>into datetime</code> inconsistencies  </h3>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"2026-03-21_00:25"</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into datetime</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --format</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> "%F_%R"</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --timezone</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> utc</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Sat, 21 Mar 2026 00:25:00 +0100 (3 weeks ago)</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"2026-03-21_00:25"</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into datetime</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --format</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> "%F_%R"</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --timezone</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> local</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Sat, 21 Mar 2026 00:25:00 +0100 (3 weeks ago)</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"2026-03-21_00:25"</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into datetime</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --format</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> "%F_%R"</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --timezone</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> utc</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Sat, 21 Mar 2026 00:25:00 +0000 (3 weeks ago)</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"2026-03-21_00:25"</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into datetime</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --format</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> "%F_%R"</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --timezone</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> local</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Sat, 21 Mar 2026 00:25:00 +0100 (3 weeks ago)</span></span></code></pre>
</div>
</div><h3>Fixed argument parsing for strings non-space whitespace  </h3>
<p>Update argument parsing to allow things like this without having an error.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">nu</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> test.nu</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> a</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> b</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "c</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">d"</span></span></code></pre>
</div><h3>Fixed parsing optional cell paths on literal braced values  </h3>
<p>Nushell now correctly parses braced values followed by optional cell paths.
Expressions like <code>{}.foo?</code> are handled as expected and return null for missing fields, instead of raising an unclosed-delimiter parse error.</p>
<h3>Fixed error propagation for `reject  </h3>
<p>Fixed an error in <code>reject</code> command where an error value in the input would return <code>column_not_found</code> error instead of propagating the error.</p>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">ls</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> insert</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> foo</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">error make</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> { </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">msg</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'boo'</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> }</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> reject</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> name</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::column_not_found</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Cannot find column 'name'</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #2:1:6</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ls | insert foo { error make { msg: 'boo' } } | reject name</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">     ───┬──</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">                                            ──┬─</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·         </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">│</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">                                                ╰── cannot find column 'name'</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·         </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── value originates here</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">ls</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> insert</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> foo</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">error make</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> { </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">msg</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'boo'</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> }</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> reject</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> name</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::error</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> boo</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #1:1:30</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ls | insert foo { error make { msg: 'boo' } } | reject name</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">                             ──────────────</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div>
</div><h3>Other fixes </h3>
<ul>
<li>Fixed the problem where searching in the <code>explore</code> command was off by 1 which caused the hit to sometimes be hidden. (<a href="https://github.com/nushell/nushell/pull/17718" target="_blank" rel="noopener noreferrer">#17718</a>)</li>
<li>There were rendering bugs when the prompt was at the bottom of the screen. Removing the custom rendering helped fix the problems. (<a href="https://github.com/nushell/nushell/pull/17691" target="_blank" rel="noopener noreferrer">#17691</a>)</li>
<li>When in <code>explore</code> and <code>:nu</code> returns null, you can now <code>q/esc</code> out. (<a href="https://github.com/nushell/nushell/pull/17661" target="_blank" rel="noopener noreferrer">#17661</a>)</li>
<li>Fixed a bug where numerical keys in records mess up type inference, e.g. <code>let foo: string = {1: 1}</code> is allowed before the fix. As a side effect, previously forbidden key names, like<code>{1kb: 1}</code>, are valid now. (<a href="https://github.com/nushell/nushell/pull/17684" target="_blank" rel="noopener noreferrer">#17684</a>)</li>
<li>Nushell now resolves symlinks via <code>$env.PWD</code> if that dir is the same as <code>std::env::current_dir</code> to allow formatted paths. (<a href="https://github.com/nushell/nushell/pull/17720" target="_blank" rel="noopener noreferrer">#17720</a>)</li>
<li>Fixed a bug where creating nushell scripts with subcommands would show duplicate subcommands. (<a href="https://github.com/nushell/nushell/pull/17727" target="_blank" rel="noopener noreferrer">#17727</a>)</li>
<li>Fixed the <code>variable_not_found</code> error in scenarios with recursive functions. (<a href="https://github.com/nushell/nushell/pull/17726" target="_blank" rel="noopener noreferrer">#17726</a>)</li>
<li>Default arguments now allowed to have the same name as the parameter. (<a href="https://github.com/nushell/nushell/pull/17697" target="_blank" rel="noopener noreferrer">#17697</a>)</li>
<li>Avoided <code>input listen --timeout</code> panic from double counting. (<a href="https://github.com/nushell/nushell/pull/17744" target="_blank" rel="noopener noreferrer">#17744</a>)</li>
<li><code>reject</code> now preserves the stream metadata. For example, <code>ls | reject ...[]</code> will keep the <code>LS_COLORS</code> and ansi links. (<a href="https://github.com/nushell/nushell/pull/17775" target="_blank" rel="noopener noreferrer">#17775</a>)</li>
<li>Reject format strings with tokens after ending quote. (<a href="https://github.com/nushell/nushell/pull/17777" target="_blank" rel="noopener noreferrer">#17777</a>)</li>
<li>Fixed a regression of v0.111.0 that made <code>http</code> commands not respect environment variables for proxying like <code>ALL_PROXY</code>. (<a href="https://github.com/nushell/nushell/pull/17794" target="_blank" rel="noopener noreferrer">#17794</a>)</li>
<li>Fixed an issue where read-only directories are unable to be copied due to the mode attribute being preserved by default. (<a href="https://github.com/nushell/nushell/pull/17791" target="_blank" rel="noopener noreferrer">#17791</a>)</li>
<li>Nushell now resolves library paths with user‑provided <code>-I</code> entries before the default <code>NU_LIB_DIRS</code>, fixing cases where bundled modules shadowed user scripts. <code>NU_LIB_DIRS</code> is also correctly treated as immutable at startup to avoid unexpected mutation in config or scripts. (<a href="https://github.com/nushell/nushell/pull/17819" target="_blank" rel="noopener noreferrer">#17819</a>)</li>
<li>Added a simple check to prevent histogram output from having overlapping names when a named column is passed to the histogram. So now histograms <em>of</em> columns named &quot;count&quot;, &quot;frequency&quot; (or the frequency user-defined name), &quot;quantile&quot;, &quot;percentage&quot; will have sensible output. (<a href="https://github.com/nushell/nushell/pull/17783" target="_blank" rel="noopener noreferrer">#17783</a>)</li>
<li><code>group-by</code> now correctly groups rows when the grouper values are compound types like lists or records. Previously, grouping could collapse distinct values into the same bucket due to a lossy abbreviation of the compound key. (<a href="https://github.com/nushell/nushell/pull/17837" target="_blank" rel="noopener noreferrer">#17837</a>)</li>
<li>Fixed the command <code>tee</code> truncating the input for the inner closure when the output of <code>tee</code> is ignored by subsequent commands. (<a href="https://github.com/nushell/nushell/pull/17793" target="_blank" rel="noopener noreferrer">#17793</a>)</li>
<li>Aligns http options with the other http verbs so flags and output shape match <code>http head</code>. (<a href="https://github.com/nushell/nushell/pull/17841" target="_blank" rel="noopener noreferrer">#17841</a>)</li>
<li>Fixed a bug of lossy parsing of unclosed subexpressions in string interpolation, e.g. <code>$'(foo'</code>, which blocks completions inside all kinds of string interpolation subexpressions. (<a href="https://github.com/nushell/nushell/pull/17851" target="_blank" rel="noopener noreferrer">#17851</a>)</li>
<li><code>rm</code> now errors when given a symlink path with a trailing slash, preventing accidental deletion of the underlying directory. Use <code>rm foo-link</code> without the trailing slash to remove the symlink itself. (<a href="https://github.com/nushell/nushell/pull/17847" target="_blank" rel="noopener noreferrer">#17847</a>)</li>
<li>Fixed a bug of duration/filesize parsing with numbers started by <code>.</code>, e.g. <code>.5sec</code> (<a href="https://github.com/nushell/nushell/pull/17923" target="_blank" rel="noopener noreferrer">#17923</a>)</li>
<li>Made MCP more responsive in stdio mode. (<a href="https://github.com/nushell/nushell/pull/17945" target="_blank" rel="noopener noreferrer">#17945</a>)</li>
<li>Use strict comparison for float-based sorting to fix panics. (<a href="https://github.com/nushell/nushell/pull/17930" target="_blank" rel="noopener noreferrer">#17930</a>)</li>
<li><code>nu --experimental-options ... script.nu</code> now works correctly without requiring <code>--</code> before the script path. Nushell no longer treats the script file as part of the <code>--experimental-options</code> values. (<a href="https://github.com/nushell/nushell/pull/17943" target="_blank" rel="noopener noreferrer">#17943</a>)</li>
<li><code>parse</code> simple patterns: literal <code>{</code> via <code>(char lbrace)</code> before a <code>{name}</code> capture works now. (<a href="https://github.com/nushell/nushell/pull/17962" target="_blank" rel="noopener noreferrer">#17962</a>)</li>
<li>Fixed <code>input list</code> when stdin is redirected in Unix TTY environments. (<a href="https://github.com/nushell/nushell/pull/17987" target="_blank" rel="noopener noreferrer">#17987</a>)</li>
</ul>
<h1>Notes for plugin developers </h1>
<h3>Replaced <code>ShellError::GenericError</code> with <code>ShellError::Generic(GenericError)</code>  </h3>
<p><code>ShellError::GenericError</code> is now deprecated, prefer to use <code>ShellError::Generic</code> instead.</p>
<h1>Hall of fame </h1>
<p>Thanks to all the contributors below for helping us solve issues, improve documentation, refactor code, and more! 🙏</p>
<p>| author                                             | change                                                                                                                                                                                                                                               | link                                                    |
|</p>
]]></content:encoded>
    </item>
    <item>
      <title>This week in Nushell #346</title>
      <link>https://www.nushell.sh/blog/2026-04-10-twin0346.html</link>
      <guid>https://www.nushell.sh/blog/2026-04-10-twin0346.html</guid>
      <source url="https://www.nushell.sh/rss.xml">This week in Nushell #346</source>
      <description>This Week in Nushell #346
Published Friday, 2026-04-10, including PRs merged Friday, 2026-04-03 through Thursday, 2026-04-09.
Nushell


@cptpiepmatz:

marked CustomValue::is_ite...</description>
      <content:encoded><![CDATA[
<p>Published Friday, 2026-04-10, including PRs merged Friday, 2026-04-03 through Thursday, 2026-04-09.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18003" target="_blank" rel="noopener noreferrer">marked <code>CustomValue::is_iterable</code> as deprecated (#18003)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17983" target="_blank" rel="noopener noreferrer">made <code>random choice</code> behave like <code>first</code> (#17983)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17980" target="_blank" rel="noopener noreferrer">moved conversion between <code>nu_json::Value</code> and <code>nu_protocol::Value</code> into <code>nu-json</code> (#17980)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18000" target="_blank" rel="noopener noreferrer">bumped tempfile from 3.25.0 to 3.27.0 (#18000)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17999" target="_blank" rel="noopener noreferrer">bumped similar from 2.7.0 to 3.0.0 (#17999)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17998" target="_blank" rel="noopener noreferrer">bumped tokio from 1.50.0 to 1.51.0 (#17998)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17997" target="_blank" rel="noopener noreferrer">bumped crate-ci/typos from 1.44.0 to 1.45.0 (#17997)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17949" target="_blank" rel="noopener noreferrer">bumped unicode-segmentation from 1.12.0 to 1.13.2 (#17949)</a></li>
</ul>
</li>
<li>
<p>@andrewgazelka:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17996" target="_blank" rel="noopener noreferrer">improved model guidance (#17996)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17989" target="_blank" rel="noopener noreferrer">fixed nu-mcp to deliver full output for promoted background jobs (#17989)</a></li>
</ul>
</li>
<li>
<p>@Juhan280:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17995" target="_blank" rel="noopener noreferrer">added rustfmt.toml (#17995)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17994" target="_blank" rel="noopener noreferrer">bumped uu_* packages to 0.8.0 (#17994)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17988" target="_blank" rel="noopener noreferrer">refactored some commands and added tests (#17988)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17979" target="_blank" rel="noopener noreferrer">fixed help command to prefer built-in help over aliases (#17979)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17978" target="_blank" rel="noopener noreferrer">refactored parser to consolidate span adjustment for external calls (#17978)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17966" target="_blank" rel="noopener noreferrer">made input list streamable (#17966)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17956" target="_blank" rel="noopener noreferrer">added new sigil <code>%</code> for built-ins (#17956)</a></li>
</ul>
</li>
<li>
<p>@Benjas333:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17993" target="_blank" rel="noopener noreferrer">added frameless table theme (#17993)</a></li>
</ul>
</li>
<li>
<p>@hustcer:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17987" target="_blank" rel="noopener noreferrer">fixed <code>input list</code> when stdin is redirected in Unix TTY environments (#17987)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17976" target="_blank" rel="noopener noreferrer">fixed parser scope leak in where $cond (#17976)</a></li>
</ul>
</li>
<li>
<p>@xtqqczze:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17984" target="_blank" rel="noopener noreferrer">updated git2 minimum to 0.20.4 (#17984)</a></li>
</ul>
</li>
<li>
<p>@blindFS:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17974" target="_blank" rel="noopener noreferrer">reverted allowing default values in external signatures (#17974)</a></li>
</ul>
</li>
<li>
<p>@sholderbach:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/16708" target="_blank" rel="noopener noreferrer">fixed confusing double negation with empty <code>else if</code> (#16708)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>
<p>@neko-side:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1242" target="_blank" rel="noopener noreferrer">added lsd completions (#1242)</a></li>
</ul>
</li>
<li>
<p>@cab404:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1241" target="_blank" rel="noopener noreferrer">fixed yarn and tldr completion directories (#1241)</a></li>
<li><a href="https://github.com/nushell/nu_scripts/pull/1240" target="_blank" rel="noopener noreferrer">renamed custom-completions/bend to adere to *-completions.nu format (#1240)</a></li>
</ul>
</li>
<li>
<p>@gbrls:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1239" target="_blank" rel="noopener noreferrer">added television custom-completions (#1239)</a></li>
</ul>
</li>
<li>
<p>@alightgoesout:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1238" target="_blank" rel="noopener noreferrer">updated jj completions for version 0.40.0 (#1238)</a></li>
</ul>
</li>
</ul>
<h2>VSCode Extension</h2>
<ul>
<li>@fdncred:
<ul>
<li><a href="https://github.com/nushell/vscode-nushell-lang/pull/230" target="_blank" rel="noopener noreferrer">updated for nushell 0.112.0 (#230)</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>This week in Nushell #345</title>
      <link>https://www.nushell.sh/blog/2026-04-03-twin0345.html</link>
      <guid>https://www.nushell.sh/blog/2026-04-03-twin0345.html</guid>
      <source url="https://www.nushell.sh/rss.xml">This week in Nushell #345</source>
      <description>This Week in Nushell #345
Published Sunday, 2026-04-19, including PRs merged Friday, 2026-03-27 through Thursday, 2026-04-02.
Nushell


@Juhan280:

refactored nu-command tests f...</description>
      <content:encoded><![CDATA[
<p>Published Sunday, 2026-04-19, including PRs merged Friday, 2026-03-27 through Thursday, 2026-04-02.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@Juhan280:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17968" target="_blank" rel="noopener noreferrer">refactored nu-command tests for <code>reject</code> command (#17968)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17961" target="_blank" rel="noopener noreferrer">fixed <code>reject</code> command to properly forward error values (#17961)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17944" target="_blank" rel="noopener noreferrer">allowed <code>--content-type</code> to accept <code>null</code> in <code>metadata set</code> (#17944)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17911" target="_blank" rel="noopener noreferrer">preserved metadata when rendering <code>Custom</code> value in <code>table</code> command (#17911)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17910" target="_blank" rel="noopener noreferrer">fixed <code>cargo doc</code> warnings (#17910)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17909" target="_blank" rel="noopener noreferrer">implemented DerefMut for PipelineExecutionData in nu-protocol (#17909)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17906" target="_blank" rel="noopener noreferrer">preserved pipeline metadata when detect type cannot determine input (#17906)</a></li>
</ul>
</li>
<li>
<p>@niklasmarderx:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17967" target="_blank" rel="noopener noreferrer">fixed HTTP handling of x- vendor prefix in Content-Type for automatic parsing (#17967)</a></li>
</ul>
</li>
<li>
<p>@Dexterity104:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17962" target="_blank" rel="noopener noreferrer">fixed parse to support char lbrace before trailing capture (#17962)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17955" target="_blank" rel="noopener noreferrer">reverted &quot;detect lexer-stage errors at highlighting&quot; (#17955)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17945" target="_blank" rel="noopener noreferrer">enhanced MCP mode handling and output behavior across commands (#17945)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17937" target="_blank" rel="noopener noreferrer">added <code>from md</code> command to convert markdown text into structured data (#17937)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17912" target="_blank" rel="noopener noreferrer">updated rmcp to version 1.3.0 and adjusted session manager configuration (#17912)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17905" target="_blank" rel="noopener noreferrer">updated IDE help text to specify cursor position and file context (#17905)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17954" target="_blank" rel="noopener noreferrer">streamlined CI Cargo checks (#17954)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17929" target="_blank" rel="noopener noreferrer">bumped <code>rand</code> and related to 0.10 (#17929)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17927" target="_blank" rel="noopener noreferrer">added <code>test_cell_path!()</code> macro (#17927)</a></li>
</ul>
</li>
<li>
<p>@xtqqczze:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17950" target="_blank" rel="noopener noreferrer">fixed failed to parse manifest error (#17950)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17931" target="_blank" rel="noopener noreferrer">updated Cargo.toml files to use workspace edition and rust-version (#17931)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17946" target="_blank" rel="noopener noreferrer">bumped uuid from 1.22.0 to 1.23.0 (#17946)</a></li>
</ul>
</li>
<li>
<p>@smartcoder0777:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17943" target="_blank" rel="noopener noreferrer">fixed experimental-options consuming script path (#17943)</a></li>
</ul>
</li>
<li>
<p>@rayzeller:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17939" target="_blank" rel="noopener noreferrer">replaced Span::unknown() with real spans in nu_plugin_polars (#17939)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17938" target="_blank" rel="noopener noreferrer">replaced Span::unknown() with real spans in nu-engine (#17938)</a></li>
</ul>
</li>
<li>
<p>@galuszkak:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17930" target="_blank" rel="noopener noreferrer">used strict comparison for float sorting to avoid panics (#17930)</a></li>
</ul>
</li>
<li>
<p>@WookiesRpeople2:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17928" target="_blank" rel="noopener noreferrer">updated noun output to be more compact when <code>--indent n</code> is used (#17928)</a></li>
</ul>
</li>
<li>
<p>@blindFS:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17923" target="_blank" rel="noopener noreferrer">fixed an edge case of parse_unit_value (#17923)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17908" target="_blank" rel="noopener noreferrer">added new scope for where condition to allow variables named <code>it</code> (#17908)</a></li>
</ul>
</li>
<li>
<p>@pickx:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17917" target="_blank" rel="noopener noreferrer">detected lexer-stage errors at highlighting (#17917)</a></li>
</ul>
</li>
<li>
<p>@Rohan5commit:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17915" target="_blank" rel="noopener noreferrer">fixed typo in flags section comment (#17915)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17904" target="_blank" rel="noopener noreferrer">fixed typo in completer comment (#17904)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@NotTheDr01ds:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2144" target="_blank" rel="noopener noreferrer">March TWiNs (#2144)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2142" target="_blank" rel="noopener noreferrer">bumped picomatch (#2142)</a></li>
</ul>
</li>
</ul>
<h2>nufmt</h2>
<ul>
<li>
<p>@asakura:</p>
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/164" target="_blank" rel="noopener noreferrer">prevented stripping parens in boolean expressions (#164)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/161" target="_blank" rel="noopener noreferrer">enhanced formatting with batch fix (#161)</a></li>
<li><a href="https://github.com/nushell/nufmt/pull/148" target="_blank" rel="noopener noreferrer">refactored test cases and added new fixtures for parser error handling (#148)</a></li>
<li><a href="https://github.com/nushell/nufmt/pull/147" target="_blank" rel="noopener noreferrer">fixed batch issues (#147)</a></li>
<li><a href="https://github.com/nushell/nufmt/pull/135" target="_blank" rel="noopener noreferrer">enhanced formatting for pipelines, comments, and <code>for</code> loop calls (#135)</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>This week in Nushell #344</title>
      <link>https://www.nushell.sh/blog/2026-03-27-twin0344.html</link>
      <guid>https://www.nushell.sh/blog/2026-03-27-twin0344.html</guid>
      <source url="https://www.nushell.sh/rss.xml">This week in Nushell #344</source>
      <description>This Week in Nushell #344
Published Sunday, 2026-03-29, including PRs merged Friday, 2026-03-20 through Thursday, 2026-03-26.
Nushell


@fdncred:

refactored error handling for ...</description>
      <content:encoded><![CDATA[
<p>Published Sunday, 2026-03-29, including PRs merged Friday, 2026-03-20 through Thursday, 2026-03-26.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17895" target="_blank" rel="noopener noreferrer">refactored error handling for directory removal in rm command (#17895)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17855" target="_blank" rel="noopener noreferrer">fixed datetime parsing by enhancing timezone and offset handling (#17855)</a></li>
</ul>
</li>
<li>
<p>@rayzeller:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17888" target="_blank" rel="noopener noreferrer">replaced Span::unknown() with real spans in remaining nu-command files (#17888)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17877" target="_blank" rel="noopener noreferrer">replaced Span::unknown() with real spans in nu-protocol and nu-mcp (#17877)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17876" target="_blank" rel="noopener noreferrer">replaced Span::unknown() with real spans in nu-cli and main (#17876)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17872" target="_blank" rel="noopener noreferrer">replaced Span::unknown() with real spans in nu-command filters and strings (#17872)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17871" target="_blank" rel="noopener noreferrer">replaced Span::unknown() with real spans in plugin crates (#17871)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17842" target="_blank" rel="noopener noreferrer">replaced Span::unknown() with real spans in which_.rs (#17842)</a></li>
</ul>
</li>
<li>
<p>@ian-h-chamberlain:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17887" target="_blank" rel="noopener noreferrer">customized binary hex styles with color_config (#17887)</a></li>
</ul>
</li>
<li>
<p>@smartcoder0777:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17878" target="_blank" rel="noopener noreferrer">fixed known external name lookup under alias shadowing (#17878)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17875" target="_blank" rel="noopener noreferrer">preserved pipeline metadata in first and last for list/range streams (#17875)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17874" target="_blank" rel="noopener noreferrer">only updated PR labels on opened or ready PRs (#17874)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17873" target="_blank" rel="noopener noreferrer">applied <code>#[doc(no_inline)]</code> to <code>prelude</code> modules (#17873)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17870" target="_blank" rel="noopener noreferrer">added <code>From</code> conversions for <code>ErrorSite</code> (#17870)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17869" target="_blank" rel="noopener noreferrer">allowed showing error sources for generic errors (#17869)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17868" target="_blank" rel="noopener noreferrer">added <code>GenericError::new_internal_with_location</code> (#17868)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17864" target="_blank" rel="noopener noreferrer">refactored nu-protocol to replace <code>ShellError::GenericError</code> with <code>ShellError::Generic(GenericError)</code> (#17864)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17858" target="_blank" rel="noopener noreferrer">refactored more command integration tests in nu-command/testing (#17858)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17852" target="_blank" rel="noopener noreferrer">applied security updates (#17852)</a></li>
</ul>
</li>
<li>
<p>@Juhan280:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17867" target="_blank" rel="noopener noreferrer">updated metadata handling for <code>skip</code> and <code>reject</code> commands (#17867)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17866" target="_blank" rel="noopener noreferrer">updated metadata handling for <code>get</code> command (#17866)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17862" target="_blank" rel="noopener noreferrer">added take_metadata and with_path_columns to nu-protocol (#17862)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17859" target="_blank" rel="noopener noreferrer">updated names in <code>keybindings list</code> (#17859)</a></li>
</ul>
</li>
<li>
<p>@andrewgazelka:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17861" target="_blank" rel="noopener noreferrer">auto-promoted long-running evaluations to background jobs in mcp (#17861)</a></li>
</ul>
</li>
<li>
<p>@blindFS:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17851" target="_blank" rel="noopener noreferrer">fixed string interpolation with unclosed <code>)</code> in parser (#17851)</a></li>
</ul>
</li>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17848" target="_blank" rel="noopener noreferrer">fixed <code>test_record!</code> by specifying <code>$crate::record!</code> (#17848)</a></li>
</ul>
</li>
<li>
<p>@Moayad717:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17847" target="_blank" rel="noopener noreferrer">fixed rm symlink trailing slash (#17847)</a></li>
</ul>
</li>
<li>
<p>@app/:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17844" target="_blank" rel="noopener noreferrer">added cross-shell search terms to 16 commands (bash/CMD/PowerShell) (#17844)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17883" target="_blank" rel="noopener noreferrer">bumped toml from 1.0.6+spec-1.1.0 to 1.0.7+spec-1.1.0 (#17883)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17879" target="_blank" rel="noopener noreferrer">bumped ureq from 3.2.0 to 3.3.0 (#17879)</a></li>
</ul>
</li>
</ul>
<h2>nufmt</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/125" target="_blank" rel="noopener noreferrer">refactored files for maintainability (#125)</a></li>
<li><a href="https://github.com/nushell/nufmt/pull/124" target="_blank" rel="noopener noreferrer">enhanced formatting and repair capabilities (#124)</a></li>
<li><a href="https://github.com/nushell/nufmt/pull/103" target="_blank" rel="noopener noreferrer">allowed formatting expressions like <code>ls | where type == dir</code> inside def (#103)</a></li>
<li><a href="https://github.com/nushell/nufmt/pull/102" target="_blank" rel="noopener noreferrer">added support for attribute expressions and new test cases (#102)</a></li>
<li><a href="https://github.com/nushell/nufmt/pull/99" target="_blank" rel="noopener noreferrer">fixed issues and added tests (#99)</a></li>
</ul>
</li>
<li>
<p>@asakura:</p>
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/123" target="_blank" rel="noopener noreferrer">updated nix build patch for ground_truth.rs (#123)</a></li>
</ul>
</li>
<li>
<p>@saschabuehrle:</p>
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/96" target="_blank" rel="noopener noreferrer">preserved exclusive range operator (..&lt;) (#96)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>@paglobal:
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2141" target="_blank" rel="noopener noreferrer">fixed typo in returned value explanation (#2141)</a></li>
</ul>
</li>
</ul>
<h2>Tree-sitter</h2>
<ul>
<li>@1gmar:
<ul>
<li><a href="https://github.com/nushell/tree-sitter-nu/pull/247" target="_blank" rel="noopener noreferrer">exposed Highlights query at crate level (#247)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>@eitsupi:
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1042" target="_blank" rel="noopener noreferrer">preserved prompt position after ExternalBreak (#1042)</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>This week in Nushell #343</title>
      <link>https://www.nushell.sh/blog/2026-03-20-twin0343.html</link>
      <guid>https://www.nushell.sh/blog/2026-03-20-twin0343.html</guid>
      <source url="https://www.nushell.sh/rss.xml">This week in Nushell #343</source>
      <description>This Week in Nushell #343
Published Sunday, 2026-03-29, including PRs merged Friday, 2026-03-13 through Thursday, 2026-03-19.
Nushell


@smartcoder0777:

fixed group-by behavior...</description>
      <content:encoded><![CDATA[
<p>Published Sunday, 2026-03-29, including PRs merged Friday, 2026-03-13 through Thursday, 2026-03-19.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@smartcoder0777:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17837" target="_blank" rel="noopener noreferrer">fixed <code>group-by</code> behavior for lists/records (#17837)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17833" target="_blank" rel="noopener noreferrer">added --base support to <code>url parse</code> (#17833)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17836" target="_blank" rel="noopener noreferrer">upgraded rmcp to version 1.2.0 (#17836)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17835" target="_blank" rel="noopener noreferrer">upgraded <code>glob</code> to use wax crate v0.7.0 (#17835)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17819" target="_blank" rel="noopener noreferrer">swapped order of user and default library directories, const $NU_LIB_DIRS (#17819)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17800" target="_blank" rel="noopener noreferrer">updated command docs to include command types (#17800)</a></li>
</ul>
</li>
<li>
<p>@ysthakur:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17834" target="_blank" rel="noopener noreferrer">bumped reedline to latest main (#17834)</a></li>
</ul>
</li>
<li>
<p>@musicinmybrain:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17832" target="_blank" rel="noopener noreferrer">updated lscolors from 0.20 to 0.21 (#17832)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17825" target="_blank" rel="noopener noreferrer">fixed clippy issues (#17825)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17822" target="_blank" rel="noopener noreferrer">warned on <code>clippy::needless_raw_strings</code> (#17822)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17820" target="_blank" rel="noopener noreferrer">refactored more command integration tests (#17820)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17813" target="_blank" rel="noopener noreferrer">bumped <code>toml</code> crate to 1.0 (#17813)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17805" target="_blank" rel="noopener noreferrer">warned on <code>clippy::push_format_string</code> (#17805)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17804" target="_blank" rel="noopener noreferrer">gave <code>http get</code> tests with socks proxy more execution time (#17804)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17803" target="_blank" rel="noopener noreferrer">enabled <code>env_shlvl_in_repl</code> and <code>env_shlvl_in_exec_repl</code> tests (#17803)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17801" target="_blank" rel="noopener noreferrer">refactored <code>test_examples</code> usage with centralized testing (#17801)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17794" target="_blank" rel="noopener noreferrer">fixed <code>http</code> not respecting proxy vars like <code>ALL_PROXY</code> (#17794)</a></li>
</ul>
</li>
<li>
<p>@hustcer:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17821" target="_blank" rel="noopener noreferrer">excluded nu-test-support for loongarch64 to fix release script (#17821)</a></li>
</ul>
</li>
<li>
<p>@Rohan5commit:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17818" target="_blank" rel="noopener noreferrer">fixed devdocs wording (#17818)</a></li>
</ul>
</li>
<li>
<p>@zhiburt:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17812" target="_blank" rel="noopener noreferrer">adjusted width estimation for header_on_border in nu-table (#17812)</a></li>
</ul>
</li>
<li>
<p>@tauanbinato:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17811" target="_blank" rel="noopener noreferrer">fixed output type signatures for <code>hash md5</code> and <code>hash sha256</code> (#17811)</a></li>
</ul>
</li>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17797" target="_blank" rel="noopener noreferrer">added <code>test_record!</code> convenience macro (#17797)</a></li>
</ul>
</li>
<li>
<p>@ymcx:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17791" target="_blank" rel="noopener noreferrer">dropped mode preservation to fix copying read-only dirs (#17791)</a></li>
</ul>
</li>
<li>
<p>@weirdan:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17788" target="_blank" rel="noopener noreferrer">added completions for <code>into binary --endian</code> (#17788)</a></li>
</ul>
</li>
<li>
<p>@pickx:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17787" target="_blank" rel="noopener noreferrer">added <code>group-by</code> flag to delete column after grouping (#17787)</a></li>
</ul>
</li>
<li>
<p>@blackhat-hemsworth:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17783" target="_blank" rel="noopener noreferrer">added duplicate histogram output column check (#17783)</a></li>
</ul>
</li>
<li>
<p>@stuartcarnie:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17566" target="_blank" rel="noopener noreferrer">added configurable external hinter closure to repl (#17566)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17831" target="_blank" rel="noopener noreferrer">bumped winreg from 0.55.0 to 0.56.0 (#17831)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17830" target="_blank" rel="noopener noreferrer">bumped scraper from 0.25.0 to 0.26.0 (#17830)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17774" target="_blank" rel="noopener noreferrer">bumped sqlparser from 0.60.0 to 0.61.0 (#17774)</a></li>
</ul>
</li>
</ul>
<h2>nufmt</h2>
<ul>
<li>@fvsch:
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/91" target="_blank" rel="noopener noreferrer">removed <code>cargo install nufmt</code> from README (#91)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2137" target="_blank" rel="noopener noreferrer">bumped undici from 7.16.0 to 7.24.1 (#2137)</a></li>
</ul>
</li>
<li>
<p>@c-git:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2131" target="_blank" rel="noopener noreferrer">fixed minor typos (#2131)</a></li>
</ul>
</li>
</ul>
<h2>Awesome Nu</h2>
<ul>
<li>@SuaveIV:
<ul>
<li><a href="https://github.com/nushell/awesome-nu/pull/163" target="_blank" rel="noopener noreferrer">added nu_plugin_audio, nu_script_time_sync, nu_script_world_time; alphabetized entries (#163)</a></li>
</ul>
</li>
</ul>
<h2>Tree-sitter</h2>
<ul>
<li>@app/dependabot:
<ul>
<li><a href="https://github.com/nushell/tree-sitter-nu/pull/246" target="_blank" rel="noopener noreferrer">bumped minimatch from 3.1.2 to 3.1.5 (#246)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>@ysthakur:
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1040" target="_blank" rel="noopener noreferrer">fixed ANSI stripping for suggestion width in completion menus (#1040)</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>This week in Nushell #342</title>
      <link>https://www.nushell.sh/blog/2026-03-13-twin0342.html</link>
      <guid>https://www.nushell.sh/blog/2026-03-13-twin0342.html</guid>
      <source url="https://www.nushell.sh/rss.xml">This week in Nushell #342</source>
      <description>This Week in Nushell #342
Published Sunday, 2026-03-29, including PRs merged Friday, 2026-03-06 through Thursday, 2026-03-12.
Nushell


@Juhan280:

updated reedline to commit 5c...</description>
      <content:encoded><![CDATA[
<p>Published Sunday, 2026-03-29, including PRs merged Friday, 2026-03-06 through Thursday, 2026-03-12.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@Juhan280:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17785" target="_blank" rel="noopener noreferrer">updated reedline to commit 5c2f105 (#17785)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17749" target="_blank" rel="noopener noreferrer">refactored the display logic for <code>ReedlineEvent</code> and <code>EditCommand</code> to nushell (#17749)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17747" target="_blank" rel="noopener noreferrer">added ToStart/ToEnd reedline events (#17747)</a></li>
</ul>
</li>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17782" target="_blank" rel="noopener noreferrer">made <code>Span</code>'s <code>Debug</code> impl succinct (#17782)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17781" target="_blank" rel="noopener noreferrer">added support for parsing <code>hh:mm:ss</code> formatted strings in <code>into duration</code> (#17781)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17779" target="_blank" rel="noopener noreferrer">updated dependencies and improved compatibility (#17779)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17759" target="_blank" rel="noopener noreferrer">added 'document' flag to parse HTML as a full document in <code>query_web</code> (#17759)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17737" target="_blank" rel="noopener noreferrer">fixed select pushdown column aliasing (#17737)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17734" target="_blank" rel="noopener noreferrer">updated Rust version to 1.92.0 and fixed clippy warnings in configuration (#17734)</a></li>
</ul>
</li>
<li>
<p>@pickx:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17777" target="_blank" rel="noopener noreferrer">fixed format strings with tokens after ending quote (#17777)</a></li>
</ul>
</li>
<li>
<p>@weirdan:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17775" target="_blank" rel="noopener noreferrer">preserved metadata in <code>reject</code> (#17775)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17762" target="_blank" rel="noopener noreferrer">added <code>char</code> completions (#17762)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17761" target="_blank" rel="noopener noreferrer">added <code>ansi</code> completions (#17761)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17767" target="_blank" rel="noopener noreferrer">refactored most nested command integration tests in <code>nu-command</code> (#17767)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17766" target="_blank" rel="noopener noreferrer">merged <code>To/FromYaml</code> and <code>To/FromYml</code> into one struct (#17766)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17765" target="_blank" rel="noopener noreferrer">bumped some packages to handle security issues (#17765)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17750" target="_blank" rel="noopener noreferrer">added <code>TestResult::expect_value_eq</code> and improved <code>test()</code> errors (#17750)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17748" target="_blank" rel="noopener noreferrer">used <code>std::panic::Location</code> instead of custom <code>Location</code> type (#17748)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17745" target="_blank" rel="noopener noreferrer">updated more tests and used <code>assert_contains()</code> (#17745)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17742" target="_blank" rel="noopener noreferrer">bumped aws related crates (#17742)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17740" target="_blank" rel="noopener noreferrer">moved some tests around and applied more <code>nu_test_support::test</code> (#17740)</a></li>
</ul>
</li>
<li>
<p>@WindSoilder:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17764" target="_blank" rel="noopener noreferrer">fixed pipefail behavior with <code>try</code>, <code>catch</code>, and <code>finally</code> (#17764)</a></li>
</ul>
</li>
<li>
<p>@0xRozier:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17753" target="_blank" rel="noopener noreferrer">allowed passing null to optional positional params in builtin commands (#17753)</a></li>
</ul>
</li>
<li>
<p>@preiter93:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17752" target="_blank" rel="noopener noreferrer">bumped edtui to 0.11.2 and removed workarounds in nu-explore (#17752)</a></li>
</ul>
</li>
<li>
<p>@Jaredw2289-svg:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17751" target="_blank" rel="noopener noreferrer">improved alias expression error message with user-friendly descriptions (#17751)</a></li>
</ul>
</li>
<li>
<p>@Bortlesboat:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17746" target="_blank" rel="noopener noreferrer">fixed confusing type mismatch error in bytes collect (#17746)</a></li>
</ul>
</li>
<li>
<p>@coravacav:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17744" target="_blank" rel="noopener noreferrer">fixed input listen timeout calculation (#17744)</a></li>
</ul>
</li>
<li>
<p>@blindFS:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17741" target="_blank" rel="noopener noreferrer">moved reserved variable name checking near <code>is_variable</code> and <code>add_variable</code> (#17741)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17772" target="_blank" rel="noopener noreferrer">bumped calamine from 0.33.0 to 0.34.0 (#17772)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17771" target="_blank" rel="noopener noreferrer">bumped quickcheck_macros from 1.1.0 to 1.2.0 (#17771)</a></li>
</ul>
</li>
</ul>
<h2>nufmt</h2>
<ul>
<li>@fdncred:
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/89" target="_blank" rel="noopener noreferrer">fixed completion signature formatting (#89)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>@LikeLakers2:
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2136" target="_blank" rel="noopener noreferrer">added ESC-to-clear keybind to &quot;Coming from CMD&quot; and &quot;Coming from PowerShell&quot; pages (#2136)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@eitsupi:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1035" target="_blank" rel="noopener noreferrer">added external break signal for <code>read_line</code> interruption and marked <code>Signal</code> as <code>non_exhaustive</code> (#1035)</a></li>
</ul>
</li>
<li>
<p>@Juhan280:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1034" target="_blank" rel="noopener noreferrer">added EnumDiscriminants to ReedlineEvent and EditCommand (#1034)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1032" target="_blank" rel="noopener noreferrer">moved jump-to-buffer start/end bindings to common navigation (#1032)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1031" target="_blank" rel="noopener noreferrer">added <code>EditCommand::MoveLineUp</code> and <code>EditCommand::MoveLineDown</code> (#1031)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1027" target="_blank" rel="noopener noreferrer">fixed cursor position for <code>EditCommand::ReplaceChar</code> (#1027)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/956" target="_blank" rel="noopener noreferrer">fixed undo requiring two presses after copy (#956)</a></li>
</ul>
</li>
<li>
<p>@schlich:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1033" target="_blank" rel="noopener noreferrer">added minimal scaffolding for feature-gated Helix Mode implementation (#1033)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>
<p>@zifengb:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1235" target="_blank" rel="noopener noreferrer">enhanced Claude Code CLI with detailed command descriptions and new functionalities (#1235)</a></li>
</ul>
</li>
<li>
<p>@jasha-hrp:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1234" target="_blank" rel="noopener noreferrer">updated nushell paths to reflect recent breaking changes (#1234)</a></li>
</ul>
</li>
<li>
<p>@deltoss:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1233" target="_blank" rel="noopener noreferrer">marked gist parameter as optional for <code>gh gist edit</code> command (#1233)</a></li>
</ul>
</li>
<li>
<p>@0x4D5352:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1231" target="_blank" rel="noopener noreferrer">added Nushell Agent Skill (#1231)</a></li>
</ul>
</li>
</ul>
<h2>showcase</h2>
<ul>
<li>@ian-h-chamberlain:
<ul>
<li><a href="https://github.com/nushell/showcase/pull/13" target="_blank" rel="noopener noreferrer">added nushell-sliced.svg and nushell-sliced-black.svg (#13)</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>This week in Nushell #341</title>
      <link>https://www.nushell.sh/blog/2026-03-06-twin0341.html</link>
      <guid>https://www.nushell.sh/blog/2026-03-06-twin0341.html</guid>
      <source url="https://www.nushell.sh/rss.xml">This week in Nushell #341</source>
      <description>This Week in Nushell #341
Published Sunday, 2026-03-29, including PRs merged Friday, 2026-02-27 through Thursday, 2026-03-05.
Nushell


@fdncred:

added testbin &amp;quot;bins&amp;quot;...</description>
      <content:encoded><![CDATA[
<p>Published Sunday, 2026-03-29, including PRs merged Friday, 2026-02-27 through Thursday, 2026-03-05.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17728" target="_blank" rel="noopener noreferrer">added testbin &quot;bins&quot; to nushell help (#17728)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17727" target="_blank" rel="noopener noreferrer">fixed duplicate custom commands from showing up (#17727)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17718" target="_blank" rel="noopener noreferrer">fixed the off-by-1 jump scrolling in <code>explore</code> when searching (#17718)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17699" target="_blank" rel="noopener noreferrer">reverted 17606 to make plugin handling more robust on startup (#17699)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17692" target="_blank" rel="noopener noreferrer">removed bad <code>which</code> test and created a better one (#17692)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17691" target="_blank" rel="noopener noreferrer">fixed one-off up/down arrow wrapping bug (#17691)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17680" target="_blank" rel="noopener noreferrer">updated the sqlite history timestamp and duration with nushell values (#17680)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17678" target="_blank" rel="noopener noreferrer">pinned trash to 5.2.4 to avoid needing --locked for macOS builds (#17678)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17677" target="_blank" rel="noopener noreferrer">fixed pipefail issues with complete and let (#17677)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17675" target="_blank" rel="noopener noreferrer">fixed interpolation without closing paren (#17675)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17668" target="_blank" rel="noopener noreferrer">expanded custom value handling to more commands (#17668)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17663" target="_blank" rel="noopener noreferrer">allowed <code>clip copy</code> to copy tables without ansi escapes (#17663)</a></li>
</ul>
</li>
<li>
<p>@ayax79:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17723" target="_blank" rel="noopener noreferrer">implemented selector commands for numeric types in Polars (#17723)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17722" target="_blank" rel="noopener noreferrer">added <code>polars selector ends-with</code> (#17722)</a></li>
</ul>
</li>
<li>
<p>@ChrisDenton:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17721" target="_blank" rel="noopener noreferrer">fixed tests ending cwd with a / (#17721)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17720" target="_blank" rel="noopener noreferrer">preferred PWD over current_dir if they're the same directory (#17720)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17716" target="_blank" rel="noopener noreferrer">bumped kitest &amp; removed <code>RefUnwindSafe</code> from experimental option markers (#17716)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17702" target="_blank" rel="noopener noreferrer">updated winresource versions (#17702)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17682" target="_blank" rel="noopener noreferrer">bumped patch after release (#17682)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17681" target="_blank" rel="noopener noreferrer">updated readline version, bumped minor version, fixed some feature conflicts (#17681)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17664" target="_blank" rel="noopener noreferrer">moved native <code>clip</code> commands behind an experimental option (#17664)</a></li>
</ul>
</li>
<li>
<p>@Tyarel8:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17707" target="_blank" rel="noopener noreferrer">added ctrl+p/n for navigation in <code>input list</code> (#17707)</a></li>
</ul>
</li>
<li>
<p>@Juhan280:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17706" target="_blank" rel="noopener noreferrer">added <code>metadata_ref</code> and <code>metadata_mut</code> methods to <code>PipelineData</code> (#17706)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17703" target="_blank" rel="noopener noreferrer">added <code>str escape-regex</code> (#17703)</a></li>
</ul>
</li>
<li>
<p>@blindFS:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17696" target="_blank" rel="noopener noreferrer">fixed respect for <code>reorder-cell-paths</code> option in assignments (#17696)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17684" target="_blank" rel="noopener noreferrer">fixed parser handling of record keys parsed as strings (#17684)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17673" target="_blank" rel="noopener noreferrer">added type inference for cell paths (#17673)</a></li>
</ul>
</li>
<li>
<p>@NotTheDr01ds:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17672" target="_blank" rel="noopener noreferrer">reworked another deprecated <code>metadata set</code> example (#17672)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17667" target="_blank" rel="noopener noreferrer">updated <code>metadata-set</code> example to use <code>--path-columns</code> syntax (#17667)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17710" target="_blank" rel="noopener noreferrer">bumped actions/upload-artifact from 6 to 7 (#17710)</a></li>
</ul>
</li>
</ul>
<h2>nufmt</h2>
<ul>
<li>@vkopio:
<a href="https://github.com/nushell/nufmt/pull/88" target="_blank" rel="noopener noreferrer">added tests and fixes for some format errors (#88)</a></li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2135" target="_blank" rel="noopener noreferrer">bumped immutable from 5.0.2 to 5.1.5 (#2135)</a></li>
</ul>
</li>
<li>
<p>@shunichironomura:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2133" target="_blank" rel="noopener noreferrer">fixed typo in <code>--experimental-options</code> in NuShell 0.111.0 release blog (#2133)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2132" target="_blank" rel="noopener noreferrer">added missing toc jumps (#2132)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2130" target="_blank" rel="noopener noreferrer">added release notes for <code>v0.111.0</code> (#2130)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2129" target="_blank" rel="noopener noreferrer">added components to simplify release changelogs (#2129)</a></li>
</ul>
</li>
<li>
<p>@NotTheDr01ds:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2128" target="_blank" rel="noopener noreferrer">caught up with February TWiN (#2128)</a></li>
</ul>
</li>
<li>
<p>@LikeLakers2:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2127" target="_blank" rel="noopener noreferrer">flattened JSON files in <code>/cookbook/http.md</code> (#2127)</a></li>
</ul>
</li>
<li>
<p>@hustcer:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2126" target="_blank" rel="noopener noreferrer">refreshed command docs for 0.111 (#2126)</a></li>
</ul>
</li>
</ul>
<h2>Awesome Nu</h2>
<ul>
<li>
<p>@punund:</p>
<ul>
<li><a href="https://github.com/nushell/awesome-nu/pull/161" target="_blank" rel="noopener noreferrer">added nu_plugin_ccl and nu_plugin_mime_message (#161)</a></li>
</ul>
</li>
<li>
<p>@freepicheep:</p>
<ul>
<li><a href="https://github.com/nushell/awesome-nu/pull/160" target="_blank" rel="noopener noreferrer">added nu-salesforce and nu-quickbooks modules (#160)</a></li>
<li><a href="https://github.com/nushell/awesome-nu/pull/159" target="_blank" rel="noopener noreferrer">sorted projects alphabetically (#159)</a></li>
</ul>
</li>
</ul>
<h2>Tree-sitter</h2>
<ul>
<li>@blindFS:
<ul>
<li><a href="https://github.com/nushell/tree-sitter-nu/pull/244" target="_blank" rel="noopener noreferrer">fixed assignment as pipeline element (#244)</a></li>
<li><a href="https://github.com/nushell/tree-sitter-nu/pull/243" target="_blank" rel="noopener noreferrer">added finally clause in ctrl_try (#243)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>@cptpiepmatz:
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1030" target="_blank" rel="noopener noreferrer">prepared release 0.46.0 (#1030)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1230" target="_blank" rel="noopener noreferrer">ensured <code>make_release/bump_version.nu</code> updates winresource metadata (#1230)</a></li>
<li><a href="https://github.com/nushell/nu_scripts/pull/1229" target="_blank" rel="noopener noreferrer">updated release process and notes generation (#1229)</a></li>
<li><a href="https://github.com/nushell/nu_scripts/pull/1227" target="_blank" rel="noopener noreferrer">fixed some release notes generation issues (#1227)</a></li>
</ul>
</li>
<li>
<p>@zifengb:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1228" target="_blank" rel="noopener noreferrer">added Claude Code CLI command completion (#1228)</a></li>
</ul>
</li>
<li>
<p>@ysthakur:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1203" target="_blank" rel="noopener noreferrer">updated make_release instructions and corrected commands (#1203)</a></li>
<li><a href="https://github.com/nushell/nu_scripts/pull/1201" target="_blank" rel="noopener noreferrer">added blank lines around headings in generated release notes (#1201)</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>Nushell 0.111.0</title>
      <link>https://www.nushell.sh/blog/2026-02-28-nushell_v0_111_0.html</link>
      <guid>https://www.nushell.sh/blog/2026-02-28-nushell_v0_111_0.html</guid>
      <source url="https://www.nushell.sh/rss.xml">Nushell 0.111.0</source>
      <description>Nushell 0.111.0
Today, we&amp;apos;re releasing version 0.111.0 of Nu. This release adds smoother select menus, command group aliasing so you can type less, proper finally support that r...</description>
      <content:encoded><![CDATA[
<p>Today, we're releasing version 0.111.0 of Nu. This release adds smoother select menus, command group aliasing so you can type less, proper <code>finally</code> support that really always runs, <code>let</code> right inside pipelines, and an experimental native clipboard that talks straight to your OS.</p>
<h1>Where to get it</h1>
<p>Nu 0.111.0 is available as <a href="https://github.com/nushell/nushell/releases/tag/0.111.0" target="_blank" rel="noopener noreferrer">pre-built binaries</a> or from <a href="https://crates.io/crates/nu" target="_blank" rel="noopener noreferrer">crates.io</a>. If you have Rust installed you can install it using <code>cargo install nu</code>.</p>
<p>As part of this release, we also publish a set of optional <a href="https://www.nushell.sh/book/plugins.html" target="_blank" rel="noopener noreferrer">plugins</a> you can install and use with Nushell.</p>

<h1>Highlights and themes of this release </h1>
<h2>Select menus are smooth now </h2>
<p><a href="https://github.com/jlcrochet" target="_blank" rel="noopener noreferrer">@jlcrochet</a> went in and reworked how <code>input list</code> behaves in <a href="https://github.com/nushell/nushell/pull/17420" target="_blank" rel="noopener noreferrer">#17420</a>. It feels a lot nicer now. Scrolling is smooth, the weird flicker is basically gone, and there are some really useful new flags along the way.</p>
<p>If you use interactive lists often, this one is easy to appreciate.</p>
<p>We even have a video of it, <a href="#updated-input-list-command">check it out!</a></p>
<h2>Type <code>polars</code> less now </h2>
<p><a href="https://github.com/ayax79" target="_blank" rel="noopener noreferrer">@ayax79</a> got tired of typing <code>polars x</code> again and again. So in <a href="https://github.com/nushell/nushell/pull/17359" target="_blank" rel="noopener noreferrer">#17359</a> he added support for aliasing command groups.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># no more polars all the time</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">alias</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> pl</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> polars</span></span></code></pre>
</div><p>It is not just for <code>polars</code>.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># for the quick maths</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">alias</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> m</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> math</span></span></code></pre>
</div><p>Shorter commands, same result. Hard to complain about that.</p>
<p><a href="#aliasing-now-works-with-parent-commands">Take a look how much shorter the example got.</a></p>
<h2>Try-Catch-Finally! </h2>
<p>For a long time Nushell had <code>try</code> and <code>catch</code>, but no <code>finally</code>. We got asked about it. Thanks to <a href="https://github.com/WindSoilder" target="_blank" rel="noopener noreferrer">@WindSoilder</a> and <a href="https://github.com/nushell/nushell/pull/17397" target="_blank" rel="noopener noreferrer">#17397</a>, that is fixed now.</p>
<p><code>finally</code> runs no matter what happened before. If <code>try</code> worked, it runs. If <code>catch</code> ran, it still runs. So your cleanup code actually gets to do its job.</p>
<p>This even works with a <code>return</code>:</p>
<div class="language-ansi line-numbers-mode" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">def</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> aa</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> []</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> {</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">    try</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> {</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">        return</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 10</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">    }</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> finally</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> {</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">        print</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> 'aa'</span></span>
<span class="line"><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">    }</span></span>
<span class="line"><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">}</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">aa</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">aa</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">10</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>The <code>aa</code> got printed even though the function returned early with a <code>10</code>. So even an early exit does not skip the final step.</p>
<p>And with <a href="https://github.com/nushell/nushell/pull/17451" target="_blank" rel="noopener noreferrer">#17451</a> this also works with <code>exit</code>.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">try</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> { </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">exit</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> } </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">finally</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> { </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">print</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> 'aa'</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }  </span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># aa is printed.</span></span></code></pre>
</div><p>So even when you really mean &quot;stop&quot;, <code>finally</code> still runs.</p>
<p>Take a look at the <a href="#users-can-use-finally-after-try-catch">main entry</a> and the <a href="#finally-runs-even-after-exit"><code>exit</code> entry</a>.</p>
<h2>Pipe-<code>let</code>-line </h2>
<p>Last release gave us <code>let</code> at the end of a pipeline. Now, thanks to <a href="https://github.com/fdncred" target="_blank" rel="noopener noreferrer">@fdncred</a> in <a href="https://github.com/nushell/nushell/pull/17446" target="_blank" rel="noopener noreferrer">#17446</a>, you can drop <code>let</code> right into the middle of one too.</p>
<p>You can grab a value, name it, and just keep the pipeline moving.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"hello"</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> msg</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> str length</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">5</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$msg</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">hello</span></span></code></pre>
</div><p>See, very nice. No need to break things apart just to stash a value.</p>
<p>Assign variables anywhere, read more <a href="#let-now-behaves-differently-inside-pipelines">here</a>.</p>
<h2>Experimental Native Clipboard </h2>
<div class="hint-container important">
<p class="hint-container-title">Experimental option</p>
<p>This feature is behind an experimental option.
Run Nushell with <code>--experimental-option=native-clip</code> or set before running Nushell the environment variable to <code>NU_EXPERIMENTAL_OPTIONS=native-clip</code>.</p>
</div>
<p><a href="https://github.com/fmotalleb" target="_blank" rel="noopener noreferrer">@fmotalleb</a> built the plugin <a href="https://github.com/fmotalleb/nu_plugin_clipboard" target="_blank" rel="noopener noreferrer">nu_plugin_clipboard</a>. We liked it enough that we asked to bring it into Nushell itself. That landed in <a href="https://github.com/nushell/nushell/pull/17572" target="_blank" rel="noopener noreferrer">#17572</a>.</p>
<p>With <code>clip copy</code> and <code>clip paste</code>, Nushell now talks directly to your system clipboard instead of going through OSC52 codes. That means it does not depend on your terminal supporting those escape sequences.</p>
<p>There are some tradeoffs, so it is behind the <code>native-clip</code> experimental option for now. But in practice it behaves very similar to <code>std/clip copy</code> and <code>std/clip paste</code>, just using the OS API directly.</p>
<p>If you are curious how it works across platforms, check the examples <a href="#cross-platform-native-clipboard-commands">here</a>.</p>
<h1>Changes </h1>
<h2>Breaking changes </h2>
<h3>Updated <code>input list</code> command  </h3>
<p>The underlying implementation of <code>input list</code> changed a lot. This comes with some changes to the usage of it but also improved UI to be less flickery.</p>

<h4>Four selection modes</h4>
<ul>
<li><strong>Single</strong> (default): Select one item with arrow keys, confirm with Enter</li>
<li><strong>Multi</strong> (<code>--multi</code>): Select multiple items with Space, toggle all with 'a'</li>
<li><strong>Fuzzy</strong> (<code>--fuzzy</code>): Type to filter with highlighted matches</li>
<li><strong>Fuzzy Multi</strong> (<code>--fuzzy --multi</code>): Filter and select multiple items with Tab, toggle all with Alt+A</li>
</ul>
<h4>Table rendering</h4>
<p>When piping a table (list of records), items display with aligned columns matching Nushell's table styling:</p>
<ul>
<li>Type-based colors and alignment (inherits from <code>color_config</code>)</li>
<li>Header row with separator line (matches <code>table.mode</code> theme)</li>
<li>Horizontal scrolling with Left/Right (Shift+Left/Right in fuzzy mode)</li>
<li>Ellipsis (…) indicators for hidden columns, highlighted when matches exist there</li>
<li>Auto-scrolls horizontally when filter matches are only in hidden columns</li>
<li><code>--no-table</code> flag to disable and show records as single lines</li>
<li><code>--per-column</code> flag to match filter text against each column independently (prevents false positives from cross-column matches)</li>
<li><code>--display</code> accepts either a cell path or a closure to determine what to show for each record in the list (returns full record when selected)</li>
</ul>
<h4>Multi mode features</h4>
<ul>
<li>Footer always shows selection count: <code>[1-5 of 10, 3 selected]</code></li>
<li><strong>Ctrl+R to refine</strong>: Narrow list to selected items only, keeping them selected so you can deselect unwanted ones. Can be used multiple times.</li>
</ul>
<h4>Fuzzy mode features</h4>
<ul>
<li>Footer displays current settings: <code>[smart]</code>, <code>[CASE]</code>, <code>[nocase]</code>, or <code>[smart col]</code> for per-column mode</li>
<li><strong>Alt+C</strong>: Cycle case sensitivity (smart → CASE → nocase)</li>
<li><strong>Alt+P</strong>: Toggle per-column matching in table mode</li>
</ul>
<h4>Keyboard shortcuts</h4>
<ul>
<li>Vim-style navigation: <code>j</code>/<code>k</code> in single/multi modes</li>
<li><code>h</code>/<code>l</code> for horizontal scrolling in table mode</li>
<li>Readline-style editing in fuzzy mode (Ctrl+A/E, Ctrl+B/F, Ctrl+U/K, Ctrl+W, Alt+B/F, etc.)</li>
<li>Home/End, PageUp/PageDown for fast navigation</li>
<li><code>a</code> to toggle all (multi mode), Alt+A (fuzzy multi mode)</li>
<li>Alt+C to cycle case sensitivity (fuzzy modes)</li>
<li>Alt+P to toggle per-column matching (fuzzy table mode)</li>
</ul>
<h4>Configuration via <code>$env.config.input_list</code></h4>
<p>Styles (under <code>.style</code>):</p>
<ul>
<li><code>match_text</code>: Fuzzy match highlighting (inherits from <code>color_config.search_result</code>)</li>
<li><code>footer</code>: Footer text (default: dark_gray)</li>
<li><code>separator</code>: Separator line (inherits from <code>color_config.separator</code>)</li>
<li><code>prompt_marker</code>: Prompt marker in fuzzy mode (default: green)</li>
<li><code>selected_marker</code>: Selection marker (default: green)</li>
<li><code>table_header</code>: Column headers (inherits from <code>color_config.header</code>)</li>
<li><code>table_separator</code>: Column separators (inherits from <code>color_config.separator</code>)</li>
</ul>
<h4>Other options:</h4>
<ul>
<li><code>separator_char</code>: Separator line character (default: &quot;─&quot;)</li>
<li><code>prompt_marker_text</code>: Prompt marker text (default: &quot;&gt; &quot;)</li>
<li><code>selected_marker_char</code>: Selection marker character (default: &quot;&gt;&quot;)</li>
<li><code>table_column_separator</code>: Column separator character (inherits from <code>table.mode</code>)</li>
<li><code>case_sensitive</code>: &quot;smart&quot; (default), true, or false</li>
</ul>
<h4>New flags</h4>
<ul>
<li><code>--no-footer</code> / <code>-n</code>: Hide the footer</li>
<li><code>--no-separator</code>: Hide the separator line between search and results</li>
<li><code>--no-table</code> / <code>-t</code>: Disable table rendering</li>
<li><code>--per-column</code> / <code>-c</code>: Match filter against each column independently</li>
<li><code>--case-sensitive</code> / <code>-s</code>: Override case sensitivity (&quot;smart&quot;, true, false)</li>
</ul>
<h3><code>is-empty</code> and <code>is-not-empty</code> return expected values from empty pipelines  </h3>
<p>The <code>is-empty</code> command and <code>is-not-empty</code> command now return a boolean value when the pipeline is <code>Pipeline::Empty</code>.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">def</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> get_null</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> []</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> {}</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">get_null</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> is-empty</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">true</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">get_null</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> is-not-empty</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">false</span></span></code></pre>
</div><h3>Other breaking changes </h3>
<ul>
<li>Using <code>std repeat</code> with no pipeline input, or <code>nothing</code> type input, now generates a list of <code>null</code> items with the provided length. (<a href="https://github.com/nushell/nushell/pull/17332" target="_blank" rel="noopener noreferrer">#17332</a>)</li>
<li>nushell will use <code>pipefail</code> by default, so something like <code>^false | lines</code> returns an empty list, with a failure exit status code (<a href="https://github.com/nushell/nushell/pull/17449" target="_blank" rel="noopener noreferrer">#17449</a>)</li>
<li>Running <code>mktemp</code> without template will now create tmp files in tmpdir instead of current dir. (<a href="https://github.com/nushell/nushell/pull/17549" target="_blank" rel="noopener noreferrer">#17549</a>)</li>
<li>Removed <code>$env.config.input_list</code> config, instead sensible defaults are inherited from <code>color_config</code>. (<a href="https://github.com/nushell/nushell/pull/17550" target="_blank" rel="noopener noreferrer">#17550</a>)</li>
</ul>
<h2>Additions </h2>
<h3>Aliasing now works with parent commands  </h3>
<p>When applying an alias, to a parent commands, the sub commands will use the alias.</p>
<div class="language-ansi has-collapsed-lines collapsed" data-highlighter="shiki" data-ext="ansi" style="--vp-collapsed-lines:8;background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">alias</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> pl</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> =</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> polars</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">ps</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> pl into-df</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> pl select</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> [</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">(</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">pl col</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> name</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">)</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> (</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">pl col</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> pid</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">)</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> pl collect</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭─────┬─────────────────────┬───────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │        </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">name</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">         │  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">pid</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├─────┼─────────────────────┼───────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ nvcontainer.exe     │ 44560 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ svchost.exe         │ 26772 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ sihost.exe          │ 10176 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ svchost.exe         │ 23924 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ svchost.exe         │ 28120 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">5</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ taskhostw.exe       │ 32172 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">6</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ itype.exe           │ 43200 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">7</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ipoint.exe          │ 42440 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">8</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ Explorer.EXE        │ 46052 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">9</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ShellHost.exe       │ 41144 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">...</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ...                 │ ...   │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">138</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ WindowsTerminal.exe │ 32588 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">139</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ OpenConsole.exe     │ 44248 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">140</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ nu.exe              │ 34792 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">141</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ VCTIP.EXE           │ 48988 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">142</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ vivaldi.exe         │ 32476 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">143</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ vivaldi.exe         │ 18724 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">144</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ vivaldi.exe         │ 10148 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">145</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ cargo.exe           │ 36868 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">146</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ cargo.exe           │ 13460 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">147</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ nu.exe              │ 32912 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰─────┴─────────────────────┴───────╯</span></span></code></pre>
<div class="collapsed-lines"></div></div><h3>Introducing <code>polars entropy</code>  </h3>
<p>Introduces the command <code>polars entropy</code> used to compute the entropy as <code>-sum(pk * log(pk))</code> where <code>pk</code> are discrete probabilities.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">[[</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]; [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">] [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">] [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> polars into-df</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> polars select</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> (</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">polars col</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> a</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> polars entropy</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --base</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">)</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> polars collect</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬──────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">a</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼──────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1.46 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴──────╯</span></span></code></pre>
</div><h3>Content types for <code>to ndjson | jsonl | ndnuon</code> are now set properly  </h3>
<p>The <code>to ndjson</code>, <code>to jsonl</code>, and <code>to ndnuon</code> commands in <code>std/formats</code> now set appropriate <code>content_type</code> metadata:</p>
<p>| Command     | Content Type           |
|</p>
]]></content:encoded>
    </item>
    <item>
      <title>This week in Nushell #340</title>
      <link>https://www.nushell.sh/blog/2026-02-27-twin0340.html</link>
      <guid>https://www.nushell.sh/blog/2026-02-27-twin0340.html</guid>
      <source url="https://www.nushell.sh/rss.xml">This week in Nushell #340</source>
      <description>This Week in Nushell #340
Published Friday, 2026-02-27, including PRs merged Friday, 2026-02-20 through Thursday, 2026-02-26.
Nushell


@hustcer:

Increased help indention to fi...</description>
      <content:encoded><![CDATA[
<p>Published Friday, 2026-02-27, including PRs merged Friday, 2026-02-20 through Thursday, 2026-02-26.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@hustcer:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17659" target="_blank" rel="noopener noreferrer">Increased help indention to fix the docs build error (#17659)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17655" target="_blank" rel="noopener noreferrer">Updated <code>entry</code> to <code>repl_entry</code> for better understanding (#17655)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17654" target="_blank" rel="noopener noreferrer">Updated nushell to latest reedline commit 4ad0d0cb (#17654)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17653" target="_blank" rel="noopener noreferrer">Normalized slashes for <code>which</code> output (#17653)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17643" target="_blank" rel="noopener noreferrer">Allowed <code>which</code> to show where the file resides (#17643)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17639" target="_blank" rel="noopener noreferrer">Added more standardization to command arguments (#17639)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17635" target="_blank" rel="noopener noreferrer">Allowed <code>view source</code> to store file location in metadata (#17635)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17627" target="_blank" rel="noopener noreferrer">Fixed <code>detect columns</code> panic with unicode chars (#17627)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17610" target="_blank" rel="noopener noreferrer">Added custom subcommand help (#17610)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17596" target="_blank" rel="noopener noreferrer">Fixed <code>let</code> and ensured glob variables expand correctly in runtime and tests (#17596)</a></li>
</ul>
</li>
<li>
<p>@NotTheDr01ds:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17645" target="_blank" rel="noopener noreferrer">Fixed <code>history | last 10</code> being in descending order (#17645)</a></li>
</ul>
</li>
<li>
<p>@pickx:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17637" target="_blank" rel="noopener noreferrer">Fixed view span to allow zero-length spans and reject out-of-bounds spans (#17637)</a></li>
</ul>
</li>
<li>
<p>@Juhan280:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17626" target="_blank" rel="noopener noreferrer">Fixed compilation on targets other than linux, windows and macos (#17626)</a></li>
</ul>
</li>
<li>
<p>@fmotalleb:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17624" target="_blank" rel="noopener noreferrer">Fixed android builds (#17624)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17619" target="_blank" rel="noopener noreferrer">Fixed android builds failing with arboard clipboard (#17619)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17616" target="_blank" rel="noopener noreferrer">Added <code>clip</code> config (#17616)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17572" target="_blank" rel="noopener noreferrer">Added native clipboard support using arboard (#17572)</a></li>
</ul>
</li>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17617" target="_blank" rel="noopener noreferrer">Refactored par-each to reduce object churn by reusing closures (#17617)</a></li>
</ul>
</li>
<li>
<p>@amaanq:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17613" target="_blank" rel="noopener noreferrer">Fixed using <code>writeln!</code> instead of <code>format!</code> and <code>write_all</code> (#17613)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17606" target="_blank" rel="noopener noreferrer">Fixed replacing eprintln! with writeln! in error reporting to prevent double-panic (#17606)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17580" target="_blank" rel="noopener noreferrer">Fixed ls to escape control characters in filenames to prevent terminal corruption (#17580)</a></li>
</ul>
</li>
<li>
<p>@veeceey:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17607" target="_blank" rel="noopener noreferrer">Stripped ANSI escape codes from custom completion values (#17607)</a></li>
</ul>
</li>
<li>
<p>@teddygood:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17600" target="_blank" rel="noopener noreferrer">Fixed ParseOption handling in from ini (#17600)</a></li>
</ul>
</li>
<li>
<p>@blindFS:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17598" target="_blank" rel="noopener noreferrer">Added cellpath completion fallback to type based when value is unknown (#17598)</a></li>
</ul>
</li>
<li>
<p>@astral-l:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17595" target="_blank" rel="noopener noreferrer">Added <code>--timeout</code> flag to <code>input listen</code> (#17595)</a></li>
</ul>
</li>
<li>
<p>@132ikl:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17579" target="_blank" rel="noopener noreferrer">Made <code>collect</code> a keyword command and checked pipefail on <code>Instruction::Collect</code> (#17579)</a></li>
</ul>
</li>
<li>
<p>@monigarr:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17546" target="_blank" rel="noopener noreferrer">Added PR 10 (of 10) Issue 5066 help text nu command network system viewers (#17546)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17585" target="_blank" rel="noopener noreferrer">Bumped rmcp from 0.14.0 to 0.16.0 (#17585)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17584" target="_blank" rel="noopener noreferrer">Bumped quickcheck from 1.0.3 to 1.1.0 (#17584)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>@gbrls:
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1226" target="_blank" rel="noopener noreferrer">Improved zig build completion (#1226)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2125" target="_blank" rel="noopener noreferrer">Bumped rollup from 4.53.3 to 4.59.0 (#2125)</a></li>
</ul>
</li>
<li>
<p>@c-git:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2123" target="_blank" rel="noopener noreferrer">Fixed minor typos in string manipulation section (#2123)</a></li>
</ul>
</li>
</ul>
<h2>Awesome Nu</h2>
<ul>
<li>
<p>@SuaveIV:</p>
<ul>
<li><a href="https://github.com/nushell/awesome-nu/pull/157" target="_blank" rel="noopener noreferrer">Added gh_status.nu - GitHub service health checker (#157)</a></li>
<li><a href="https://github.com/nushell/awesome-nu/pull/156" target="_blank" rel="noopener noreferrer">Added nu_script_hnews and tightened wttr.in entry (#156)</a></li>
</ul>
</li>
<li>
<p>@galuszkak:</p>
<ul>
<li><a href="https://github.com/nushell/awesome-nu/pull/155" target="_blank" rel="noopener noreferrer">Added nu_plugin_bigquery to README.md &amp; config.yaml (#155)</a></li>
</ul>
</li>
<li>
<p>@fnuttens:</p>
<ul>
<li><a href="https://github.com/nushell/awesome-nu/pull/154" target="_blank" rel="noopener noreferrer">Added vouch script link to README (#154)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>@Juhan280:
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1025" target="_blank" rel="noopener noreferrer">Added dedicated events for buffer jumps while preserving selection via EditCommands (#1025)</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>This week in Nushell #339</title>
      <link>https://www.nushell.sh/blog/2026-02-20-twin0339.html</link>
      <guid>https://www.nushell.sh/blog/2026-02-20-twin0339.html</guid>
      <source url="https://www.nushell.sh/rss.xml">This week in Nushell #339</source>
      <description>This Week in Nushell #339
Published Friday, 2026-02-27, including PRs merged Friday, 2026-02-13 through Thursday, 2026-02-19.
Nushell


@Juhan280:

feat(table): made record rend...</description>
      <content:encoded><![CDATA[
<p>Published Friday, 2026-02-27, including PRs merged Friday, 2026-02-13 through Thursday, 2026-02-19.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@Juhan280:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17602" target="_blank" rel="noopener noreferrer">feat(table): made record render also respect path_columns metadata (#17602)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17564" target="_blank" rel="noopener noreferrer">feat(nu-command): added <code>--keep-last</code> flag for <code>uniq-by</code> command (#17564)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17562" target="_blank" rel="noopener noreferrer">refactor: deprecated datasource-ls in favor of path-columns (#17562)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17560" target="_blank" rel="noopener noreferrer">feat(commands): added path_columns metadata for <code>du</code> command (#17560)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17594" target="_blank" rel="noopener noreferrer">fixed <code>is-empty</code> / <code>is-not-empty</code> on <code>Empty</code> Pipelines (#17594)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17593" target="_blank" rel="noopener noreferrer">made <code>sys host</code> and <code>uname</code> const commands (#17593)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17578" target="_blank" rel="noopener noreferrer">updated nushell to latest reedline cefb611 (#17578)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17577" target="_blank" rel="noopener noreferrer">added user <code>id</code> to <code>sys users</code> (#17577)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17563" target="_blank" rel="noopener noreferrer">updated how <code>$NU_LIB_DIRS</code> / <code>$env.NU_LIB_DIRS</code> is handled at startup time (#17563)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17558" target="_blank" rel="noopener noreferrer">abstracted env var names so they're insensitive on windows and sensitive on other operating systems (#17558)</a></li>
</ul>
</li>
<li>
<p>@astral-l:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17589" target="_blank" rel="noopener noreferrer">used RFC 3339 formatting for displaying dates with year &gt; 9999 (#17589)</a></li>
</ul>
</li>
<li>
<p>@amaanq:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17581" target="_blank" rel="noopener noreferrer">fixed: used write_all instead of eprintln! to avoid double-panic on stderr teardown (#17581)</a></li>
</ul>
</li>
<li>
<p>@WindSoilder:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17571" target="_blank" rel="noopener noreferrer">pipefail: fixed freeze when assigning a large result of an external command to a variable (#17571)</a></li>
</ul>
</li>
<li>
<p>@hustcer:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17568" target="_blank" rel="noopener noreferrer">attempted to fix &quot;TLS required, but transport is unsecured&quot; error (#17568)</a></li>
</ul>
</li>
<li>
<p>@it-education-md:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17525" target="_blank" rel="noopener noreferrer">fixed pipeline <code>let</code> builtin var validation (#17525)</a></li>
</ul>
</li>
<li>
<p>@cablehead:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17507" target="_blank" rel="noopener noreferrer">allowed Ctrl+C to interrupt HTTP requests (#17507)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17587" target="_blank" rel="noopener noreferrer">built(deps): bumped uuid from 1.20.0 to 1.21.0 (#17587)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17582" target="_blank" rel="noopener noreferrer">built(deps): bumped crate-ci/typos from 1.43.4 to 1.43.5 (#17582)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>
<p>@kevmoo:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1225" target="_blank" rel="noopener noreferrer">stopped parsing Dart and Flutter command output at runtime (#1225)</a></li>
</ul>
</li>
<li>
<p>@gbrls:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1224" target="_blank" rel="noopener noreferrer">added zig and zvm completions (#1224)</a></li>
</ul>
</li>
<li>
<p>@LostExcalibur:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1223" target="_blank" rel="noopener noreferrer">added support for blocks that define more than one Host in ssh-completion (#1223)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@c-git:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2122" target="_blank" rel="noopener noreferrer">fixed typo in Nushell features section (#2122)</a></li>
</ul>
</li>
<li>
<p>@elviejo79:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2121" target="_blank" rel="noopener noreferrer">made the parser error explicit (#2121)</a></li>
</ul>
</li>
</ul>
<h2>Awesome Nu</h2>
<ul>
<li>@SuaveIV:
<ul>
<li><a href="https://github.com/nushell/awesome-nu/pull/153" target="_blank" rel="noopener noreferrer">added nu_script_wttr weather fetcher link (#153)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>@eitsupi:
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1023" target="_blank" rel="noopener noreferrer">fixed: used LF instead of CRLF in insert_newline on Windows (#1023)</a></li>
</ul>
</li>
</ul>
<h2>VSCode Extension</h2>
<ul>
<li>@PiotrTrzpil:
<ul>
<li><a href="https://github.com/nushell/vscode-nushell-lang/pull/228" target="_blank" rel="noopener noreferrer">fixed: corrected TextMate scopes for keywords vs identifiers (#228)</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>This week in Nushell #338</title>
      <link>https://www.nushell.sh/blog/2026-02-13-twin0338.html</link>
      <guid>https://www.nushell.sh/blog/2026-02-13-twin0338.html</guid>
      <source url="https://www.nushell.sh/rss.xml">This week in Nushell #338</source>
      <description>This Week in Nushell #338
Published Friday, 2026-02-27, including PRs merged Friday, 2026-02-06 through Thursday, 2026-02-12.
Nushell


@fdncred:

cleaned up ansi command pr.md ...</description>
      <content:encoded><![CDATA[
<p>Published Friday, 2026-02-27, including PRs merged Friday, 2026-02-06 through Thursday, 2026-02-12.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17555" target="_blank" rel="noopener noreferrer">cleaned up ansi command pr.md (#17555)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17533" target="_blank" rel="noopener noreferrer">added <code>nu</code> to the ignore_list for <code>:try</code> in <code>explore</code> (#17533)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17532" target="_blank" rel="noopener noreferrer">disabled auto tail and tracked previous row count in push_layer in explore (#17532)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17516" target="_blank" rel="noopener noreferrer">updated to latest reedline commit bdcc842 (#17516)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17514" target="_blank" rel="noopener noreferrer">updated structured ansi to support attr names and codes (#17514)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17511" target="_blank" rel="noopener noreferrer">updated nushell to reedline to 4c16687 (#17511)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17446" target="_blank" rel="noopener noreferrer">made <code>let</code> pass-thru in mid pipeline, output no values when assigned at beginning of the pipeline, output values at the end of the pipeline (#17446)</a></li>
</ul>
</li>
<li>
<p>@blindFS:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17553" target="_blank" rel="noopener noreferrer">fixed block duplication for aliased ones only in <code>replace_in_variable</code> (#17553)</a></li>
</ul>
</li>
<li>
<p>@WindSoilder:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17551" target="_blank" rel="noopener noreferrer">updated uu libs to 0.6.0 (#17551)</a></li>
</ul>
</li>
<li>
<p>@jlcrochet:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17550" target="_blank" rel="noopener noreferrer">removed <code>$env.config.input_list</code> from <code>input list</code> (#17550)</a></li>
</ul>
</li>
<li>
<p>@Juhan280:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17549" target="_blank" rel="noopener noreferrer">aligned --tmpdir behavior in <code>mktemp</code> with coreutils/uutils (#17549)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17540" target="_blank" rel="noopener noreferrer">added <code>path_columns</code> to PipelineMetadata for flexible path rendering (#17540)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17508" target="_blank" rel="noopener noreferrer">added linewise and non-blank start edit commands (#17508)</a></li>
</ul>
</li>
<li>
<p>@evolvomind:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17547" target="_blank" rel="noopener noreferrer">fixed variable expansion inconsistency in path arguments for commands using GlobPattern (#17547)</a></li>
</ul>
</li>
<li>
<p>@monigarr:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17545" target="_blank" rel="noopener noreferrer">improved strings command help text (PR 9 of 10) (#17545)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17544" target="_blank" rel="noopener noreferrer">improved math random help text (PR 8 of 10) (#17544)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17528" target="_blank" rel="noopener noreferrer">improved help text for filesystem, path, and platform commands (PR 7 of 10) (#17528)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17523" target="_blank" rel="noopener noreferrer">improved help text for bytes, conversions, database, and date commands (#17523)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17522" target="_blank" rel="noopener noreferrer">improved help text for format commands (PR 4 of 10) (#17522)</a></li>
</ul>
</li>
<li>
<p>@maxim-uvarov:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17539" target="_blank" rel="noopener noreferrer">avoided panic in replace_in_variable for permanent blocks (#17539)</a></li>
</ul>
</li>
<li>
<p>@cablehead:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17537" target="_blank" rel="noopener noreferrer">deprecated <code>metadata set --merge</code> in favor of closure form (#17537)</a></li>
</ul>
</li>
<li>
<p>@InnocentZero:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17526" target="_blank" rel="noopener noreferrer">added skip columns functionality (#17526)</a></li>
</ul>
</li>
<li>
<p>@cuiweixie:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17521" target="_blank" rel="noopener noreferrer">fixed median calculation to use sorted len (#17521)</a></li>
</ul>
</li>
<li>
<p>@weirdan:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17519" target="_blank" rel="noopener noreferrer">fixed poll/pool typo for <code>http pool</code> (#17519)</a></li>
</ul>
</li>
<li>
<p>@hustcer:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17517" target="_blank" rel="noopener noreferrer">upgraded interprocess to 2.3.1 (#17517)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17506" target="_blank" rel="noopener noreferrer">pinned libc and interprocess to fix cross-platform build failures (#17506)</a></li>
</ul>
</li>
<li>
<p>@BluewyDiamond:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17509" target="_blank" rel="noopener noreferrer">made <code>rm</code> behavior consistent with <code>mv</code>, <code>du</code>, and <code>cp</code> (#17509)</a></li>
</ul>
</li>
<li>
<p>@stuartcarnie:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17491" target="_blank" rel="noopener noreferrer">enabled OSC133 click events via reedline (#17491)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17541" target="_blank" rel="noopener noreferrer">bumped crate-ci/typos from 1.43.1 to 1.43.4 (#17541)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17495" target="_blank" rel="noopener noreferrer">bumped git2 from 0.20.0 to 0.20.4 (#17495)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>
<p>@Zaubentrucker:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1222" target="_blank" rel="noopener noreferrer">fixed conda activate for conda&gt;=25.11 (#1222)</a></li>
</ul>
</li>
<li>
<p>@kevmoo:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1221" target="_blank" rel="noopener noreferrer">added alias completion to git-completion (#1221)</a></li>
<li><a href="https://github.com/nushell/nu_scripts/pull/1219" target="_blank" rel="noopener noreferrer">added correct completion for <code>git checkout -b</code> and <code>git switch -c</code> (#1219)</a></li>
<li><a href="https://github.com/nushell/nu_scripts/pull/1218" target="_blank" rel="noopener noreferrer">updated dart-completion to support completing scripts with <code>dart</code> command (#1218)</a></li>
</ul>
</li>
<li>
<p>@fredrik-stock:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1220" target="_blank" rel="noopener noreferrer">improved fnm module with better error handling, user configuration, and missing version workflow (#1220)</a></li>
</ul>
</li>
<li>
<p>@Juhan280:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1217" target="_blank" rel="noopener noreferrer">allowed globs in bat-completions (#1217)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>@weirdan:
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2120" target="_blank" rel="noopener noreferrer">fixed <code>buffer_editor</code> example for <code>code</code> (#2120)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1024" target="_blank" rel="noopener noreferrer">reverted osc133;P to osc133;A (#1024)</a></li>
</ul>
</li>
<li>
<p>@Juhan280:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1022" target="_blank" rel="noopener noreferrer">added keybindings for moving to start and end of buffer (#1022)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/953" target="_blank" rel="noopener noreferrer">added gg/G motions and fixed ^ motion behavior in vi-mode (#953)</a></li>
</ul>
</li>
<li>
<p>@eitsupi:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1015" target="_blank" rel="noopener noreferrer">added idle_callback feature to set callback while waiting for input (#1015)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1011" target="_blank" rel="noopener noreferrer">exported HistoryItemExtraInfo etc. (#1011)</a></li>
</ul>
</li>
<li>
<p>@NiltonVolpato:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1014" target="_blank" rel="noopener noreferrer">added <code>libc</code> feature to enable crossterm's libc backend (#1014)</a></li>
</ul>
</li>
<li>
<p>@schlich:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/963" target="_blank" rel="noopener noreferrer">improved CONTRIBUTING.md to more closely match CI execution (#963)</a></li>
</ul>
</li>
</ul>
<h2>New nu-parser</h2>
<ul>
<li>
<p>@InnocentZero:</p>
<ul>
<li><a href="https://github.com/nushell/new-nu-parser/pull/66" target="_blank" rel="noopener noreferrer">added benchmark tests (#66)</a></li>
</ul>
</li>
<li>
<p>@WindSoilder:</p>
<ul>
<li><a href="https://github.com/nushell/new-nu-parser/pull/65" target="_blank" rel="noopener noreferrer">added support for <code>try</code> expression and <code>extern</code> statements (#65)</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>This week in Nushell #337</title>
      <link>https://www.nushell.sh/blog/2026-02-06-twin0337.html</link>
      <guid>https://www.nushell.sh/blog/2026-02-06-twin0337.html</guid>
      <source url="https://www.nushell.sh/rss.xml">This week in Nushell #337</source>
      <description>This Week in Nushell #337
Published Friday, 2026-02-27, including PRs merged Friday, 2026-01-30 through Thursday, 2026-02-05.
Nushell


@WindSoilder:

updated dependencies (#174...</description>
      <content:encoded><![CDATA[
<p>Published Friday, 2026-02-27, including PRs merged Friday, 2026-01-30 through Thursday, 2026-02-05.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@WindSoilder:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17497" target="_blank" rel="noopener noreferrer">updated dependencies (#17497)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17451" target="_blank" rel="noopener noreferrer">fixed try..finally to ensure finally block runs even if <code>exit</code> is used inside <code>try</code> (#17451)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17449" target="_blank" rel="noopener noreferrer">enabled pipefail by default (#17449)</a></li>
</ul>
</li>
<li>
<p>@monigarr:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17494" target="_blank" rel="noopener noreferrer">improved help text for nu command filters (5066 help text pr3) (#17494)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17490" target="_blank" rel="noopener noreferrer">improved help text in nu-cmd-extra (Issue 5066) (#17490)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17489" target="_blank" rel="noopener noreferrer">improved help text in nu-cmd-lang (core commands) (#17489)</a></li>
</ul>
</li>
<li>
<p>@moooooji:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17492" target="_blank" rel="noopener noreferrer">removed unreachable short-flag empty-group check (#17492)</a></li>
</ul>
</li>
<li>
<p>@fennewald:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17471" target="_blank" rel="noopener noreferrer">made Umask detection threadsafe (#17471)</a></li>
</ul>
</li>
<li>
<p>@hustcer:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17468" target="_blank" rel="noopener noreferrer">added OSC 133 P (k=) markers for semantic prompts (#17468)</a></li>
</ul>
</li>
<li>
<p>@smartcoder0777:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17462" target="_blank" rel="noopener noreferrer">fixed format filesize to respect .config.float_precision (#17462)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17460" target="_blank" rel="noopener noreferrer">mentioned 'retain' in select/reject help (#17460)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17400" target="_blank" rel="noopener noreferrer">prefilled input --reedline buffer from --default (#17400)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17459" target="_blank" rel="noopener noreferrer">updated formats mod.nu (#17459)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17456" target="_blank" rel="noopener noreferrer">fixed bugs and keybindings in <code>explore regex</code> (#17456)</a></li>
</ul>
</li>
<li>
<p>@maxim-uvarov:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17458" target="_blank" rel="noopener noreferrer">applied TLS certificate verification to connection pool (#17458)</a></li>
</ul>
</li>
<li>
<p>@Ady0333:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17362" target="_blank" rel="noopener noreferrer">allowed .ps1 files in command completion on Windows (#17362)</a></li>
</ul>
</li>
<li>
<p>@andrewgazelka:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17161" target="_blank" rel="noopener noreferrer">added HTTP streaming transport and cancellation support to mcp (#17161)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17483" target="_blank" rel="noopener noreferrer">bumped crate-ci/typos from 1.42.3 to 1.43.1 (#17483)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>@kevmoo:
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1215" target="_blank" rel="noopener noreferrer">fixed Dart and Flutter commands (#1215)</a></li>
<li><a href="https://github.com/nushell/nu_scripts/pull/1214" target="_blank" rel="noopener noreferrer">added contribution docs (#1214)</a></li>
<li><a href="https://github.com/nushell/nu_scripts/pull/1213" target="_blank" rel="noopener noreferrer">fixed git-completion (#1213)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@NotTheDr01ds:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2119" target="_blank" rel="noopener noreferrer">published TWiN 335 and 336 (#2119)</a></li>
</ul>
</li>
<li>
<p>@0x4D5352:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2118" target="_blank" rel="noopener noreferrer">added attributes documentation for custom commands (#2118)</a></li>
</ul>
</li>
</ul>
<h2>Awesome Nu</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/awesome-nu/pull/152" target="_blank" rel="noopener noreferrer">updated config.yaml (#152)</a></li>
</ul>
</li>
<li>
<p>@Chailotl:</p>
<ul>
<li><a href="https://github.com/nushell/awesome-nu/pull/151" target="_blank" rel="noopener noreferrer">added nu_plugin_input_global_listen to README.md (#151)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@stuartcarnie:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1021" target="_blank" rel="noopener noreferrer">extracted shared layout computation from painter (#1021)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1020" target="_blank" rel="noopener noreferrer">added OSC 133 click_events support (#1020)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1019" target="_blank" rel="noopener noreferrer">added native semantic prompt support for OSC 133/633 (#1019)</a></li>
</ul>
</li>
</ul>
<h2>nufmt</h2>
<ul>
<li>@fdncred:
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/84" target="_blank" rel="noopener noreferrer">updated dependencies (#84)</a></li>
<li><a href="https://github.com/nushell/nufmt/pull/83" target="_blank" rel="noopener noreferrer">fixed issue 82 (#83)</a></li>
<li><a href="https://github.com/nushell/nufmt/pull/80" target="_blank" rel="noopener noreferrer">preserved inline param comment formatting (#80)</a></li>
<li><a href="https://github.com/nushell/nufmt/pull/79" target="_blank" rel="noopener noreferrer">updated nufmt deps (#79)</a></li>
<li><a href="https://github.com/nushell/nufmt/pull/78" target="_blank" rel="noopener noreferrer">fixed double parens issue (#78)</a></li>
</ul>
</li>
</ul>
<h2>Integrations</h2>
<ul>
<li>@hustcer:
<ul>
<li><a href="https://github.com/nushell/integrations/pull/75" target="_blank" rel="noopener noreferrer">used try-catch to handle winget uninstall errors (#75)</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>This week in Nushell #336</title>
      <link>https://www.nushell.sh/blog/2026-01-30-twin0336.html</link>
      <guid>https://www.nushell.sh/blog/2026-01-30-twin0336.html</guid>
      <source url="https://www.nushell.sh/rss.xml">This week in Nushell #336</source>
      <description>This Week in Nushell #336
Published Wednesday, 2026-02-04, including PRs merged Friday, 2026-01-23 through Thursday, 2026-01-29.
Nushell


@fdncred:

fixed cargo semver-checks w...</description>
      <content:encoded><![CDATA[
<p>Published Wednesday, 2026-02-04, including PRs merged Friday, 2026-01-23 through Thursday, 2026-01-29.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17457" target="_blank" rel="noopener noreferrer">fixed <code>cargo semver-checks</code> with <code>history</code> (#17457)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17453" target="_blank" rel="noopener noreferrer">added more rules to agents.md (#17453)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17452" target="_blank" rel="noopener noreferrer">deserialized spans in <code>ast --json</code> command (#17452)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17430" target="_blank" rel="noopener noreferrer">updated to ratatui 0.30 (#17430)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17423" target="_blank" rel="noopener noreferrer">updated <code>view source</code> to show flags on custom commands (#17423)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17415" target="_blank" rel="noopener noreferrer">added special handling for sqlite dbs with <code>last</code>, <code>first</code>, <code>select</code>, <code>length</code> (#17415)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17405" target="_blank" rel="noopener noreferrer">refactored cli lexopt (#17405)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17443" target="_blank" rel="noopener noreferrer">bumped shadow-rs from 1.6.0 to 1.7.0 (#17443)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17442" target="_blank" rel="noopener noreferrer">bumped sysinfo from 0.37.2 to 0.38.0 (#17442)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17440" target="_blank" rel="noopener noreferrer">bumped uuid from 1.19.0 to 1.20.0 (#17440)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17439" target="_blank" rel="noopener noreferrer">bumped crate-ci/typos from 1.42.1 to 1.42.3 (#17439)</a></li>
</ul>
</li>
<li>
<p>@ChrisDenton:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17437" target="_blank" rel="noopener noreferrer">fixed old plugin file migration (#17437)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17412" target="_blank" rel="noopener noreferrer">replaced more <code>canonicalize</code> with <code>absolute</code> (#17412)</a></li>
</ul>
</li>
<li>
<p>@pyz4:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17436" target="_blank" rel="noopener noreferrer">added join on advanced column expressions to polars (#17436)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17435" target="_blank" rel="noopener noreferrer">added <code>nulls-equal</code> argument to <code>polars join</code> (#17435)</a></li>
</ul>
</li>
<li>
<p>@WindSoilder:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17426" target="_blank" rel="noopener noreferrer">updated assert_cmd to 2.1.1 (#17426)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17397" target="_blank" rel="noopener noreferrer">added support for <code>try {} finally {}</code> (#17397)</a></li>
</ul>
</li>
<li>
<p>@sgvictorino:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17417" target="_blank" rel="noopener noreferrer">updated eml-parser to 0.1.5 (#17417)</a></li>
</ul>
</li>
<li>
<p>@benblank:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17386" target="_blank" rel="noopener noreferrer">added a <code>umask</code> command (#17386)</a></li>
</ul>
</li>
<li>
<p>@astral-l:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17332" target="_blank" rel="noopener noreferrer">fixed std repeat returning empty list on null input (#17332)</a></li>
</ul>
</li>
<li>
<p>@ysthakur:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17330" target="_blank" rel="noopener noreferrer">allowed custom/external completers to override display value (#17330)</a></li>
</ul>
</li>
<li>
<p>@KaiSforza:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17323" target="_blank" rel="noopener noreferrer">added <code>Type::Any</code> to input type for error_make (#17323)</a></li>
</ul>
</li>
</ul>
<h2>Awesome Nu</h2>
<ul>
<li>@adevore:
<ul>
<li><a href="https://github.com/nushell/awesome-nu/pull/150" target="_blank" rel="noopener noreferrer">added nu_plugin_ldap (#150)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@flinesse:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2117" target="_blank" rel="noopener noreferrer">fixed and clarified explanation of semicolon behavior in pipelines (#2117)</a></li>
</ul>
</li>
<li>
<p>@Kissaki:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2116" target="_blank" rel="noopener noreferrer">improved code blocks with common format and output (#2116)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2115" target="_blank" rel="noopener noreferrer">removed duplicate windows ls change listing (#2115)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2114" target="_blank" rel="noopener noreferrer">fixed typo in <code>rm</code> behavior change description (#2114)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2113" target="_blank" rel="noopener noreferrer">fixed match and guard 'arms' typo (#2113)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2112" target="_blank" rel="noopener noreferrer">fixed <code>unlet</code> example code in 0.110.0 release notes (#2112)</a></li>
</ul>
</li>
<li>
<p>@james-smith-za:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2101" target="_blank" rel="noopener noreferrer">documented deprecation of $env.NU_LIB_DIRS (#2101)</a></li>
</ul>
</li>
<li>
<p>@Noah765:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2099" target="_blank" rel="noopener noreferrer">updated carapace example to use $env.CARAPACE_LENIENT (#2099)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>
<p>@Kissaki:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1211" target="_blank" rel="noopener noreferrer">documented WolframAlpha API wrapper AppId requirement (#1211)</a></li>
<li><a href="https://github.com/nushell/nu_scripts/pull/1210" target="_blank" rel="noopener noreferrer">added winget pin custom completions (#1210)</a></li>
</ul>
</li>
<li>
<p>@kevmoo:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1209" target="_blank" rel="noopener noreferrer">added completion for <code>branch -D</code> to git (#1209)</a></li>
</ul>
</li>
<li>
<p>@PeterhrCZ:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1207" target="_blank" rel="noopener noreferrer">fixed from-env format to work with nushell version &gt; 109.1 (#1206) (#1207)</a></li>
</ul>
</li>
</ul>
<h2>Tree-sitter</h2>
<ul>
<li>@blindFS:
<ul>
<li><a href="https://github.com/nushell/tree-sitter-nu/pull/241" target="_blank" rel="noopener noreferrer">added new let syntax (#241)</a></li>
</ul>
</li>
</ul>
<h2>VSCode Extension</h2>
<ul>
<li>@Paul-16098:
<ul>
<li><a href="https://github.com/nushell/vscode-nushell-lang/pull/227" target="_blank" rel="noopener noreferrer">added <code>&lt;&gt;</code> to <code>autoClosingPairs</code> (#227)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>@ysthakur:
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1002" target="_blank" rel="noopener noreferrer">allowed overriding suggestion display value (#1002)</a></li>
</ul>
</li>
</ul>
<h2>NUPM</h2>
<ul>
<li>@TianyangGuo:
<ul>
<li><a href="https://github.com/nushell/nupm/pull/127" target="_blank" rel="noopener noreferrer">replaced deprecated $nu.temp-path with $nu.temp-dir (#127)</a></li>
</ul>
</li>
</ul>
<div class="language-" data-highlighter="shiki" data-ext style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-"><span class="line"><span></span></span></code></pre>
</div>]]></content:encoded>
    </item>
    <item>
      <title>This week in Nushell #335</title>
      <link>https://www.nushell.sh/blog/2026-01-23-twin0335.html</link>
      <guid>https://www.nushell.sh/blog/2026-01-23-twin0335.html</guid>
      <source url="https://www.nushell.sh/rss.xml">This week in Nushell #335</source>
      <description>This Week in Nushell #335
Published Wednesday, 2026-02-04, including PRs merged Friday, 2026-01-16 through Thursday, 2026-01-22.
Nushell


@cablehead:

added content-type metada...</description>
      <content:encoded><![CDATA[
<p>Published Wednesday, 2026-02-04, including PRs merged Friday, 2026-01-16 through Thursday, 2026-01-22.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@cablehead:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17398" target="_blank" rel="noopener noreferrer">added content-type metadata for ndjson, jsonl, ndnuon in std/formats (#17398)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17396" target="_blank" rel="noopener noreferrer">added short params to join (#17396)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17395" target="_blank" rel="noopener noreferrer">bumped Rust toolchain to 1.91.1 (#17395)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17384" target="_blank" rel="noopener noreferrer">added <code>explore regex</code> help popup (#17384)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17383" target="_blank" rel="noopener noreferrer">removed unlet vars from completions (#17383)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17382" target="_blank" rel="noopener noreferrer">updated <code>explore regex</code> to use <code>AltGr</code> keys (#17382)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17368" target="_blank" rel="noopener noreferrer">updated UseAnsiColoring with TERM=dumb (#17368)</a></li>
</ul>
</li>
<li>
<p>@smartcoder0777:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17393" target="_blank" rel="noopener noreferrer">added --prefix/--suffix to join to disambiguate columns (#17393)</a></li>
</ul>
</li>
<li>
<p>@ayax79:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17392" target="_blank" rel="noopener noreferrer">bumped rmcp lib from 0.8 to 0.13 (#17392)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17377" target="_blank" rel="noopener noreferrer">added <code>polars entropy</code> (#17377)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17365" target="_blank" rel="noopener noreferrer">fixed help to display aliased command when calling <code>help &lt;alias&gt;</code> (#17365)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17359" target="_blank" rel="noopener noreferrer">allowed aliasing to work on sub commands (#17359)</a></li>
</ul>
</li>
<li>
<p>@kaathewisegit:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17381" target="_blank" rel="noopener noreferrer">made <code>it</code> a reserved variable name (#17381)</a></li>
</ul>
</li>
<li>
<p>@ysthakur:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17370" target="_blank" rel="noopener noreferrer">bumped to dev version 0.110.1 (#17370)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17367" target="_blank" rel="noopener noreferrer">bumped to 0.110.0 for release (#17367)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17366" target="_blank" rel="noopener noreferrer">pinned reedline to 0.45 for 0.110 release (#17366)</a></li>
</ul>
</li>
<li>
<p>@ChrisDenton:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17369" target="_blank" rel="noopener noreferrer">stopped canonicalizing config path (#17369)</a></li>
</ul>
</li>
<li>
<p>@hovancik:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17178" target="_blank" rel="noopener noreferrer">updated closures-related tutors (#17178)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/17391" target="_blank" rel="noopener noreferrer">bumped lsp-textdocument from 0.4.2 to 0.5.0 (#17391)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17390" target="_blank" rel="noopener noreferrer">bumped shadow-rs from 1.5.0 to 1.6.0 (#17390)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17388" target="_blank" rel="noopener noreferrer">bumped crate-ci/typos from 1.42.0 to 1.42.1 (#17388)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17347" target="_blank" rel="noopener noreferrer">bumped quick-xml from 0.38.3 to 0.39.0 (#17347)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/17344" target="_blank" rel="noopener noreferrer">bumped data-encoding from 2.9.0 to 2.10.0 (#17344)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@sandyspiers:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2110" target="_blank" rel="noopener noreferrer">renamed <code>home-path</code> / <code>temp-path</code> to <code>home-dir</code> / <code>temp-dir</code> (#2110)</a></li>
</ul>
</li>
<li>
<p>@weirdan:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2109" target="_blank" rel="noopener noreferrer">added <code>error_style = nested</code> docs (#2109)</a></li>
</ul>
</li>
<li>
<p>@ysthakur:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2108" target="_blank" rel="noopener noreferrer">published release notes for v0.110.0 (#2108)</a></li>
</ul>
</li>
<li>
<p>@hustcer:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2107" target="_blank" rel="noopener noreferrer">refreshed command docs for 0.110.0 (#2107)</a></li>
</ul>
</li>
<li>
<p>@NotTheDr01ds:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2106" target="_blank" rel="noopener noreferrer">published TWiN 333 and 334 (#2106)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>@ysthakur:
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1012" target="_blank" rel="noopener noreferrer">bumped version for 0.45.0 release (#1012)</a></li>
</ul>
</li>
</ul>
<h2>New nu-parser</h2>
<ul>
<li>@WindSoilder:
<ul>
<li><a href="https://github.com/nushell/new-nu-parser/pull/63" target="_blank" rel="noopener noreferrer">added support for --env and --wrapped in def (#63)</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>Nushell 0.110.0</title>
      <link>https://www.nushell.sh/blog/2026-01-17-nushell_v0_110_0.html</link>
      <guid>https://www.nushell.sh/blog/2026-01-17-nushell_v0_110_0.html</guid>
      <source url="https://www.nushell.sh/rss.xml">Nushell 0.110.0</source>
      <description>Nushell 0.110.0
Today, we&amp;apos;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 expl...</description>
      <content:encoded><![CDATA[
<p>Today, we're releasing version 0.110.0 of Nu. This release adds a <code>let</code> pipeline command, an <code>unlet</code> command, improvements to the Polars plugin, improvements to <code>explore</code>, and faster <code>ls</code> on Windows.</p>
<h1>Where to get it</h1>
<p>Nu 0.110.0 is available as <a href="https://github.com/nushell/nushell/releases/tag/0.110.0" target="_blank" rel="noopener noreferrer">pre-built binaries</a> or from <a href="https://crates.io/crates/nu" target="_blank" rel="noopener noreferrer">crates.io</a>. If you have Rust installed you can install it using <code>cargo install nu</code>.</p>
<p>As part of this release, we also publish a set of optional <a href="https://www.nushell.sh/book/plugins.html" target="_blank" rel="noopener noreferrer">plugins</a> you can install and use with Nushell.</p>

<ul>
<li><a href="#highlights-and-themes-of-this-release-toc"><em>Highlights and themes of this release</em></a>
<ul>
<li><a href="#let-can-be-used-in-pipelines-toc"><em><code>let</code> can be used in pipelines</em></a></li>
<li><a href="#destroying-variables-with-unlet-toc"><em>Destroying variables with <code>unlet</code></em></a></li>
<li><a href="#polars-plugin-supports-selectors-toc"><em>Polars plugin supports selectors</em></a></li>
<li><a href="#polars-plugin-supports-more-cloud-providers-toc"><em>Polars plugin supports more cloud providers</em></a>
<ul>
<li><a href="#azure-support-toc"><em>Azure support</em></a></li>
<li><a href="#google-cloud-support-toc"><em>Google Cloud support</em></a></li>
</ul>
</li>
<li><a href="#explore-regex-toc"><em><code>explore regex</code></em></a></li>
<li><a href="#new-explore-config-tui-toc"><em>New <code>explore config</code> TUI</em></a></li>
<li><a href="#faster-ls-on-windows-toc"><em>Faster <code>ls</code> on Windows</em></a></li>
<li><a href="#improvements-to-error-make-toc"><em>Improvements to <code>error make</code></em></a></li>
</ul>
</li>
<li><a href="#changes-toc"><em>Changes</em></a>
<ul>
<li><a href="#breaking-changes-toc"><em>Breaking changes</em></a>
<ul>
<li><a href="#renamed-nu-temp-path-and-nu-home-path-toc"><em>Renamed <code>$nu.temp-path</code> and <code>$nu.home-path</code></em></a></li>
<li><a href="#no-longer-matches-dotfiles-in-mv-cp-du-by-default-toc"><em><code>*</code> no longer matches dotfiles in mv/cp/du by default</em></a></li>
<li><a href="#use-labels-for-multiple-labels-in-error-make-toc"><em>Use <code>labels</code> for multiple labels in <code>error make</code></em></a></li>
<li><a href="#ide-menu-min-description-width-should-be-non-zero-toc"><em>IDE menu <code>min_description_width</code> should be non-zero</em></a></li>
<li><a href="#to-md-formats-lists-as-unordered-markdown-lists-toc"><em><code>to md</code> formats lists as unordered Markdown lists</em></a></li>
</ul>
</li>
<li><a href="#additions-toc"><em>Additions</em></a>
<ul>
<li><a href="#new-configuration-option-env-config-show-hints-toc"><em>New Configuration Option: <code>$env.config.show_hints</code></em></a></li>
<li><a href="#configuring-errors-toc"><em>Configuring errors</em></a></li>
<li><a href="#added-record-conversion-to-into-list-toc"><em>Added record conversion to <code>into list</code></em></a></li>
<li><a href="#include-mcp-server-support-by-default-toc"><em>Include MCP server support by default</em></a></li>
<li><a href="#connection-pool-for-http-commands-toc"><em>Connection pool for <code>http</code> commands</em></a></li>
<li><a href="#new-output-flag-for-timeit-toc"><em>New <code>--output</code> flag for <code>timeit</code></em></a></li>
<li><a href="#allow-disabling-filtering-in-custom-completions-toc"><em>Allow disabling filtering in custom completions</em></a></li>
<li><a href="#new-plugin-interface-get-block-ir-toc"><em>New plugin interface <code>get_block_ir</code></em></a></li>
<li><a href="#new-list-flag-to-control-list-formatting-in-to-md-toc"><em>New <code>--list</code> flag to control list formatting in <code>to md</code></em></a></li>
<li><a href="#add-icons-option-to-table-for-ls-tables-toc"><em>Add <code>--icons</code> option to table for <code>ls</code> tables</em></a></li>
<li><a href="#alias-definitions-shown-in-which-command-toc"><em>Alias definitions shown in <code>which</code> command</em></a></li>
<li><a href="#allow-serializing-as-raw-strings-in-to-nuon-toc"><em>Allow serializing as raw strings in <code>to nuon</code></em></a></li>
<li><a href="#other-additions-toc"><em>Other additions</em></a></li>
</ul>
</li>
<li><a href="#removals-toc"><em>Removals</em></a>
<ul>
<li><a href="#replace-deprecated-current-dir-usage-with-enginestate-cwd-in-multiple-files-toc"><em>Replace deprecated current_dir usage with EngineState::cwd in multiple files</em></a></li>
</ul>
</li>
<li><a href="#other-changes-toc"><em>Other changes</em></a>
<ul>
<li><a href="#update-explore-regex-command-to-look-more-helpful-and-professional-toc"><em>Update explore regex command to look more helpful and professional</em></a></li>
<li><a href="#more-descriptive-error-messages-for-rm-toc"><em>More descriptive error messages for <code>rm</code></em></a></li>
<li><a href="#some-nushell-commands-no-longer-canonicalize-paths-toc"><em>Some Nushell commands no longer canonicalize paths</em></a></li>
<li><a href="#add-repl-style-state-persistence-across-evaluations-for-mcp-server-toc"><em>Add REPL-style state persistence across evaluations for MCP server</em></a></li>
<li><a href="#use-structured-response-format-for-mcp-server-toc"><em>Use structured response format for MCP server</em></a></li>
<li><a href="#additional-changes-toc"><em>Additional changes</em></a></li>
</ul>
</li>
<li><a href="#bug-fixes-toc"><em>Bug fixes</em></a>
<ul>
<li><a href="#fixed-parsing-of-ranges-with-parentheses-toc"><em>Fixed parsing of ranges with parentheses</em></a></li>
<li><a href="#fixed-parsing-issue-with-multiarm-match-guard-toc"><em>Fixed parsing issue with multiarm match + guard</em></a></li>
<li><a href="#infinite-sequences-can-be-terminated-when-piped-to-other-commands-toc"><em>Infinite sequences can be terminated when piped to other commands</em></a></li>
<li><a href="#pipefail-works-with-try-block-toc"><em>Pipefail works with <code>try</code> block</em></a></li>
<li><a href="#nushell-exits-early-when-running-scripts-or-commands-with-bad-config-files-toc"><em>Nushell exits early when running scripts or commands with bad config files</em></a></li>
<li><a href="#fix-http-dns-resolution-service-not-supported-error-in-docker-containers-toc"><em>Fix <code>http</code> DNS resolution &quot;Service not supported&quot; error in Docker containers</em></a></li>
<li><a href="#fix-variables-remaining-active-after-overlay-hide-toc"><em>Fix variables remaining active after <code>overlay hide</code></em></a></li>
<li><a href="#other-fixes-toc"><em>Other fixes</em></a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#notes-for-plugin-developers-toc"><em>Notes for plugin developers</em></a></li>
<li><a href="#hall-of-fame-toc"><em>Hall of fame</em></a></li>
<li><a href="#full-changelog-toc"><em>Full changelog</em></a></li>
</ul>
<h1>Highlights and themes of this release [<a href="#table-of-contents">toc</a>]</h1>
<h2><code>let</code> can be used in pipelines [<a href="#table-of-contents">toc</a>]</h2>
<p>With <a href="https://github.com/nushell/nushell/pull/17247" target="_blank" rel="noopener noreferrer">#17247</a>, the <code>let</code> command is now allowed to be at the end of the pipeline when a variable name is also provided.</p>
<div class="language-nu" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">ls</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> get</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> name</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> let</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> files</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># Equivalent to the following:</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">let</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> files</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> ls</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> get</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> name</span></span></code></pre>
</div><h2>Destroying variables with <code>unlet</code> [<a href="#table-of-contents">toc</a>]</h2>
<p>To bring balance to the universe, <a href="https://github.com/nushell/nushell/pull/17270" target="_blank" rel="noopener noreferrer">#17270</a> introduces a new command <code>unlet</code> for deleting variables from memory.</p>
<div class="language-nu line-numbers-mode" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">let</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> a</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">;</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">let</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> b</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 2</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">;</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">let</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> c</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 3</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">;</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">let</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> d</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 4</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">$"(</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$a</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">)(</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$b</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">)(</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$c</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">)(</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$d</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">)"</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># => 1234</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">unlet</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $a</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $b</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $c</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $d</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">$"(</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$a</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">)(</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$b</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">)(</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$c</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">)(</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$d</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">)"</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># => Error: nu::shell::variable_not_found</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># => </span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># =>   × Variable not found</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># =>    ╭─[entry #21:1:4]</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># =>  1 │ $"($a)($b)($c)($d)"</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># =>    ·    ─┬</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># =>    ·     ╰── variable not found</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># =>    ╰────</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>Accompanying this is a new <code>mem_size</code> column in the output of the <code>scope variables</code> command for showing the size of each variable in memory (implemented in <a href="https://github.com/nushell/nushell/pull/17287" target="_blank" rel="noopener noreferrer">#17287</a>).</p>
<h2>Polars plugin supports selectors [<a href="#table-of-contents">toc</a>]</h2>
<p><a href="https://github.com/nushell/nushell/pull/17296" target="_blank" rel="noopener noreferrer">#17296</a> introduces <a href="https://docs.pola.rs/api/python/stable/reference/selectors.html" target="_blank" rel="noopener noreferrer">Polars selector</a> support. This introduces the NuSelector type and adds following new commands.</p>
<ul>
<li><code>polars selector all</code> (plugin) - Creates a selector that selects all columns.</li>
<li><code>polars selector by-dtype</code> (plugin) - Creates a selector that selects columns by data type.</li>
<li><code>polars selector by-name</code> (plugin) - Creates a selector that selects columns by name.</li>
<li><code>polars selector first</code> (plugin) - Creates a selector that selects the first column(s) by index.</li>
<li><code>polars selector last</code> (plugin) - Creates a selector that selects the last column(s) by index.</li>
</ul>
<p>Selectors may be used with <code>polars select</code> and <code>polars with-column</code>.</p>
<h2>Polars plugin supports more cloud providers [<a href="#table-of-contents">toc</a>]</h2>
<h3>Azure support [<a href="#table-of-contents">toc</a>]</h3>
<p><a href="https://github.com/nushell/nushell/pull/17116" target="_blank" rel="noopener noreferrer">#17116</a> brings Azure blob storage support to the Polars plugin. The following environment variables are now supported:</p>
<ul>
<li><code>AZURE_STORAGE_ACCOUNT_NAME</code>: storage account name</li>
<li><code>AZURE_STORAGE_ACCOUNT_KEY</code>: storage account master key</li>
<li><code>AZURE_STORAGE_ACCESS_KEY</code>: alias for <code>AZURE_STORAGE_ACCOUNT_KEY</code></li>
<li><code>AZURE_STORAGE_CLIENT_ID</code>: client id for service principal authorization</li>
<li><code>AZURE_STORAGE_CLIENT_SECRET</code>: client secret for service principal authorization</li>
<li><code>AZURE_STORAGE_TENANT_ID</code>: tenant id used in oauth flows</li>
</ul>
<p>Example Usage:</p>
<div class="language-nu" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.AZURE_STORAGE_ACCOUNT_KEY</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "&#x3C;your access key value>"</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.AZURE_STORAGE_ACCOUNT_NAME</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "&#x3C;your account name>"</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">ps</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> polars into-df</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> polars save</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> azure://&#x3C;your</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> account</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> name>/ps.parquet</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">polars open</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> azure://&#x3C;your</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> account</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> name>/ps.parquet</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> polars first</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 5</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> polars collect</span></span></code></pre>
</div><h3>Google Cloud support [<a href="#table-of-contents">toc</a>]</h3>
<p><a href="https://github.com/nushell/nushell/pull/17135" target="_blank" rel="noopener noreferrer">#17135</a> brings Google Cloud Storage support to the Polars plugin.</p>
<div class="language-nu" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.GOOGLE_SERVICE_ACCOUNT</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "/path/to/service_account.json"</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.GOOGLE_BUCKET</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "your_bucket"</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">ps</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> polars into-df</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> polars save</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> gs://nushell_testing/ps.parquet</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">polars open</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> gs://nushell_testing/ps.parquet</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> polars first</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 5</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> polars collect</span></span></code></pre>
</div><h2><code>explore regex</code> [<a href="#table-of-contents">toc</a>]</h2>
<p><a href="https://github.com/nushell/nushell/pull/17187" target="_blank" rel="noopener noreferrer">#17187</a> adds a quick reference panel to <code>explore regex</code> so you won't have to remember every character class or anchor. Use F1 to trigger it and ESC to dismiss.</p>
<p><img src="https://github.com/user-attachments/assets/502a6566-715f-4ce0-b787-6012fc5b9942" alt="quick reference panel screenshot"></p>
<h2>New <code>explore config</code> TUI [<a href="#table-of-contents">toc</a>]</h2>
<p><a href="https://github.com/nushell/nushell/pull/17147" target="_blank" rel="noopener noreferrer">#17147</a> introduces the <code>explore config</code> command, which launches a TUI allowing you to view and interactively modify your config.</p>
<p>Functionality:</p>
<ul>
<li>When launched with no parameters, it loads your config settings into a tree and editor to allow you to traverse, explore, and change settings.</li>
<li>When launched with the <code>--tree</code> parameter, it draws a tree view of your piped in input into the terminal</li>
<li>When launched with the <code>--use-example-data</code> parameter, it shows you a customized configuration (my config actually). May be removed later.</li>
<li>When JSON is piped into it e.g <code>'{&quot;abc&quot;: 1, &quot;xyz&quot;: 2}' | explore config --output foo.json</code> it allows you to explore and edit the JSON data and save it out to the provided filename.</li>
<li>When in &quot;config mode&quot; it shows you the nushell datatypes as you traverse the tree. When in &quot;json&quot; mode it shows you the json datatypes as you traverse the tree.</li>
<li>When in &quot;config mode&quot; it shows you a description of the config setting <em>assuming proper documentation in doc_config.nu</em>. 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.</li>
<li>As you make changes to your config, you can save those changes and they're immediately applied.</li>
<li>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.</li>
</ul>
<p>Below is a GIF showing off the TUI:</p>
<p><img src="https://github.com/user-attachments/assets/10f4407e-28a0-4aac-8baa-88f7b95229e2" alt="explore-config2"></p>
<p>Help</p>
<div class="language-nushell line-numbers-mode" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">❯</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> explore</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> config</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">help</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">Launch</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> a</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> TUI</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> to</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> view</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> and</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> edit</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> the</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> nushell</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> configuration</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> interactively.</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">By</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> default</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">opens</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> the</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> current</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> nushell</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> configuration</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.config</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">in</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> the</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> TUI.</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">Changes</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> made</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> in</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> config</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> mode</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> are</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> applied</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> to</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> the</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> running</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> session</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> when</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> you</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> quit.</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">You</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> can</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> also</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> pipe</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> JSON</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> data</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> to</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> explore</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> arbitrary</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> data</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> structures</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">or</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> use</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">--use-example-data</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> to</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> see</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> sample</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> configuration</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> data.</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">TUI</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> Keybindings:</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">  Tab</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">           Switch</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> between</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> tree</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> and</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> editor</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> panes</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  ↑↓</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">            Navigate</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> tree</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> /</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> scroll</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> editor</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  ←→</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">            Collapse</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">/Expand</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> tree</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> nodes</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">  Enter</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">/Space</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   Toggle</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> tree</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> node</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> expansion</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">  Enter</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">/Space</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   On</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> leaf</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> nodes</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">open</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> editor</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> pane</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">  Enter</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">/e</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">       Start</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> editing</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">in</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> editor</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> pane</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">)</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">  Ctrl</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">+Enter</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">    Apply</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> edit</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">  Esc</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">           Cancel</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> edit</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">  Ctrl</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">+S</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">        Save/Apply</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> changes</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">  q</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">             Quit</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">applies</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> config</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> changes</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> if</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> modified</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">)</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">  Ctrl</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">+C</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">        Force</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> quit</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> without</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> saving</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">Usage</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">:</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">  ></span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> explore</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> config</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">flags</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">Flags</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">:</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  -h</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">--help:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> Display</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> the</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> help</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> message</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> for</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> this</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> command</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  -e</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">--use-example-data:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> Show</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> the</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> nushell</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> configuration</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> TUI</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> using</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> example</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> data</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  -t</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">--tree:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> Do</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> not</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> show</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> the</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> TUI</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">just</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> show</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> a</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> tree</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> structure</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> of</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> the</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> data</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  -o</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">--output</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> &#x3C;string>:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> Optional</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> output</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> file</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> to</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> save</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> changes</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> to</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">default</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> output.json</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">)</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">Input</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">/output</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> types:</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  ╭─#─┬──input──┬─output─╮</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  │</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 0</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> nothing</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> string</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  │</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> string</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  │</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> string</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  ╰───┴─────────┴────────╯</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">Examples</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">:</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">  Open</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> the</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> nushell</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> configuration</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> in</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> an</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> interactive</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> TUI</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> editor</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">  ></span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> explore</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> config</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">  Explore</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> JSON</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> data</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> interactively</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">  ></span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> open</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">raw</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> data.json</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> explore</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> config</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">  Explore</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> with</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> example</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> data</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> to</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> see</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> TUI</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> features</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">  ></span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> explore</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> config</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">use-example-data</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2>Faster <code>ls</code> on Windows [<a href="#table-of-contents">toc</a>]</h2>
<p><a href="https://github.com/nushell/nushell/pull/17339" target="_blank" rel="noopener noreferrer">#17339</a> makes <code>ls</code> much faster on Windows by caching and not calling <code>metadata()</code> so frequently.</p>
<p>Before:</p>
<div class="language-nu" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">❯</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> use</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> std/bench</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> *</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">❯</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> bench</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> { </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">ls</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> c:\windows\system32</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> length</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> } { </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">ls</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> c:\windows\system32</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> } </span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic">--</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">rounds</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 10</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">╭─#─┬────────────────code─────────────────┬──────────mean──────────┬──────────min───────────┬──────────max───────────┬───────std────────┬─ratio─╮</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">│</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 0</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> { </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">ls</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> c:\windows\system32</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> length</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> } </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">│</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">  1sec</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 536ms</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 50µs</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 650ns</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1sec</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 502ms</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 450µs</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 200ns</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1sec</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 605ms</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 537µs</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 100ns</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 29ms</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 468µs</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 800ns</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">  1.01</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">│</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> { </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">ls</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> c:\windows\system32</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }          </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">│</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1sec</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 527ms</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 102µs</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 580ns</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1sec</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 508ms</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 441µs</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 300ns</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1sec</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 556ms</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 144µs</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 800ns</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 17ms</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 852µs</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 739ns</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">  1.00</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">╰─#─┴────────────────code─────────────────┴──────────mean──────────┴──────────min───────────┴──────────max───────────┴───────std────────┴─ratio─╯</span></span></code></pre>
</div><p>After:</p>
<div class="language-nu" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">❯</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> use</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> std/bench</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> *</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">❯</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> bench</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> { </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">ls</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> c:\windows\system32</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> length</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> } { </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">ls</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> c:\windows\system32</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> } </span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic">--</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">rounds</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 10</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">╭─#─┬────────────────code─────────────────┬───────mean────────┬────────min────────┬────────max────────┬───────std───────┬─ratio─╮</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">│</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 0</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> { </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">ls</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> c:\windows\system32</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> length</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> } </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">│</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 171ms</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 623µs</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 760ns</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 167ms</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 632µs</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 400ns</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 182ms</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 443µs</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 100ns</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">  4ms</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 263µs</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 43ns</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">  1.01</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">│</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> { </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">ls</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> c:\windows\system32</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }          </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">│</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 170ms</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 398µs</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 400ns</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 167ms</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 103µs</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 200ns</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 174ms</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 190µs</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 500ns</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 2ms</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 260µs</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 683ns</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">  1.00</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">╰─#─┴────────────────code─────────────────┴───────mean────────┴────────min────────┴────────max────────┴───────std───────┴─ratio─╯</span></span></code></pre>
</div><h2>Improvements to <code>error make</code> [<a href="#table-of-contents">toc</a>]</h2>
<p><a href="https://github.com/nushell/nushell/pull/17070" target="_blank" rel="noopener noreferrer">#17070</a> introduced several improvements to <code>error make</code>.</p>
<h4>Creating errors more easily</h4>
<p><code>error make</code> can now be called without arguments:</p>
<div class="language-nu" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">></span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> error make</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">Error</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> nu::shell::error</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  ×</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> originates</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> from</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> here</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   ╭─</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">[</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">entry</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"> #4:1:1]</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> error</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> make</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   ·</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> ──────────</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   ╰────</span></span></code></pre>
</div><p>It can also be passed a single message in any of the following ways:</p>
<ul>
<li>Pipeline input: <code>{msg: foo} | error make</code></li>
<li>Record argument: <code>error make {msg: foo}</code></li>
<li>String argument: <code>error make foo</code></li>
</ul>
<div class="language-nu" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">Error</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> nu::shell::error</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  ×</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> foo</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   ╭─</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">[</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">entry</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"> #2:1:12]</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> error</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> make</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">msg</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> foo</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   ·</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">            ──────────</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   ╰────</span></span></code></pre>
</div><h4>Chaining errors together</h4>
<p><code>error make</code> already lets you created chained errors using <code>inner</code>, like so:</p>
<div class="language-nu" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">error make</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">msg</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> bar</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> inner:</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [{</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">msg</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> foo</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}]}</span></span></code></pre>
</div><p>Now, you can achieve the same effect by:</p>
<ul>
<li>Passing a message as pipeline input: <code>{msg: foo} | error make bar</code></li>
<li>Creating an error in a <code>catch</code> block: <code>try {error make foo} catch {error make bar}</code></li>
</ul>
<p>Here's how that second one looks:</p>
<div class="language-nu line-numbers-mode" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">Error</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> nu::shell::error</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  ×</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> bar</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   ╭─</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">[</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">entry</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"> #1:1:29]</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> try</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">error make</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> foo</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">} </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">catch</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">error make</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> bar</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   ·</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">                             ──────────</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   ╰────</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">Error:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> nu::shell::error</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  ×</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> foo</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   ╭─</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">[</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">entry</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"> #1:1:6]</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> try</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">error make</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> foo</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">} </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">catch</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">error make</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> bar</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   ·</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">      ──────────</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   ╰────</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4>Labels</h4>
<p>Labels can now be created without a <code>text</code> field, like this error that only has a <code>span</code>. The span is highlighted, but with an empty label:</p>
<div class="language-nu line-numbers-mode" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">></span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> f</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">x</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] {</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">  error make</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">msg</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> here</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> label:</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">span</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">metadata</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $x</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">)</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">.span</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}}</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">f</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> abcd</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">Error</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> nu::shell::error</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  ×</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> here</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   ╭─</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">[</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">entry</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"> #7:4:3]</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 3</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> }</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 4</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> f</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> abcd</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   ·</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   ────</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   ╰────</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4>External sources</h4>
<p>The new <code>src</code> field allows highlighting spans of text in any file, not just internal Nushell spans.</p>
<div class="language-nu line-numbers-mode" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">></span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "foo</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">bar</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">baz"</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> save</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> -</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">f</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> /tmp/foo.bar</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">error make</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">  msg</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> 'error here'</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">  src</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">path</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> /tmp/foo.bar</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">  labels</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    {</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">text</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "this"</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> span</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">start</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 4</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> end</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 7</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}}</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">  ]</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">Error</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> nu::shell::outside</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  ×</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> error</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> here</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   ╭─</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">[</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">/tmp/foo.bar:2:1</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">]</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> foo</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 2</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> bar</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   ·</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> ─┬─</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   ·</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  ╰──</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> this</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 3</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> baz</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   ╰────</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h1>Changes [<a href="#table-of-contents">toc</a>]</h1>
<h2>Breaking changes [<a href="#table-of-contents">toc</a>]</h2>
<h3>Renamed <code>$nu.temp-path</code> and <code>$nu.home-path</code> [<a href="#table-of-contents">toc</a>]</h3>
<p>For consistency with other <code>$nu</code> fields:</p>
<ul>
<li><code>$nu.temp-path</code> has been renamed to <code>$nu.temp-dir</code></li>
<li><code>$nu.home-path</code> has been renamed to <code>$nu.home-dir</code></li>
</ul>
<p>Implemented in <a href="https://github.com/nushell/nushell/pull/17129" target="_blank" rel="noopener noreferrer">#17129</a>.</p>
<h3><code>*</code> no longer matches dotfiles in mv/cp/du by default [<a href="#table-of-contents">toc</a>]</h3>
<p>With <a href="https://github.com/nushell/nushell/pull/17185" target="_blank" rel="noopener noreferrer">#17185</a>, the glob <code>*</code> won't match files whose names start with a dot (<code>.</code>) when using <code>cp</code>, <code>mv</code>, and <code>du</code>. However, these commands have a new <code>--all(-a)</code> flag for forcing the glob to match dotfiles.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">></span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> touch</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> .a</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">></span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> cp</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> *</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> /tmp</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">></span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "/tmp/.a"</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> path exists</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66">false</span></span></code></pre>
</div><h3>Use <code>labels</code> for multiple labels in <code>error make</code> [<a href="#table-of-contents">toc</a>]</h3>
<p>Previously, when calling <code>error make</code> with a record argument, the <code>label</code> field could be either a single label or a list of labels. Now, it must be a single label. There is a new <code>labels</code> field that can hold a list of labels. Updated in <a href="https://github.com/nushell/nushell/pull/17070" target="_blank" rel="noopener noreferrer">#17070</a>.</p>
<div class="language-nu line-numbers-mode" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">></span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> f</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">x</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic"> y</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic"> z</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] {</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">  error make</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">msg</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> here</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> labels:</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    {</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">text</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "there"</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> span</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">metadata</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $x</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">)</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">.span</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    {</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">text</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "everywhere"</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> span</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">metadata</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $y</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">)</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">.span</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    {</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">text</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "somewhere"</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> span</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">metadata</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $z</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">)</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">.span</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">  ]</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">  }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">f</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> abcd</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">x</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> y</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> z</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] {</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">d</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> a</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">Error</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> nu::shell::error</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  ×</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> here</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   ╭─</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">[</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">entry</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"> #11:9:3]</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 8</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> }</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 9</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> f</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> abcd</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">x</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> y</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> z</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] {</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">d</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> a</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   ·</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   ──┬─</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> ───┬───</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> ───┬──</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   ·</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">     │</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">     │</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">       ╰──</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> somewhere</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   ·</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">     │</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">     ╰──</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> everywhere</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   ·</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">     ╰──</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> there</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   ╰────</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3>IDE menu <code>min_description_width</code> should be non-zero [<a href="#table-of-contents">toc</a>]</h3>
<p>With <a href="https://github.com/nushell/reedline/pull/996" target="_blank" rel="noopener noreferrer">reedline#996</a>, the <code>min_description_width</code> setting for the IDE menu is used to determine when to switch the description to the left if <code>description_mode</code> is <code>prefer_right</code>. This means that if <code>min_description_width</code> is set to 0, the description box will always stay on the right, even when there isn't enough space to show it.</p>
<p>To fix this, set <code>min_description_width</code> to a width at which the description box can still hold a decent amount of text (e.g., 15, the new default).</p>
<h3><code>to md</code> formats lists as unordered Markdown lists [<a href="#table-of-contents">toc</a>]</h3>
<p><code>to md</code> will now format lists as unordered Markdown lists by default. For more information, see <a href="#new-list-flag-to-control-list-formatting-in-to-md-toc"><strong>New <code>--list</code> flag to control list formatting in <code>to md</code></strong></a>.</p>
<h2>Additions [<a href="#table-of-contents">toc</a>]</h2>
<h3>New Configuration Option: <code>$env.config.show_hints</code> [<a href="#table-of-contents">toc</a>]</h3>
<p>You can now disable hints for completions and the history by setting <code>$env.config.show_hints = false</code>.</p>
<h3>Configuring errors [<a href="#table-of-contents">toc</a>]</h3>
<h4>New <code>error_style = short</code> setting</h4>
<p><a href="https://github.com/nushell/nushell/pull/17097" target="_blank" rel="noopener noreferrer">#17097</a> adds a new <code>short</code> option to <code>$env.config.error_style</code> for displaying errors as concise, single-line messages similar to classic shells.</p>
<div class="language-" data-highlighter="shiki" data-ext style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-"><span class="line"><span>$ ll</span></span>
<span class="line"><span>Error: External command failed: Command `ll` not found (Did you mean `all`?)</span></span></code></pre>
</div><h4>New <code>error_style = nested</code> setting</h4>
<p><a href="https://github.com/nushell/nushell/pull/17105" target="_blank" rel="noopener noreferrer">#17105</a> adds a new <code>nested</code> option for <code>$env.config.error_style</code> to show related/nested errors.</p>
<h4>New <code>error_lines</code> setting</h4>
<p><a href="https://github.com/nushell/nushell/pull/17105" target="_blank" rel="noopener noreferrer">#17105</a> adds a new <code>$env.config.error_lines</code> option to control the number of lines printed for error context. By default, this is set to 1.</p>
<h3>Added record conversion to <code>into list</code> [<a href="#table-of-contents">toc</a>]</h3>
<p>With <a href="https://github.com/nushell/nushell/pull/17127" target="_blank" rel="noopener noreferrer">#17127</a>, <code>into list</code> from <code>std-rfc/conversions</code> now handles record types.</p>
<div class="language-nu" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">use</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> std-rfc/</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">conversions</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> *</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">{ </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">a</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 3</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">b</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 7</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">c</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 10</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> } </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> into</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> list</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># => ╭───┬─────┬───────╮</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># => │ # │ key │ value │</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># => ├───┼─────┼───────┤</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># => │ 0 │ a   │     3 │</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># => │ 1 │ b   │     7 │</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># => │ 2 │ c   │    10 │</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># => ╰───┴─────┴───────╯</span></span></code></pre>
</div><h3>Include MCP server support by default [<a href="#table-of-contents">toc</a>]</h3>
<p>The MCP server support is now included as a default feature in <a href="https://github.com/nushell/nushell/pull/17151" target="_blank" rel="noopener noreferrer">#17151</a>.</p>
<h3>Connection pool for <code>http</code> commands [<a href="#table-of-contents">toc</a>]</h3>
<p>With <a href="https://github.com/nushell/nushell/pull/17157" target="_blank" rel="noopener noreferrer">#17157</a> <code>http</code> subcommands now have a <code>--pool</code> flag for reusing connections:</p>
<div class="language-nu" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">http get</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> https://www.google.com</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">pool</span></span></code></pre>
</div><p>The <code>http pool</code> command can be used to reset and customize the HTTP connection pool.</p>
<h3>New <code>--output</code> flag for <code>timeit</code> [<a href="#table-of-contents">toc</a>]</h3>
<p><a href="https://github.com/nushell/nushell/pull/17202" target="_blank" rel="noopener noreferrer">#17202</a> adds a flag called <code>--output</code> to the <code>timeit</code> command that will make the command return a record with both the execution time and the output of the closure.</p>
<div class="language-nu" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">></span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> timeit</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">output</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> { </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'example text'</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">╭────────┬──────────────╮</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">│</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> time</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">   │</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 14328</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">        │</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">│</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> output</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> example</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> text</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> │</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">╰────────┴──────────────╯</span></span></code></pre>
</div><h3>Allow disabling filtering in custom completions [<a href="#table-of-contents">toc</a>]</h3>
<p><a href="https://github.com/nushell/nushell/pull/17253" target="_blank" rel="noopener noreferrer">#17253</a> allows disabling filtering in custom completions. This is useful if you have a completer that filters on something other than the <code>value</code> of the suggestion (e.g. a completer that displays git commits and filters based on commit description).</p>
<div class="hint-container note">
<p class="hint-container-title">Note</p>
<p>If you disable filtering, your completions will also not be sorted.</p>
</div>
<h3>New plugin interface <code>get_block_ir</code> [<a href="#table-of-contents">toc</a>]</h3>
<p><a href="https://github.com/nushell/nushell/pull/17279" target="_blank" rel="noopener noreferrer">#17279</a> a new engine call to the plugin protocol for getting the compiled Intermediate Representation (IR) for a block:</p>
<div class="language-rust" data-highlighter="shiki" data-ext="rust" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-rust"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">fn</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> get_block_ir</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">(&#x26;</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">self</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">block_id</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">BlockId</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) -> </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">Result</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">&#x3C;</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">IrBlock</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">ShellError</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">></span></span></code></pre>
</div><h3>New <code>--list</code> flag to control list formatting in <code>to md</code> [<a href="#table-of-contents">toc</a>]</h3>
<p>With <a href="https://github.com/nushell/nushell/pull/17250" target="_blank" rel="noopener noreferrer">#17250</a>, <code>to md</code> will format lists as unordered Markdown lists by default. The <code>--list</code> flag can be used to control this:</p>
<div class="language-nu" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">  [</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">a</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> b</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> c</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> to md</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">                   # => "* a\n* b\n* c"</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">  [</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">a</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> b</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> c</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> to md</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">list</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> unordered</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # => "* a\n* b\n* c"</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">  [</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">a</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> b</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> c</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> to md</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">list</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> ordered</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">    # => "1. a\n2. b\n3. c"</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">  [</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">a</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> b</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> c</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> to md</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">list</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> none</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">       # => "a\nb\nc"</span></span></code></pre>
</div><div class="hint-container warning">
<p class="hint-container-title">Warning</p>
<p><strong>Breaking change</strong>: The previous behavior was equivalent to <code>--list none</code> (no formatting for lists). The new behavior is <code>--list unordered</code>.</p>
</div>
<h3>Add <code>--icons</code> option to table for <code>ls</code> tables [<a href="#table-of-contents">toc</a>]</h3>
<p>Similar to <code>ls | grid -i</code>, now <code>ls | table --icons</code> will display file icons to the left of the filename. This can be used in your <code>$env.config.hooks.display_output</code> to always display icons when using <code>ls</code>. Implemented in <a href="https://github.com/nushell/nushell/pull/17248" target="_blank" rel="noopener noreferrer">#17248</a>.</p>
<p><img src="https://github.com/user-attachments/assets/3d8fad53-018d-4616-a659-37ef9122f6c3" alt="table --icons screenshot"></p>
<h3>Alias definitions shown in <code>which</code> command [<a href="#table-of-contents">toc</a>]</h3>
<p>With <a href="https://github.com/nushell/nushell/pull/17338" target="_blank" rel="noopener noreferrer">#17338</a>, the <code>which</code> command includes a <code>definitions</code> column when inspecting aliases to show the command that the alias expands to.</p>
<h3>Allow serializing as raw strings in <code>to nuon</code> [<a href="#table-of-contents">toc</a>]</h3>
<p><a href="https://github.com/nushell/nushell/pull/17189" target="_blank" rel="noopener noreferrer">#17189</a> adds a <code>--raw-strings</code> flag to <code>to nuon</code> for serializing strings with raw string syntax (<code>r#'...'#</code>) instead of strings with escapes.</p>
<h3>Other additions [<a href="#table-of-contents">toc</a>]</h3>
<ul>
<li><code>job flush</code> can now take a <code>--tag</code> to filter which messages to discard (<a href="https://github.com/nushell/nushell/pull/17056" target="_blank" rel="noopener noreferrer">#17056</a>)</li>
<li>Add <code>$history</code> variable to MCP (<a href="https://github.com/nushell/nushell/pull/17132" target="_blank" rel="noopener noreferrer">#17132</a>)</li>
</ul>
<h2>Removals [<a href="#table-of-contents">toc</a>]</h2>
<h3>Replace deprecated current_dir usage with EngineState::cwd in multiple files [<a href="#table-of-contents">toc</a>]</h3>
<p><a href="https://github.com/nushell/nushell/pull/17303" target="_blank" rel="noopener noreferrer">#17303</a> removes some deprecated Rust functions from <code>nu-engine</code> that have been deprecated since Nushell 0.92.3:</p>
<ul>
<li><code>current_dir_str()</code></li>
<li><code>current_dir_str_const()</code></li>
<li><code>current_dir()</code></li>
<li><code>current_dir_const()</code></li>
</ul>
<h2>Other changes [<a href="#table-of-contents">toc</a>]</h2>
<h3>Update explore regex command to look more helpful and professional [<a href="#table-of-contents">toc</a>]</h3>
<p>With <a href="https://github.com/nushell/nushell/pull/17149" target="_blank" rel="noopener noreferrer">#17149</a>, the <code>explore regex</code> UI now looks more helpful and professional.</p>
<p><img src="https://github.com/user-attachments/assets/15e64dcf-96f7-4c6c-87da-b52c1f78d986" alt="New explore regex UI"></p>
<h3>More descriptive error messages for <code>rm</code> [<a href="#table-of-contents">toc</a>]</h3>
<p>The <code>rm</code> command now provides more descriptive error messages when it runs into an IO error. Implemented in <a href="https://github.com/nushell/nushell/pull/17134" target="_blank" rel="noopener noreferrer">#17134</a>.</p>
<h3>Some Nushell commands no longer canonicalize paths [<a href="#table-of-contents">toc</a>]</h3>
<p>With <a href="https://github.com/nushell/nushell/pull/17319" target="_blank" rel="noopener noreferrer">#17319</a>, <code>rm</code>, <code>watch</code>, and <code>source</code> no longer canonicalize paths. Additionally, the file path links in table view will no longer be canonicalized if you click them.</p>
<h3>Add REPL-style state persistence across evaluations for MCP server [<a href="#table-of-contents">toc</a>]</h3>
<p>With <a href="https://github.com/nushell/nushell/pull/17121" target="_blank" rel="noopener noreferrer">#17121</a>, variables and environment changes now persist across MCP tool calls (REPL-style). This enables workflows like</p>
<div class="language-nu" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.MY_VAR</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "hello"</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # First call</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.MY_VAR</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">            # Second call returns "hello"</span></span></code></pre>
</div><h3>Use structured response format for MCP server [<a href="#table-of-contents">toc</a>]</h3>
<p>With <a href="https://github.com/nushell/nushell/pull/17132" target="_blank" rel="noopener noreferrer">#17132</a>, all MCP responses will be wrapped in a structured record with:</p>
<ul>
<li><code>history_index</code>: 0-based index of result in history</li>
<li><code>cwd</code>: current working directory after command</li>
<li><code>output</code>: command output (possibly truncated)</li>
</ul>
<h3>Additional changes [<a href="#table-of-contents">toc</a>]</h3>
<ul>
<li>Single column dataframes (series) or expressions can now be passed into <code>polars is-in</code> (<a href="https://github.com/nushell/nushell/pull/17275" target="_blank" rel="noopener noreferrer">#17275</a>)</li>
<li>Lists can now be passed into <code>polars lit</code> (<a href="https://github.com/nushell/nushell/pull/17275" target="_blank" rel="noopener noreferrer">#17275</a>)</li>
<li><code>bytes length</code> can now be used at const time (<a href="https://github.com/nushell/nushell/pull/17204" target="_blank" rel="noopener noreferrer">#17204</a>)</li>
<li>Add a quick reference panel to <code>explore regex</code> with the F1 keybinding and dismiss it with the ESC keybinding. (<a href="https://github.com/nushell/nushell/pull/17187" target="_blank" rel="noopener noreferrer">#17187</a>)</li>
<li>Within the <code>explore</code> command the <code>:nu</code> command will now stream content by spawning the command issues without blocking. (<a href="https://github.com/nushell/nushell/pull/17208" target="_blank" rel="noopener noreferrer">#17208</a>)</li>
<li><code>--help</code> is now available for <code>debug env</code>. (<a href="https://github.com/nushell/nushell/pull/17278" target="_blank" rel="noopener noreferrer">#17278</a>)</li>
<li>This PR adds the <code>memory_size()</code> function on nushell <code>Value</code> so that we can get the size of variables to understand them better. (<a href="https://github.com/nushell/nushell/pull/17287" target="_blank" rel="noopener noreferrer">#17287</a>)</li>
<li>Update agents.md for better LLM use. (<a href="https://github.com/nushell/nushell/pull/17318" target="_blank" rel="noopener noreferrer">#17318</a>)</li>
<li>Make <code>detect type</code> more robust with datetime handling by updating regular expressions (<a href="https://github.com/nushell/nushell/pull/17357" target="_blank" rel="noopener noreferrer">#17357</a>)</li>
</ul>
<h2>Bug fixes [<a href="#table-of-contents">toc</a>]</h2>
<h3>Fixed parsing of ranges with parentheses [<a href="#table-of-contents">toc</a>]</h3>
<p>Ranges that include a parenthesized expression will now be parsed correctly after <a href="https://github.com/nushell/nushell/pull/17109" target="_blank" rel="noopener noreferrer">#17109</a>. The below example will now evaluate to the range <code>0..1</code> rather than being parsed as an invalid three-part range <code>0..(1..2</code>.</p>
<div class="language-nu" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">0</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">..</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">(</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">1</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">..</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">2</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> first</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">)</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># => ╭───┬───╮</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># => │ 0 │ 0 │</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># => │ 1 │ 1 │</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># => ╰───┴───╯</span></span></code></pre>
</div><h3>Fixed parsing issue with multiarm match + guard [<a href="#table-of-contents">toc</a>]</h3>
<p>Match statements with multiple arms and a guard expression, such as the below example, will now be parsed correctly after <a href="https://github.com/nushell/nushell/pull/17115" target="_blank" rel="noopener noreferrer">#17115</a>. Previously, such an expression would fail to parse.</p>
<div class="language-nu" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">match</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 3</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">  1</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 2</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 3</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> if</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66"> true</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> =></span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> 'test'</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># => test</span></span></code></pre>
</div><h3>Infinite sequences can be terminated when piped to other commands [<a href="#table-of-contents">toc</a>]</h3>
<p><a href="https://github.com/nushell/nushell/pull/17245" target="_blank" rel="noopener noreferrer">#17245</a> allows infinite sequences to be terminated when piped to other commands.</p>
<div class="language-" data-highlighter="shiki" data-ext style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-"><span class="line"><span>> `1..inf | to md`  # then press ctrl-c</span></span>
<span class="line"><span>^CError: nu::shell::error</span></span>
<span class="line"><span></span></span>
<span class="line"><span>  × Operation interrupted</span></span>
<span class="line"><span>   ╭─[entry #1:1:1]</span></span>
<span class="line"><span> 1 │ 1..inf | to md</span></span>
<span class="line"><span>   · ───────┬──────</span></span>
<span class="line"><span>   ·        ╰── This operation was interrupted</span></span>
<span class="line"><span>   ╰────</span></span></code></pre>
</div><h3>Pipefail works with <code>try</code> block [<a href="#table-of-contents">toc</a>]</h3>
<p>With <a href="https://github.com/nushell/nushell/pull/17052" target="_blank" rel="noopener noreferrer">#17052</a>, the following code will print an empty list with additional <code>1</code>, because the command is failed actually.</p>
<div class="language-nu" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">></span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> nu</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">experimental-options</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">=</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">[</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">pipefail</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">]</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">></span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> try</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">  ^</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">false</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> lines</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">} </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">catch</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {|</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">e</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">|</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">  print</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $e.exit_code</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div><h3>Nushell exits early when running scripts or commands with bad config files [<a href="#table-of-contents">toc</a>]</h3>
<p>With <a href="https://github.com/nushell/nushell/pull/17103" target="_blank" rel="noopener noreferrer">#17103</a>, if a script or command is run with a <code>config.nu</code> or <code>env.nu</code> that can't be evaluated, Nushell will exit.</p>
<div class="language-nu" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">echo</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> 'errnocmd'</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> save</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> config.nu</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">nu</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">config</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> config.nu</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> -</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">c</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> 'echo $env.NU_VERSION'</span></span></code></pre>
</div><p>This will exit with status code 1 rather than printing the Nushell version.</p>
<h3>Fix <code>http</code> DNS resolution &quot;Service not supported&quot; error in Docker containers [<a href="#table-of-contents">toc</a>]</h3>
<p>With <a href="https://github.com/nushell/nushell/pull/17125" target="_blank" rel="noopener noreferrer">#17125</a>, <code>http</code> commands will no longer error with &quot;Service not supported for this socket type&quot; in certain Linux environments (particularly Docker containers running Debian Trixie).</p>
<h3>Fix variables remaining active after <code>overlay hide</code> [<a href="#table-of-contents">toc</a>]</h3>
<p><a href="https://github.com/nushell/nushell/pull/17130" target="_blank" rel="noopener noreferrer">#17130</a> makes overlays work more reliably inside scripts.</p>
<div class="language-nu" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">#!/usr/bin/env nu</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> something</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [] { </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"example"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">module</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> spam</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {}</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">overlay use</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> spam</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> bar</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [] { </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"bar"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">overlay hide</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> spam</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">bar</span></span></code></pre>
</div><p>Previously, <code>bar</code> would be available to use even after <code>overlay hide spam</code>. This has been fixed.</p>
<h3>Other fixes [<a href="#table-of-contents">toc</a>]</h3>
<ul>
<li>Type mismatch errors no longer list the same type multiple times (<a href="https://github.com/nushell/nushell/pull/17075" target="_blank" rel="noopener noreferrer">#17075</a>)</li>
<li>Allow creating aliases for commands with required flags (<a href="https://github.com/nushell/nushell/pull/17106" target="_blank" rel="noopener noreferrer">#17106</a>)</li>
<li><code>rm</code> can now delete broken symlinks on Windows (<a href="https://github.com/nushell/nushell/pull/17320" target="_blank" rel="noopener noreferrer">#17320</a>)</li>
<li><code>format date</code> can see locale environment variables set by <code>with-env</code> (<a href="https://github.com/nushell/nushell/pull/17333" target="_blank" rel="noopener noreferrer">#17333</a>)</li>
<li>Changes to <code>$env.config</code> outside of <code>config.nu</code> are reflected in more places (<a href="https://github.com/nushell/nushell/pull/17058" target="_blank" rel="noopener noreferrer">17058</a>)</li>
<li>Multiplying duration by integers now throws an error on overflow (<a href="https://github.com/nushell/nushell/pull/17063" target="_blank" rel="noopener noreferrer">#17063</a>)</li>
<li>rm command will return error when there is one file it failed to remove. (<a href="https://github.com/nushell/nushell/pull/17237" target="_blank" rel="noopener noreferrer">#17237</a>)</li>
<li>Changed the behavior of <code>cal --month-names</code> to create a new <code>month_name</code> column instead of overriding <code>month</code>. (<a href="https://github.com/nushell/nushell/pull/17302" target="_blank" rel="noopener noreferrer">#17302</a>)</li>
<li><code>glob</code> no longer canonicalizes paths internally (<a href="https://github.com/nushell/nushell/pull/17312" target="_blank" rel="noopener noreferrer">#17312</a>)</li>
<li>Fixed the issue where &quot;Duplicate Pane&quot; in Windows Terminal failed when the current path contained Chinese characters by removing unnecessary URL-encoding in OSC 9;9 sequences. (<a href="https://github.com/nushell/nushell/pull/17311" target="_blank" rel="noopener noreferrer">#17311</a>)</li>
<li>Enable <code>detect columns</code> 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. (<a href="https://github.com/nushell/nushell/pull/17317" target="_blank" rel="noopener noreferrer">#17317</a>)</li>
<li><code>input -s</code> will append newline when user finishes typing. (<a href="https://github.com/nushell/nushell/pull/17298" target="_blank" rel="noopener noreferrer">#17298</a>)</li>
<li><code>std/help</code>: Add colors, proper examples, fix output (<a href="https://github.com/nushell/nushell/pull/17010" target="_blank" rel="noopener noreferrer">#17010</a>)</li>
<li><code>table -i false</code> no longer panic when there is an index column, e.g: <code>[{index: 0, data: yes}] | table -i false</code> (<a href="https://github.com/nushell/nushell/pull/17126" target="_blank" rel="noopener noreferrer">#17126</a>)</li>
</ul>
<h1>Notes for plugin developers [<a href="#table-of-contents">toc</a>]</h1>
<h1>Hall of fame [<a href="#table-of-contents">toc</a>]</h1>
<p>Thanks to all the contributors below for helping us solve issues, improve documentation, refactor code, and more! 🙏</p>
<p>| author                                             | change                                                                               | link                                                    |
|</p>
]]></content:encoded>
      <enclosure url="https://github.com/user-attachments/assets/502a6566-715f-4ce0-b787-6012fc5b9942" type="image/"/>
    </item>
  </channel>
</rss>