Structured output
Records and tables you can pass into Nushell commands without parsing text.
Nushell plugin · structured output
Inspect interfaces, addresses, and flags as native Nushell data you can immediately filter, select, flatten, and script.
Practical network insight for your shell.
One command, structured records, and a pipeline-friendly shape.
Try it yourself
A small taste of the real plugin output.
# Install the plugincargo install nu_plugin_net --lockedinstalled nu_plugin_net# Register it with Nushellplugin add ~/.cargo/bin/nu_plugin_netadded plugin netplugin use netloaded net# Query and project the resultnet | where flags.is_up | select name if_index mac ipsname if_index mac ips
lo 1 00:00:00:00:00:00 [127.0.0.1, ::1]
en0 2 14:7d:da:3c:1f:2b [192.168.1.42/24]
docker0 5 02:42:ac:11:00:01 [172.17.0.1/16]Output schema
Structured. Consistent. Scriptable.
Every interface is returned as a record with stable top-level fields and nested address and flag details.
| Column | Type | Description | Example |
|---|---|---|---|
name | string | Interface name | en0 |
description | string | System-provided interface description | Ethernet |
if_index | int | Operating-system interface index | 2 |
mac | string | nothing | Hardware address when available | 14:7d:da:3c:1f:2b |
ips | table | Addresses with type and prefix | 192.168.1.42/24 |
flags | record | State and capability flags | is_up: true |
Designed for pipelines
Records and tables you can pass into Nushell commands without parsing text.
Reach addresses and state flags directly with familiar Nushell paths.
Interface information is gathered through the host operating system’s native network APIs.
Installation
Works with the Nushell plugin system.
Install the crate, register the executable, and load the command into your current Nushell session.
See the full installation guide# Install the plugin
cargo install nu_plugin_net --locked
# Register and load it in Nushell
plugin add ~/.cargo/bin/nu_plugin_net
plugin use netExamples
Real tasks. Real output.
Show every interface and its details.
netKeep the fields that matter for a quick status check.
net | where flags.is_up | select name if_index macProject address values from every interface.
net | each {|interface|
{ name: $interface.name, addresses: ($interface.ips | get addr) }
}Bring nested booleans into a compact table.
net | flatten flags | select name if_index is_up is_loopback is_multicastDocumentation
Learn the install flow, inspect the complete schema, and browse the generated Rust API reference.
Open source network tooling
Read the guide, try the command, and shape the result to fit your workflow.
Get started