
## Summary Comprehensive repository cleanup focusing on plugin dependency management, documentation improvements, and git tracking optimization. ## Key Changes ### 🔧 Core Infrastructure - Synchronized all nu-* dependencies across plugins for version consistency - Enhanced upstream tracking and automation systems - Removed nushell directory from git tracking for cleaner repository management ### 📚 Documentation - Significantly expanded README.md with comprehensive development guides - Added detailed workflow documentation and command references - Improved plugin collection overview and usage examples ### 🧹 Repository Cleanup - Removed legacy bash scripts (build-all.sh, collect-install.sh, make_plugin.sh) - Streamlined automation through unified justfile and nushell script approach - Updated .gitignore with nushell directory and archive patterns - Removed nushell directory from git tracking to prevent unwanted changes ### 🔌 Plugin Updates - **nu_plugin_image**: Major refactoring with modular architecture improvements - **nu_plugin_hashes**: Enhanced functionality and build system improvements - **nu_plugin_highlight**: Updated for new plugin API compatibility - **nu_plugin_clipboard**: Dependency synchronization - **nu_plugin_desktop_notifications**: Version alignment - **nu_plugin_port_extension & nu_plugin_qr_maker**: Consistency updates - **nu_plugin_kcl & nu_plugin_tera**: Submodule synchronization ### 🏗️ Git Tracking Optimization - Removed nushell directory from version control for cleaner repository management - Added comprehensive .gitignore patterns for build artifacts and archives ## Statistics - 2,082 files changed - 2,373 insertions, 339,936 deletions - Net reduction of 337,563 lines (primarily from removing nushell directory tracking) ## Benefits - Complete version consistency across all plugins - Cleaner repository with optimized git tracking - Improved developer experience with streamlined workflows - Enhanced documentation and automation - Reduced repository size and complexity 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
🔌 nu_plugin_port_extension
A Nushell plugin for inspecting open ports and scanning network services. It introduces two subcommands:
port list
: Lists all open network connections, similar tonetstat
.port scan
: Scans a target IP and port to determine if it is open.
✨ Features
port list
– List Active Connections
The port list
command retrieves all open connections on the network interface. It supports filtering by protocol, IP version, and listening state.
📌 Usage
port list {flags}
⚙️ Available Flags
-h, --help
→ Show help message.-6, --disable-ipv4
→ Exclude IPv4 connections (only show IPv6).-4, --disable-ipv6
→ Exclude IPv6 connections (only show IPv4).-t, --disable-udp
→ Exclude UDP connections (only show TCP).-u, --disable-tcp
→ Exclude TCP connections (only show UDP).-l, --listeners
→ Show only listening connections (state == "LISTEN"
).-p, --process-info
→ Include process details (name, command, binary path).
🔍 Example: Show Active Processes
port list -p | take 1
📊 Example Output
pid | type | ip_version | local_address | local_port | remote_address | remote_port | state | process_name | cmd | exe_path |
---|---|---|---|---|---|---|---|---|---|---|
11536 | tcp | 4 | 127.0.0.1 | 1093 | 127.0.0.1 | 1108 | ESTABLISHED | steam.exe | [C:\Program Files (x86)\Steam\steam.exe, -silent] | C:\Program Files (x86)\Steam\steam.exe |
port scan
– Scan Open Ports
The port scan
command checks if a specific port is open on a target IP, similar to nc -vz {ip} {port}
.
⚠️ Note: Only TCP scanning is supported at the moment.
📌 Usage
port scan {flags} <target IP> <port>
⚙️ Available Flags
-h, --help
→ Show help message.-t, --timeout <duration>
→ Set timeout before giving up (default: 60s).-s, --send <string>
→ Send data to the target upon connection.-b, --receive-byte-count <int>
→ Number of bytes to receive before confirming the connection is open.
🎯 Parameters
target IP
(string) – The IP address to scan.port
(integer) – The port number to check.
🔍 Example: Check if Google's Public DNS (8.8.8.8) has Port 53 Open
port scan 8.8.8.8 53 -t 1sec
📊 Example Output
╭─────────┬─────────╮
│ address │ 8.8.8.8 │
│ port │ 53 │
│ is_open │ true │
│ elapsed │ 40ms │
╰─────────┴─────────╯
🔄 Example: Scan a Range of Ports on 127.0.0.1
and Filter Open Ports
7880..8000 | each { |it| port scan 127.0.0.1 $it -t 1ms } | where result == Open
🔧 Installation
🚀 Recommended: Using nupm
This method automatically handles dependencies and features.
git clone https://github.com/FMotalleb/nu_plugin_port_extension.git
nupm install --path nu_plugin_port_extension -f
🛠️ Manual Compilation
git clone https://github.com/FMotalleb/nu_plugin_port_extension.git
cd nu_plugin_port_extension
cargo build -r
plugin add target/release/nu_plugin_port_extension
📦 Install via Cargo (using git)
cargo install --git https://github.com/FMotalleb/nu_plugin_port_extension.git
plugin add ~/.cargo/bin/nu_plugin_port_extension
📦 Install via Cargo (crates.io) Not Recommended
Since I live in Iran and crates.io often restricts package updates, the version there might be outdated.
cargo install nu_plugin_port_extension
plugin add ~/.cargo/bin/nu_plugin_port_extension