killportall
v1.1.0
Published
A cross-platform Node.js CLI tool for efficiently killing processes on specified ports
Maintainers
Readme
killportall
A powerful cross-platform Node.js CLI tool for efficiently killing processes on specified ports with detailed logging and interactive mode.
Features
- 🎯 Kill processes on single or multiple ports
- 📊 Interactive mode to select ports from a list
- 🔄 Configurable retry mechanism
- 📝 Detailed process information display
- ⚙️ Configuration file support
- 🖥️ Cross-platform support (Windows, macOS, Linux)
- 🎨 JSON output format for scripting
- ♿ Accessibility support (NO_COLOR, screen reader friendly)
- 🚀 Fast and efficient port killing
- 🔍 Debug mode for troubleshooting
- 🛡️ Robust error handling
Quick Start
# Install globally
npm install -g killportall
# Kill a single port
killportall 3000
# Kill multiple ports
killportall 3000 8080 5000
# Interactive mode
killportall -iInstallation
Requirements: Node.js >= 18.0.0
Global Installation (Recommended)
npm install -g killportallLocal Installation
npm install killportallDevelopment Setup
# Clone the repository
git clone https://github.com/siri1410/killportall.git
# Install dependencies
cd killportall
npm install
# Link for development
npm linkUsage
Basic Commands
# Kill a single port
killportall 3000
# Kill multiple ports
killportall 3000 8080 5000
# Kill a range of ports
killportall 3000-3005
# Interactive mode
killportall -i
# JSON output
killportall 3000 --json
# With retries
killportall 3000 --retries 5
# With custom timeout
killportall 3000 --timeout 2000Command Line Options
| Option | Description | Default |
|--------|-------------|---------|
| -r, --retries <number> | Number of retry attempts | 3 |
| -t, --timeout <ms> | Timeout between retries | 1000 |
| -i, --interactive | Run in interactive mode | false |
| -j, --json | Output results in JSON format | false |
| --no-color | Disable colored output | - |
| --accessible | Use text labels instead of symbols | - |
| --config <key=value> | Set configuration value | - |
| -V, --version | Display version number | - |
| -h, --help | Display help information | - |
Configuration
Create a .killportallrc.json file in your home or project directory:
{
"retries": 3,
"timeout": 1000,
"interactive": false,
"outputFormat": "text"
}Debug Mode
# Enable debug logging
DEBUG=killportall:* killportall 3000
# Enable specific debug categories
DEBUG=killportall:cli,killportall:config killportall 3000Accessibility
killportall supports accessibility features for users with visual impairments or those using screen readers.
# Disable colored output
killportall 3000 --no-color
# Use text labels instead of symbols (screen reader friendly)
killportall 3000 --accessible
# Output: [OK] Port 3000: Process killed successfully
# Combine both for maximum accessibility
killportall 3000 --no-color --accessibleEnvironment Variables:
NO_COLOR- Set to any value to disable colors (see no-color.org)FORCE_COLOR- Set to1to force colors,0to disable
# Using environment variables
NO_COLOR=1 killportall 3000
FORCE_COLOR=0 killportall 3000API Usage
import { killPorts } from 'killportall';
async function cleanupPorts() {
try {
const results = await killPorts([3000, 3001], {
retries: 3,
timeout: 1000
});
console.log('Results:', results);
} catch (error) {
console.error('Error:', error);
}
}Error Handling
The tool handles various error scenarios:
- Invalid port numbers (outside 1-65535 range)
- Permission issues (requires elevated privileges)
- Process not found on port
- Failed kill attempts
- Configuration errors
- Network interface issues
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Development Guidelines
- Follow ESM module syntax
- Maintain cross-platform compatibility
- Add tests for new features
- Update documentation
- Follow semantic versioning
Publication Steps
For Maintainers
- Prepare for publication:
npm version patch # or minor/major
npm test
npm login- Test locally:
npm link
killportall --version- Publish:
npm run clean
npm run link
npm run reset
npm run setup
npm publish
# or for beta
npm publish --tag beta- Create release:
git tag v1.1.0
git push origin v1.1.0Version Guidelines
- MAJOR (1.x.x): Breaking changes
- MINOR (x.1.x): New features (backward compatible)
- PATCH (x.x.1): Bug fixes (backward compatible)
License
MIT © Sireesh Yarlagadda
Support
- GitHub Issues: Report Bug
- Email: [email protected]
Acknowledgments
- Cross-platform support inspired by Node.js community
- CLI design influenced by popular tools like npm and yarn
