A native macOS menu bar application for finding and killing processes running on open ports.
Perfect for developers who need to quickly free up ports like 3000, 8080, 5173, etc.
- Menu Bar Integration - Lives in your menu bar, no Dock icon clutter
- Port Discovery - Automatically finds all listening TCP ports
- Process Info - Shows process name and PID for each port
- Quick Kill - One-click process termination
- Kill All - Terminate all listed processes at once
- Auto-Refresh - Updates port list every 5 seconds
- Search - Filter by port number or process name
- Graceful Kill - Tries SIGTERM first, then SIGKILL if needed
- macOS 15.0+ (Sequoia)
brew install --cask productdevbook/tap/portkillerDownload the latest DMG from GitHub Releases:
- Download
PortKiller-vX.X.X-arm64.dmg - Open the DMG file
- Drag PortKiller to your Applications folder
- Launch from Applications or Spotlight
# Clone the repository
git clone https://github.com/productdevbook/port-killer.git
cd port-killer
# Build the app bundle
./scripts/build-app.sh
# Copy to Applications
cp -r .build/release/PortKiller.app /Applications/
# Launch
open /Applications/PortKiller.app- Click the network icon in the menu bar
- See all open ports with their process names
- Click the ✕ button to kill a specific process
- Use "Kill All" to terminate all listed processes
- Search by port number or process name
PortKiller uses lsof to find all processes listening on TCP ports:
lsof -iTCP -sTCP:LISTEN -P -nWhen you kill a process, it first tries a graceful termination (SIGTERM), then forces it (SIGKILL) if needed.
# Debug build
swift build
# Release build
swift build -c release
# Run directly
swift run PortKiller
# Open in Xcode
open Package.swiftSources/
├── PortKillerApp.swift # App entry point
├── Managers/
│ ├── PortManager.swift # State management
│ └── PortScanner.swift # Port scanning (lsof)
├── Models/
│ └── PortInfo.swift # Data model
└── Views/
└── MenuBarView.swift # Main UI
Contributions are welcome! Please read our Contributing Guidelines before submitting a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
