How to Extend Nushell with Plugins and Get Community Support
Updated
Nushell ships with a plugin system for adding commands without rebuilding the shell, and its community lives primarily on Discord. The site states that extending Nu with plugins is "easy" via "a powerful plugin system," and directs questions to Discord, while site improvements are handled through feedback or a pull request (PR). What the site does not publish is a plugin API reference, a registry of third-party plugins, or a support SLA — so treat the steps below as the general plugin workflow and confirm specifics against the Documentation section once you are in it.
Extending Nushell with plugins
The site's claim is deliberately broad: plugins are the supported way to extend Nu, and the mechanism is described as powerful rather than limited to a fixed set of hooks. That matters because it means custom functionality does not require forking the shell.
What the site does confirm about the surrounding design:
- Typed data is the contract. Nu "operates on typed data," so anything a plugin returns flows through the same pipeline model as built-in commands. A plugin that emits structured output composes with
select,filter, andsortthe same way native commands do. - Existing formats are already covered. Nu "speaks JSON, YAML, SQLite, Excel, and more out of the box," and can pull data from a file, a database, or a web API. Before writing a plugin, check whether the task is really a data-ingestion problem that the built-in format support already solves.
- Errors are part of the experience. Because Nu is typed, it "catches bugs that other shells don't," and error messages point to where and why something broke. A plugin that respects the type system will surface failures in that same style rather than as silent string corruption.
A practical way to decide whether you need a plugin
| Situation | Better first move |
|---|---|
| You need to read or reshape JSON, YAML, SQLite, or Excel data | Use Nu's built-in format support in a pipeline |
| You need a repeated multi-step transformation | Write it as a Nu script or custom command first |
| You need a capability Nu's command set does not expose at all | A plugin is the intended extension path |
| You need to call an external tool | Run it from Nu and parse its structured output where possible |
The reason to try scripts before plugins: the site frames Nu as both a shell and a programming language ("Programming in Nu describes Nu as a programming language"), so many extensions that feel like they need a plugin are expressible in Nu itself. Only reach for the plugin system when the gap is genuinely in the command set.
Getting help and contributing back
The site names exactly one community channel and one contribution path:
- Discord — "Join us on Discord if you have any questions about Nu!" This is the stated venue for questions, which makes it the right place for plugin-development questions that the written docs do not answer.
- Feedback or a PR — "You can help improve this site by giving us feedback or sending a PR." Note the scope: this path is described for improving the site, not for contributing plugin code. If your goal is to fix documentation you found lacking while learning plugins, this is the route.
The site does not describe a plugin directory, a package index, or a review process for third-party plugins, so do not assume one exists until you find it in the docs.
Where to go next in the documentation
The Documentation section is organized into five entries, and two are directly relevant to extending Nu:
- Getting Started — "guides you through getting familiar with Nushell."
- Coming to Nu — "describes similarities and differences to other languages and shells," useful if you are porting habits from Bash, Zsh, or PowerShell.
- Nu Fundamentals — "a more elaborate and structured description of the fundamentals."
- Programming in Nu — "describes Nu as a programming language." This is the most relevant entry before writing plugin-adjacent code, because it covers the language semantics your extension will interact with.
- Nu as a Shell — "gives you insight into interactive functionality and configurability in a shell environment."
A sensible order: Getting Started, then Programming in Nu, then ask on Discord about anything the plugin documentation leaves open.
Installation, if you have not set up Nu yet
Plugins are only useful once Nu runs, and the site lists several install paths: downloadable binaries, your favourite package manager, a GitHub Action, and source code. The concrete commands given are:
macOS / Linux:
brew install nushell
nix profile install nixpkgs#nushell
Windows:
winget install nushell
winget install nushell --scope machine
The first winget command installs to user scope by default; the second requires an admin shell for a machine-scope install. After installing, launch Nu by typing nu.
What the site does not tell you
Be aware of these gaps before planning around them:
- No plugin API reference, manifest format, or versioning policy is published on this page.
- No list of existing plugins or a discovery mechanism is mentioned.
- No response time, support hours, or guarantee is attached to the Discord channel.
- No pricing or licensing terms appear in the provided material, so nothing here should be read as confirming that any component is free or requires no account.
For all four, the Documentation section and Discord are the places the site itself points you toward.