lsport-0.2.10 is not a library.
⚓ Lsport
A TUI for managing local and remote ports via SSH. Quickly identify which process is hogging a port and kill it instantly.
Features
- 📡 Live Port Monitor - Real-time table displaying ports, protocols (TCP/UDP), PIDs, process names, CPU%, and memory usage
- 🔌 TCP & UDP Support - Scans both TCP and UDP listening ports using multiple detection methods
- 🌐 Remote Monitoring - Monitor ports on remote servers via SSH
- ⌨️ Interactive Navigation - Vim-style navigation with arrow keys or
j/k - 💀 Process Termination - Kill processes directly from the TUI with a single keystroke
- 🔍 Regex Filtering - Filter ports by name, PID, or port number with regex support
- 🧟 Zombie Detection - Automatically highlights suspicious processes (high CPU + orphaned) in red
- 🎨 K9s-Inspired UI - Beautiful dark theme with color-coded information
Installation
macOS (Homebrew)
Linux (Debian/Ubuntu)
|
Or manually:
# Add GPG key and repository
|
|
&&
Cargo (Any platform)
From Source
Binary Download
Download pre-built binaries from GitHub Releases.
Usage
# Monitor localhost (default)
# For killing system processes, you may need sudo
# Monitor a remote server via SSH
# Remote server with custom SSH port
# Use a specific SSH key
# Custom scan interval (5 seconds)
CLI Options
| Option | Description |
|---|---|
-H, --host <HOST> |
Remote host (format: user@host:port or user@host or host) |
-i, --identity <PATH> |
Path to SSH private key |
-s, --scan-interval <SECS> |
Scan interval in seconds (default: 2) |
-h, --help |
Print help |
-V, --version |
Print version |
Keybindings
| Key | Action |
|---|---|
↑ / k |
Move selection up |
↓ / j |
Move selection down |
PgUp |
Move up 10 rows |
PgDn |
Move down 10 rows |
Home |
Go to first entry |
End |
Go to last entry |
Enter |
Kill selected process |
/ |
Enter filter mode (supports regex!) |
? |
Toggle help popup |
Esc |
Clear filter / Close help |
q |
Quit |
K9s-Style Sorting
| Key | Action |
|---|---|
Shift+P / 1 |
Sort by Port |
Shift+O / 2 |
Sort by Protocol |
Shift+I / 3 |
Sort by PID |
Shift+N / 4 |
Sort by Name |
Shift+C / 5 |
Sort by CPU % |
Shift+M / 6 |
Sort by Memory |
Press the same key again to toggle ascending/descending order.
SSH Authentication
For remote monitoring, authentication is attempted in this order:
- Specified key (
-iflag) - SSH agent (if running)
- Default keys:
~/.ssh/id_ed25519,~/.ssh/id_rsa,~/.ssh/id_ecdsa
Filtering
Press / to enter filter mode. Filters support:
- Simple text:
nodematches any entry containing "node" - Regex patterns:
^80[0-9]{2}$matches ports 8000-8099 - Case-insensitive: All filters are case-insensitive
The context bar shows "Regex:" when your filter is a valid regex pattern.
UI Design
Lsport features a k9s-inspired terminal UI with:
- 🎨 Dark theme with blue/cyan accents
- 📊 Clean table with alternating row colors
- 🔍 Sort indicators in column headers
[P/1]▲ - ⌨️ Vim-style command bar at bottom
- 📋 Help popup (
?) with full keybinding reference - 🏷️ Color-coded protocols (TCP=blue, UDP=green) and CPU usage
Development
Prerequisites
- Rust 1.85.0 or later
- OpenSSL development libraries (for SSH support)
Setup
# Install pre-commit hooks
# Or manually with pre-commit
Building
# Debug build
# Release build
# Run tests
# Run clippy
# Format code
Project Structure
src/
├── main.rs # Entry point, CLI parsing & event loop
├── app.rs # Model - Application state management
├── scanner.rs # Local port scanning & process correlation
├── remote.rs # SSH remote scanning module
└── ui.rs # View - Ratatui rendering logic
Releasing
# Patch release (0.1.0 → 0.1.1)
# Minor release (0.1.0 → 0.2.0)
# Major release (0.1.0 → 1.0.0)
Dependencies
| Crate | Purpose |
|---|---|
| ratatui | TUI framework |
| crossterm | Terminal backend |
| sysinfo | System/process information |
| listeners | Port to PID mapping |
| ssh2 | SSH remote connections |
| clap | CLI argument parsing |
| regex | Filter pattern matching |
| anyhow | Error handling |
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
Security
For security concerns, please see SECURITY.md.
License
MIT License - see LICENSE for details.