# Nushell

> >-

- **Type:** Skill
- **Install:** `agentstack add skill-posidoni-shell-skill-nushell`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [posidoni](https://agentstack.voostack.com/s/posidoni)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [posidoni](https://github.com/posidoni)
- **Source:** https://github.com/posidoni/shell-skill/tree/main/skills/nushell

## Install

```sh
agentstack add skill-posidoni-shell-skill-nushell
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Nushell

Nushell passes typed, structured values (records, tables, lists), not text.
Depth and citations in [`reference/nushell.md`](../../reference/nushell.md);
parse-clean fragments in [`examples/nushell/`](../../examples/nushell/); a runtime
demo of the startup pitfall in
[`tests/nushell-startup-demo.sh`](../../tests/nushell-startup-demo.sh).

## Rules at a glance

| Rule | Why |
|------|-----|
| Parse the whole file, then run it | no `eval`; runtime cannot change what was parsed |
| `source`/`use`/`overlay use` need a **parse-time `const`** path | resolved before any `let`/`$env` exists |
| A runtime `if (path exists)` can't guard a `source` | path is resolved at parse time regardless |
| Structured data, not text: `get`/`where`/`select` | pipelines carry typed values, no word-splitting |
| Write with `save`, not `>` | `>` is the greater-than operator |
| Prefer `let`; `mut` only to reassign; `const` for parse time | immutability enables parallel/streaming |
| Type command params; declare `in -> out` signatures | checked at parse time, self-documenting |
| `def --env` when a command must change env or `cd` | `$env` is block-scoped otherwise |
| `if`/`match` are expressions; iterate with `each`/`where` | return values; far faster than `for`/`while` |
| `^cmd` for externals + `\| complete` for exit code | quote args yourself; branch on real status |
| `try`/`catch`, `error make`, optional `get -o`/`?` + `default` | recover instead of aborting |
| Pin/declare the target Nushell version | 0.x ships breaking changes every ~6 weeks |

## Verify

`task nushell` runs `nu --ide-check` on every `*.nu` and fails on any parse or
type error. A failing script cannot be committed, so demonstrate *bad* runtime
behaviour in prose or a hermetic bash demo, not in a `*.nu` file.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [posidoni](https://github.com/posidoni)
- **Source:** [posidoni/shell-skill](https://github.com/posidoni/shell-skill)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-posidoni-shell-skill-nushell
- Seller: https://agentstack.voostack.com/s/posidoni
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
