kilar 🔌
A powerful CLI tool for managing port processes on your system. Quickly find and terminate processes using specific ports with an intuitive interface.
📋 Table of Contents
- 🚀 Quick Start
- ✨ Key Features
- 📦 Installation
- 🚀 Usage
- 🎛️ Command Options
- 📝 Examples
- 🎨 Output Format
- 📋 Requirements
- 🔨 Building from Source
- 🤝 Contributing
- 🔐 Security
- 📈 Project Status
- 📊 Performance & Compatibility
- 🗺️ Roadmap
- 📄 License
🚀 Quick Start
# Install via Homebrew (macOS/Linux)
&&
# Install via Cargo
# Quick usage
✨ Key Features
🔍 Smart Port Detection
- Lightning-fast port checking - Instantly see if a port is in use and which process owns it
- Protocol support - Works with both TCP and UDP protocols
- Detailed process information - View PID, process name, and command line
⚡ Safe Process Management
- Graceful termination - Kill processes with built-in safety confirmations
- Force kill option - Override confirmations when needed
- Interactive selection - Choose multiple processes to terminate with an intuitive UI
📊 Comprehensive Listing
- Port range filtering - View specific port ranges (e.g., 3000-4000)
- Process name filtering - Find ports by application name
- Flexible sorting - Sort by port, PID, or process name
🎨 Developer-Friendly Output
- Color-coded terminal output - Easy-to-read with intuitive color schemes
- JSON export - Perfect for scripting and automation
- Verbose mode - Get detailed information when troubleshooting
🌍 Cross-Platform & Modern
- Universal compatibility - Works on macOS and Linux
- Multiple installation methods - Homebrew, Cargo, or from source
- Zero dependencies - Single binary with no runtime requirements
📦 Installation
🍺 Homebrew (Recommended for macOS/Linux)
# Add tap and install
# Or one-liner
📦 Cargo (Universal)
# Install from crates.io
# Install from source
📥 Binary Downloads
Download pre-built binaries from the releases page:
- macOS (Intel):
kilar-x86_64-apple-darwin.tar.gz - macOS (Apple Silicon):
kilar-aarch64-apple-darwin.tar.gz - Linux (x86_64):
kilar-x86_64-unknown-linux-gnu.tar.gz - Linux (ARM64):
kilar-aarch64-unknown-linux-gnu.tar.gz
🔨 From Source
Note: Requires Rust 1.70 or later
Usage 🚀
Check if a port is in use
# Check port 3000
# Check UDP port
# JSON output
# Verbose mode for detailed information
Kill a process using a specific port
# Kill process on port 3000
# Force kill without confirmation
# Kill UDP process
List all ports in use
# List all TCP ports
# List all ports (TCP and UDP)
# Filter by port range
# Filter by process name
# Sort by different criteria
# Interactive kill mode
Command Options 🎛️
Global Options
-q, --quiet: Suppress output-j, --json: Output in JSON format-v, --verbose: Enable verbose output-h, --help: Print help information-V, --version: Print version information
Check Command
PORT: Port number to check-p, --protocol <PROTOCOL>: Protocol (tcp/udp) [default: tcp]
Kill Command
PORT: Port number of the process to kill-f, --force: Force kill without confirmation-p, --protocol <PROTOCOL>: Protocol (tcp/udp) [default: tcp]
List Command
-r, --ports <RANGE>: Port range to filter (e.g., 3000-4000)-f, --filter <NAME>: Filter by process name-s, --sort <ORDER>: Sort order (port/pid/name) [default: port]-p, --protocol <PROTOCOL>: Protocol (tcp/udp/all) [default: tcp]--view-only: View only (no kill feature)
Examples 📝
Development Workflow
# Check if your development server port is free
# If occupied, see what's using it
# Kill the process if needed
# List all development-related ports
System Administration
# List all services
# Find specific service
# Check system ports
# Export port usage as JSON
Output Format 🎨
Standard Output
- ✓ Green checkmark: Success/Port in use
- × Red cross: Error/Failed operation
- ○ Blue circle: Information/Port available
- Yellow: Port numbers and process names
- Cyan: PIDs and labels
- Blue: Protocol information
JSON Output
All commands support JSON output for scripting and automation:
Requirements 📋
System Tools
kilar requires one of the following system tools to detect port usage:
lsof(recommended) - Usually pre-installed on macOS, optional on Linuxss(Linux fallback) - Part ofiproute2package, typically pre-installed on most Linux distributionsnetstat(alternative fallback) - Available on most systems
Installation instructions for Linux:
# Arch Linux / Manjaro
# Debian / Ubuntu
# Fedora / RHEL / CentOS
Note: On Linux systems without
lsof,kilarautomatically usesssas a fallback. Only processes owned by the current user will be shown unless running with elevated privileges.
Permissions
- Some port detection operations may require elevated privileges to see all processes
- Process termination requires appropriate permissions for the target process
Building from Source 🔨
# Clone the repository
# Build in release mode
# Run tests
# Install locally
🤝 Contributing
We welcome contributions! Here's how you can help:
- 🐛 Report bugs
- 💡 Request features
- 📖 Improve documentation
- 🔧 Submit pull requests
See our Contributing Guide for detailed instructions.
🔐 Security
kilar handles system processes and requires appropriate permissions:
- Process visibility: Requires read access to system process information
- Process termination: May require elevated privileges (sudo) for some processes
- Network data: Accesses network connection information through system commands
For security issues, please see our Security Policy.
📈 Project Status
🏗️ Development Status
- Stable: Core functionality is production-ready with v0.1.1 released
- Active: Regular updates and maintenance
- Cross-platform: Tested on macOS, Linux, and Windows
- Package Distribution: Available via Homebrew, Cargo, and GitHub Releases
🚀 CI/CD Status
Note: This tool is designed for Unix-like systems (macOS and Linux) and provides comprehensive port management functionality on these platforms.
📊 Performance & Compatibility
| Platform | Min Version | Status | Notes |
|---|---|---|---|
| macOS | 10.15+ | ✅ Full Support | Intel & Apple Silicon |
| Linux | Any modern | ✅ Full Support | Requires lsof |
🗺️ Roadmap
✅ Completed (v0.1.x)
- v0.1.0: Core port management functionality
- v0.1.1: Improved Homebrew distribution and bug fixes
🔮 Future Releases
- v0.2.0: Configuration file support
- v0.3.0: Plugin system for custom output formats
- v0.4.0: Network interface filtering
- v1.0.0: Stable API and comprehensive documentation
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
👥 Authors & Contributors
🚀 Maintainer: polidog
Thanks to all contributors who help make this project better!
🙏 Acknowledgments
- 🦀 Built with Rust - For memory safety and performance
- ⚡ Tokio - Async runtime for efficient I/O operations
- 🎨 Terminal UI - Powered by
dialoguerandcolored - 🏗️ Cross-compilation - Thanks to GitHub Actions and
cross
🔗 Related Projects & Resources
🛠️ System Tools Used
📦 Distribution Channels
- Homebrew Tap - Official Homebrew formula
- Crates.io - Rust package registry
- GitHub Releases - Binary downloads
⚠️ Important: This tool requires appropriate permissions to view and terminate processes. Some system processes may require elevated privileges (sudo).