nu-shell

Structured data scripting through pipelines with tables, lists, and records.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "nu-shell" with this command: npx skills add knoopx/pi/knoopx-pi-nu-shell

nu-shell

Structured data scripting through pipelines with tables, lists, and records.

Core Concepts

Data Types

  • Record: { name: "John", age: 30 }

  • List: [1, 2, 3]

  • Table: A list of records with the same keys

Pipelines

ls | where size > 10mb | sort-by size

Running Scripts

nu myscript.nu # Run script file nu -c 'ls | length' # Run inline command source myscript.nu # Run in current session

Data Manipulation

Loading and Saving

let config = (open config.json) let data = (open data.csv)

$data | save output.yaml $data | to json | save output.json

Filtering and Selecting

ls | where name =~ "test" # Filter rows ls | select name size # Select columns (open package.json).version # Access fields

Processing Tables

ls | where size > 10mb # Filter by condition ls | select name size # Select columns ls | sort-by size # Sort ls | group-by name # Group ls | length # Count rows

Processing Records

let user = { name: "John", age: 30 } echo $user.name # Access field

let updated = { ...$user, age: 31 } # Update field let merged = { ...$config, debug: true } # Merge

Processing Lists

[1, 2, 3, 4, 5] | where $it > 2 # Filter [1, 2, 3] | each { |x| $x * 2 } # Map [1, 2, 3, 4, 5] | reduce { |acc, x| $acc + $x } # Reduce

Scripting

Basic Script Structure

#!/usr/bin/env nu

def "my command" [param: string] { echo $"Hello, ($param)" }

my command "world"

Control Flow

If statement

if true { echo "Hello" }

If-else

if true { echo "Yes" } else { echo "No" }

For loop

for i in 1..10 { echo $i }

While loop

mut i = 1 while $i <= 10 { echo $i $i = $i + 1 }

Custom Commands

With typed parameters

def "create project" [name: string, type: string = "typescript"] { echo $"Creating ($name) with ($type)" }

With flags

def "deploy" [--env: string = "production"] { echo $"Deploying to ($env)" }

File Operations

let content = (open "file.txt") # Read $content | save "output.txt" # Write $content | save --append "file.txt" # Append

Tips

  • Use nu -c 'command' to run commands inline

  • Use open to load data from various formats

  • Use save to write data to various formats

  • Use where to filter tables

  • Use select to choose columns

  • Use sort-by to sort tables

  • Use each to map over lists

  • Use reduce to combine list elements

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

jujutsu

No summary provided by upstream source.

Repository SourceNeeds Review
General

podman

No summary provided by upstream source.

Repository SourceNeeds Review
General

scraping

No summary provided by upstream source.

Repository SourceNeeds Review
General

jscpd

No summary provided by upstream source.

Repository SourceNeeds Review