Port Manager GUI provides a modern, intuitive desktop application for managing your development ports. With features like visual dashboards, real-time scanning, and one-click actions, it makes port management effortless.
- Getting Started
- Interface Overview
- Dashboard View
- Scan View
- Port Operations
- Keyboard Shortcuts
- Settings & Preferences
- Tips & Best Practices
To use the GUI, install Port Keeper with optional dependencies:
# Install with GUI support (includes Electron)
npm install -g portkeeper --include=optionalFrom Command Line:
portman guiNote: If you installed without --include=optional, you'll see instructions on how to enable GUI support.
On first launch, Port Manager will:
- Create necessary database files
- Scan for currently active ports
- Display the main dashboard
┌─────────────────────────────────────────────┐
│ [≡] Port Manager [_] [□] [X] │ <- Title Bar
├─────────────────────────────────────────────┤
│ Dashboard | Scan [🌙] [?] [@] │ <- Navigation & Actions
├─────────────────────────────────────────────┤
│ │
│ Main Content Area │ <- Dynamic Content
│ │
└─────────────────────────────────────────────┘
- Dashboard: View and manage reserved ports
- Scan: See all active ports on your system
- Theme Toggle (🌙/☀️): Switch between dark and light mode
- Help (?): Access documentation and shortcuts
- Info (@): View app version and details
The Dashboard is your central hub for managing reserved ports.
Displays all your reserved ports with:
- Port Number: The reserved port
- Project Name: Associated project
- Description: Port purpose/details
- Status: Current status (reserved/in-use)
- Reserved Date: When the port was reserved
- Tags: Categories for organization
- Actions: Quick action buttons
- Search Bar: Filter by port, project, or description
- Status Filter: Show all/reserved/in-use ports
- Tag Filter: Filter by specific tags
Each port entry has action buttons:
- 📋 Copy: Copy port number to clipboard
- ✏️ Edit: Modify port details
- 🗑️ Delete: Release the port
- Click the "Reserve Port" button
- Fill in the form:
- Port number (required)
- Project name (required)
- Description (optional)
- Tags (optional, press Enter after each tag)
- Auto-release option
- Click "Reserve"
Example Reservation:
Port: 3000
Project: my-react-app
Description: Development server for customer portal
Tags: [frontend] [react] [development]
☑ Auto-release when process stops
- Click the ✏️ icon on any reserved port
- Modify the details in the modal
- Click "Update"
- Click the 🗑️ icon on the port row
- Confirm the action in the dialog
- Port is immediately released
- Select multiple ports using checkboxes
- Use bulk action buttons:
- Release Selected
- Export Selected
- Tag Selected
The Scan View shows all ports currently in use on your system.
Real-time display of active ports showing:
- Port: Port number with color coding
- PID: Process ID
- Process: Process name
- Project: Reserved project name (if applicable)
- Description: Port description (if reserved)
- State: Connection state (LISTEN/ESTABLISHED)
- Address: Binding address
- Actions: Kill process button
Ports reserved through Port Manager show additional details:
- Purple project name tag
- Hover to see full description
- Reservation date in tooltip
Search across all fields:
- Port numbers
- Process names
- PIDs
- Project names
- Descriptions
- Click "Rescan" button or press
Ctrl/Cmd+R - View the scanning progress
- Results update automatically
- Find the port with the process you want to kill
- Click the "Kill" button in the Actions column
- Confirm in the popup dialog
- Process is terminated and list updates
Warning: Killing processes may cause data loss in those applications. Always save your work first.
- Hover over truncated text to see full content
- Click on project tags to see description
- Right-click for context menu options
Quick check if a specific port is available:
- Press
Ctrl/Cmd+Kor click "Check Port" - Enter port number
- View status:
- ✅ Free: Port is available
- 🔒 Reserved: Shows project details
⚠️ In Use: Shows process information
Reserve ports for your projects:
- Press
Ctrl/Cmd+Nor click "Reserve Port" - Fill in details:
Port: [3000] Project Name: [my-project] Description: [React development server] Tags: [react] [frontend] [dev] ☐ Auto-release when not in use - Click "Reserve"
Need several ports for a project?
- Press
Ctrl/Cmd+Mor click "Request Ports" - Configure your request:
Number of Ports: [5] Project Name: [microservices] Description: [Service mesh for e-commerce] ◉ Sequential (3000, 3001, 3002...) ◯ Random (3847, 5923, 7102...) Start Port: [3000] End Port: [9999] Avoid Ports: [3306, 5432, 6379] Tags: [docker] [microservices] - Click "Request"
- View summary of allocated ports
| Shortcut | Action |
|---|---|
Ctrl/Cmd+K |
Check port status |
Ctrl/Cmd+N |
Reserve new port |
Ctrl/Cmd+L |
View port list |
Ctrl/Cmd+R |
Refresh/Rescan |
Ctrl/Cmd+F |
Focus search |
Ctrl/Cmd+D |
Toggle dark mode |
Ctrl/Cmd+, |
Open settings |
Ctrl/Cmd+? |
Show help |
| Shortcut | Action |
|---|---|
Ctrl/Cmd+1 |
Go to Dashboard |
Ctrl/Cmd+2 |
Go to Scan View |
Tab |
Next element |
Shift+Tab |
Previous element |
| Shortcut | Action |
|---|---|
↑/↓ |
Navigate rows |
Enter |
Open details |
Delete |
Delete selected |
Ctrl/Cmd+A |
Select all |
Space |
Toggle selection |
- Dark Mode: Easier on the eyes for long sessions
- Light Mode: Better for bright environments
- Auto: Follows system preference
- Compact View: Show more ports at once
- Detailed View: Show all information
- Hide System Ports: Filter out ports < 1024
- Click File → Export
- Choose location and filename
- Saves all port reservations as JSON
- Click File → Import
- Select JSON file
- Review import summary
- Conflicts are automatically handled
- Enable in Settings
- Automatically backs up daily
- Keeps last 7 backups
Use consistent tags for better organization:
#frontend - All frontend services
#backend - Backend APIs
#database - Database ports
#dev - Development only
#prod - Production mirrors
Instead of generic names, be specific:
- ❌ "server", "app", "test"
- ✅ "customer-portal-api", "admin-dashboard", "e2e-test-server"
Understand the color scheme:
- 🟦 Blue: Port numbers
- 🟣 Purple: Reserved projects
- 🟢 Green: Active/Listening
- 🟡 Orange: Other states
- 🔴 Red: Errors or kill actions
Development Setup:
Ctrl/Cmd+M- Request multiple ports- Enter project details
- Copy port list to
.envfile
Debugging Port Conflicts:
Ctrl/Cmd+2- Go to ScanCtrl/Cmd+F- Search for port- Click Kill if needed
Ctrl/Cmd+N- Reserve for your use
Team Collaboration:
- Reserve all team ports
Ctrl/Cmd+E- Export configuration- Share via version control
- Team imports on their machines
- Large Port Lists: Use search instead of scrolling
- Frequent Scanning: Enable auto-refresh in settings
- Many Reservations: Use tags for quick filtering
# Rebuild native modules
npm run build:gui
./scripts/fix-native-modules.sh electron
# Check logs
tail -f ~/.portmanager/logs/gui.log- Check permissions (may need admin for some ports)
- Verify no antivirus blocking
- Try running as administrator
- Check firewall settings
- Frozen UI: Press
Ctrl/Cmd+Rto refresh - Missing Buttons: Resize window
- Theme Issues: Toggle theme twice
- Font Issues: Check system font settings
- Missing Reservations: Check if database exists
- Can't Reserve: Ensure port is not in use
- Import Fails: Verify JSON format
Press Ctrl/Cmd+P to open command palette:
- Quick access to all functions
- Fuzzy search commands
- Recent commands history
Enable in settings to:
- Get notifications when ports become available
- Alert when reserved ports are accessed
- Track port usage statistics
Port Manager GUI integrates with:
- System tray for quick access
- Native notifications
- Clipboard for easy copying
- File system for import/export
Q: Can I reserve system ports (< 1024)? A: Yes, but you'll need administrator privileges to actually use them.
Q: What happens to reservations if I uninstall?
A: Reservations are stored in ~/.portmanager/. Back up this folder to preserve data.
Q: Can multiple users share reservations? A: Yes, through the export/import feature. Consider using a shared network location.
Q: How do I reset everything?
A: Delete ~/.portmanager/ folder and restart the application.
Q: Is there a CLI version?
A: Yes! All features are available via CLI. Type portmanager --help.
For more help, visit our documentation or use the in-app help system (Ctrl/Cmd+?).