A lightweight, user-friendly tool for managing Python scripts. Run Python processes in the background, monitor their status, and manage logs with ease.
- ๐ Simple Setup - No sudo required, works in user space
- ๐ Process Monitoring - Real-time CPU and memory usage
- ๐ Automatic Logging - Each process gets its own log file
- ๐ Log Rotation - Configurable log rotation to prevent disk space issues
- ๐ฑ Adaptive Interface - Responsive tables that work on any terminal size
- ๐จ Color-coded Status - Visual status indicators with symbols
- โก Fast Operations - Start, stop, restart processes instantly
- ๐ Detailed Info - Get comprehensive process information
- โจ๏ธ Tab Completion - Auto-complete commands and process names
# Download and run install script
curl -sSL https://raw.githubusercontent.com/mrvi0/pyker/main/install.sh | bashOr with wget:
wget -qO- https://raw.githubusercontent.com/mrvi0/pyker/main/install.sh | bash# Download and run Python installer
curl -sSL https://raw.githubusercontent.com/mrvi0/pyker/main/install.py | python3# Clone repository
git clone https://github.com/mrvi0/pyker.git
cd pyker
# Run installer (no sudo required!)
python3 install.py# Install psutil dependency
pip3 install --user psutil
# Copy pyker to local bin
mkdir -p ~/.local/bin
cp pyker.py ~/.local/bin/pyker
chmod +x ~/.local/bin/pyker
# Add to PATH (add this line to ~/.bashrc)
export PATH="$HOME/.local/bin:$PATH"# Start a Python script
pyker start mybot /path/to/script.py
# Start with virtual environment
pyker start webapp app.py --venv ./venv
# List all processes
pyker list
# View process logs
pyker logs mybot
# Get detailed process info
pyker info mybot
# Stop a process
pyker stop mybot
# Restart a process
pyker restart mybot
# Delete a process
pyker delete mybotTab completion is automatically installed and works with:
- Commands:
pyker <TAB>shows available commands - Process names:
pyker stop <TAB>completes with existing processes - Files:
pyker start mybot <TAB>completes Python file paths - Options:
pyker logs mybot <TAB>shows available flags
Restart your terminal after installation to enable completion.
Pyker supports running scripts with virtual environments:
# Using relative path
pyker start myapp app.py --venv ./venv
# Using absolute path
pyker start worker worker.py --venv /home/user/projects/myproject/venv
# Works with conda environments too
pyker start analyzer data.py --venv /home/user/miniconda3/envs/myenvRequirements:
- Virtual environment must exist and be properly set up
- Pyker automatically detects Python executable in
bin/python(Linux/macOS) orScripts/python.exe(Windows) - Environment information is saved and used during restarts
| Command | Description | Example |
|---|---|---|
start <name> <script> |
Start a new process | pyker start bot script.py |
stop <name> |
Stop a running process | pyker stop bot |
restart <name> |
Restart a process | pyker restart bot |
delete <name> |
Remove process from list | pyker delete bot |
list |
Show all processes in table | pyker list |
logs <name> |
Show process logs | pyker logs bot -f |
info [name] |
Show detailed information | pyker info bot |
uninstall |
Uninstall Pyker completely | pyker uninstall |
start --auto-restart- Enable automatic restart on failurestart --venv PATH- Use virtual environment (e.g.,./venv,/path/to/venv)logs -f- Follow logs in real-timelogs -n 100- Show last 100 lines
Process List:
โโโโโโโโโโโโโฌโโโโโโโโโฌโโโโโโฌโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโ
โName โPID โCPU% โRAM โStarted โStopped โScript โ
โโโโโโโโโโโโโผโโโโโโโโโผโโโโโโผโโโโโโโโผโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโค
โโ webserverโ123456 โ2.1 โ45.2 โ2025-08-19 09:30:15โ- โserver.py โ
โโ worker โ- โ0.0 โ0.0 โ2025-08-19 09:25:10โ2025-08-19 10:15:30โworker.py โ
โโโโโโโโโโโโโดโโโโโโโโโดโโโโโโดโโโโโโโโดโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโ
Statistics: Total: 2 | Running: 1 | Stopped: 1
Process List:
โโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโโโโโโ
โName โPID โScript โ
โโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโค
โโ webserver โ123456 โserver.py โ
โโ worker โ- โworker.py โ
โโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโโโโโโ
Total: 2 | Running: 1 | Stopped: 1
- โ (Green) - Process is running
- โ (Red) - Process is stopped
- โ (Yellow) - Process error
pyker info mybotOutput:
Process Information: mybot
Status: โ Running
PID: 123456
Script: /home/user/scripts/bot.py
CPU Usage: 2.1%
Memory: 45.2 MB
Started: 2025-08-19 09:30:15
Log file: /home/user/.pyker/logs/mybot.log
Auto restart: No
Virtual env: /home/user/myproject/venv
Python executable: /home/user/myproject/venv/bin/python
Pyker uses a configuration file at ~/.pyker/config.json for advanced settings:
{
"log_rotation": {
"enabled": true,
"max_size_mb": 10,
"max_files": 5
},
"process_check_interval": 5,
"auto_cleanup_stopped": false
}log_rotation.enabled- Enable/disable automatic log rotationlog_rotation.max_size_mb- Maximum log file size before rotation (MB)log_rotation.max_files- Number of rotated log files to keepprocess_check_interval- Process status check interval (seconds)auto_cleanup_stopped- Automatically remove stopped processes
~/.pyker/
โโโ processes.json # Process state information
โโโ config.json # Configuration settings
โโโ logs/ # Process log files
โโโ mybot.log # Current log
โโโ mybot.log.1 # Rotated log (newest)
โโโ mybot.log.2 # Rotated log
โโโ ...
- Python-first: Built specifically for Python developers
- Zero configuration: Works out of the box with sensible defaults
- User-friendly: No complex setup or root permissions required
- Lightweight: Minimal dependencies and resource usage
- Visual: Beautiful tables and colored output that adapt to any terminal
- Portable: Runs anywhere Python runs
Q: Command not found after installation
# Check if /usr/local/bin is in your PATH
echo $PATH
# Or run directly
/usr/local/bin/pyker listQ: Permission denied
# Make sure the file is executable
sudo chmod +x /usr/local/bin/pykerQ: Process shows as stopped but still running
# Update process status
pyker list
# Force kill if needed
kill -9 <PID>
pyker delete <name>Q: Logs are too large
# Enable log rotation in config
nano ~/.pyker/config.json
# Or manually clean
rm ~/.pyker/logs/*.log.*Q: How to completely remove Pyker?
# Use the built-in uninstall command
pyker uninstall
# This will:
# 1. Stop all running processes
# 2. Remove pyker executable
# 3. Remove completion scripts
# 4. Optionally remove logs and configQ: "externally-managed-environment" error during installation
# This happens on newer Linux systems (PEP 668)
# The installer will automatically try these solutions:
# Option 1: System package manager (recommended)
sudo apt install python3-psutil # Ubuntu/Debian
sudo dnf install python3-psutil # Fedora
sudo pacman -S python-psutil # Arch Linux
# Option 2: Using pipx
pipx install psutil
# Option 3: Virtual environment
python3 -m venv venv
venv/bin/pip install psutil
# Then copy pyker to venv/bin/- Fork the repository
- Create a 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
This project is licensed under the MIT License - see the LICENSE file for details.
- Built for Python developers who need simple process management
- Thanks to the Python community for excellent libraries like
psutil - Inspired by the need for lightweight process management tools
Made with โค๏ธ for Python developers