{"id":49576819,"url":"https://github.com/mrvi0/pyker","last_synced_at":"2026-05-03T17:36:10.019Z","repository":{"id":310574649,"uuid":"1040055616","full_name":"mrvi0/pyker","owner":"mrvi0","description":"Lightweight Python process manager with beautiful CLI tables, log rotation, and adaptive display. No sudo required!","archived":false,"fork":false,"pushed_at":"2026-01-12T08:31:18.000Z","size":68,"stargazers_count":11,"open_issues_count":1,"forks_count":4,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-12T18:11:27.454Z","etag":null,"topics":["automation","background","cli","daemon-manager","monitoring","process-manager","python"],"latest_commit_sha":null,"homepage":"https://b4dcats.github.io/projects/pyker/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mrvi0.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-18T11:45:18.000Z","updated_at":"2026-01-12T17:43:28.000Z","dependencies_parsed_at":"2025-08-19T01:14:57.766Z","dependency_job_id":"9f88ab8f-e48e-4fbc-baf5-9c5eefcacc12","html_url":"https://github.com/mrvi0/pyker","commit_stats":null,"previous_names":["mrvi0/pyker"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mrvi0/pyker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrvi0%2Fpyker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrvi0%2Fpyker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrvi0%2Fpyker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrvi0%2Fpyker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrvi0","download_url":"https://codeload.github.com/mrvi0/pyker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrvi0%2Fpyker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32579031,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","background","cli","daemon-manager","monitoring","process-manager","python"],"created_at":"2026-05-03T17:36:06.708Z","updated_at":"2026-05-03T17:36:10.013Z","avatar_url":"https://github.com/mrvi0.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pyker - Simple Python Process Manager\n\n![Python](https://img.shields.io/badge/python-3.6+-blue.svg)\n![License](https://img.shields.io/badge/license-MIT-green.svg)\n![Platform](https://img.shields.io/badge/platform-linux%20%7C%20macos%20%7C%20windows-lightgrey.svg)\n![Dependencies](https://img.shields.io/badge/dependencies-minimal-brightgreen.svg)\n\nA lightweight, user-friendly tool for managing Python scripts. Run Python processes in the background, monitor their status, and manage logs with ease.\n\n## ✨ Features\n\n- 🚀 **Simple Setup** - No sudo required, works in user space\n- 📊 **Process Monitoring** - Real-time CPU and memory usage\n- 📝 **Automatic Logging** - Each process gets its own log file\n- 🔄 **Log Rotation** - Configurable log rotation to prevent disk space issues\n- 📱 **Adaptive Interface** - Responsive tables that work on any terminal size\n- 🎨 **Color-coded Status** - Visual status indicators with symbols\n- ⚡ **Fast Operations** - Start, stop, restart processes instantly\n- 📋 **Detailed Info** - Get comprehensive process information\n- ⌨️ **Tab Completion** - Auto-complete commands and process names\n\n## 🔧 Installation\n\n### One-Line Installation (Recommended)\n\n```bash\n# Download and run install script\ncurl -sSL https://raw.githubusercontent.com/mrvi0/pyker/main/install.sh | bash\n```\n\nOr with wget:\n```bash\nwget -qO- https://raw.githubusercontent.com/mrvi0/pyker/main/install.sh | bash\n```\n\n### Python Installer\n\n```bash\n# Download and run Python installer\ncurl -sSL https://raw.githubusercontent.com/mrvi0/pyker/main/install.py | python3\n```\n\n### Manual Installation\n\n```bash\n# Clone repository\ngit clone https://github.com/mrvi0/pyker.git\ncd pyker\n\n# Run installer (no sudo required!)\npython3 install.py\n```\n\n### From Source\n\n```bash\n# Install psutil dependency\npip3 install --user psutil\n\n# Copy pyker to local bin\nmkdir -p ~/.local/bin\ncp pyker.py ~/.local/bin/pyker\nchmod +x ~/.local/bin/pyker\n\n# Add to PATH (add this line to ~/.bashrc)\nexport PATH=\"$HOME/.local/bin:$PATH\"\n```\n\n## 🚀 Quick Start\n\n```bash\n# Start a Python script\npyker start mybot /path/to/script.py\n\n# Start with virtual environment\npyker start webapp app.py --venv ./venv\n\n# List all processes\npyker list\n\n# View process logs\npyker logs mybot\n\n# Get detailed process info\npyker info mybot\n\n# Stop a process\npyker stop mybot\n\n# Restart a process\npyker restart mybot\n\n# Delete a process\npyker delete mybot\n```\n\n## ⌨️ Tab Completion\n\nTab completion is automatically installed and works with:\n\n- **Commands**: `pyker \u003cTAB\u003e` shows available commands\n- **Process names**: `pyker stop \u003cTAB\u003e` completes with existing processes  \n- **Files**: `pyker start mybot \u003cTAB\u003e` completes Python file paths\n- **Options**: `pyker logs mybot \u003cTAB\u003e` shows available flags\n\n*Restart your terminal after installation to enable completion.*\n\n## 🐍 Virtual Environment Support\n\nPyker supports running scripts with virtual environments:\n\n```bash\n# Using relative path\npyker start myapp app.py --venv ./venv\n\n# Using absolute path  \npyker start worker worker.py --venv /home/user/projects/myproject/venv\n\n# Works with conda environments too\npyker start analyzer data.py --venv /home/user/miniconda3/envs/myenv\n```\n\n**Requirements:**\n- Virtual environment must exist and be properly set up\n- Pyker automatically detects Python executable in `bin/python` (Linux/macOS) or `Scripts/python.exe` (Windows)\n- Environment information is saved and used during restarts\n\n## 📋 Commands\n\n| Command | Description | Example |\n|---------|-------------|---------|\n| `start \u003cname\u003e \u003cscript\u003e` | Start a new process | `pyker start bot script.py` |\n| `stop \u003cname\u003e` | Stop a running process | `pyker stop bot` |\n| `restart \u003cname\u003e` | Restart a process | `pyker restart bot` |\n| `delete \u003cname\u003e` | Remove process from list | `pyker delete bot` |\n| `list` | Show all processes in table | `pyker list` |\n| `logs \u003cname\u003e` | Show process logs | `pyker logs bot -f` |\n| `info [name]` | Show detailed information | `pyker info bot` |\n| `uninstall` | Uninstall Pyker completely | `pyker uninstall` |\n\n### Command Options\n\n- `start --auto-restart` - Enable automatic restart on failure\n- `start --venv PATH` - Use virtual environment (e.g., `./venv`, `/path/to/venv`)\n- `logs -f` - Follow logs in real-time\n- `logs -n 100` - Show last 100 lines\n\n## 📊 Process Status Display\n\n### Full Table (Wide Terminals)\n```\nProcess List:\n┌───────────┬────────┬─────┬───────┬───────────────────┬───────────────────┬──────────────────┐\n│Name       │PID     │CPU% │RAM    │Started            │Stopped            │Script            │\n├───────────┼────────┼─────┼───────┼───────────────────┼───────────────────┼──────────────────┤\n│✓ webserver│123456  │2.1  │45.2   │2025-08-19 09:30:15│-                  │server.py         │\n│✗ worker   │-       │0.0  │0.0    │2025-08-19 09:25:10│2025-08-19 10:15:30│worker.py         │\n└───────────┴────────┴─────┴───────┴───────────────────┴───────────────────┴──────────────────┘\n\nStatistics: Total: 2 | Running: 1 | Stopped: 1\n```\n\n### Compact Table (Narrow Terminals)\n```\nProcess List:\n┌──────────────────┬──────────┬───────────────┐\n│Name              │PID       │Script         │\n├──────────────────┼──────────┼───────────────┤\n│✓ webserver       │123456    │server.py      │\n│✗ worker          │-         │worker.py      │\n└──────────────────┴──────────┴───────────────┘\n\nTotal: 2 | Running: 1 | Stopped: 1\n```\n\n### Status Symbols\n- ✓ (Green) - Process is running\n- ✗ (Red) - Process is stopped\n- ⚠ (Yellow) - Process error\n\n## 📝 Detailed Process Information\n\n```bash\npyker info mybot\n```\n\nOutput:\n```\nProcess Information: mybot\nStatus: ✓ Running\nPID: 123456\nScript: /home/user/scripts/bot.py\nCPU Usage: 2.1%\nMemory: 45.2 MB\nStarted: 2025-08-19 09:30:15\nLog file: /home/user/.pyker/logs/mybot.log\nAuto restart: No\nVirtual env: /home/user/myproject/venv\nPython executable: /home/user/myproject/venv/bin/python\n```\n\n## ⚙️ Configuration\n\nPyker uses a configuration file at `~/.pyker/config.json` for advanced settings:\n\n```json\n{\n  \"log_rotation\": {\n    \"enabled\": true,\n    \"max_size_mb\": 10,\n    \"max_files\": 5\n  },\n  \"process_check_interval\": 5,\n  \"auto_cleanup_stopped\": false\n}\n```\n\n### Configuration Options\n\n- `log_rotation.enabled` - Enable/disable automatic log rotation\n- `log_rotation.max_size_mb` - Maximum log file size before rotation (MB)\n- `log_rotation.max_files` - Number of rotated log files to keep\n- `process_check_interval` - Process status check interval (seconds)\n- `auto_cleanup_stopped` - Automatically remove stopped processes\n\n## 📁 File Structure\n\n```\n~/.pyker/\n├── processes.json      # Process state information\n├── config.json         # Configuration settings\n└── logs/               # Process log files\n    ├── mybot.log       # Current log\n    ├── mybot.log.1     # Rotated log (newest)\n    ├── mybot.log.2     # Rotated log\n    └── ...\n```\n\n## 🎯 Why Pyker?\n\n- **Python-first**: Built specifically for Python developers\n- **Zero configuration**: Works out of the box with sensible defaults\n- **User-friendly**: No complex setup or root permissions required\n- **Lightweight**: Minimal dependencies and resource usage\n- **Visual**: Beautiful tables and colored output that adapt to any terminal\n- **Portable**: Runs anywhere Python runs\n\n## 🔍 Troubleshooting\n\n### Common Issues\n\n**Q: Command not found after installation**\n```bash\n# Check if /usr/local/bin is in your PATH\necho $PATH\n\n# Or run directly\n/usr/local/bin/pyker list\n```\n\n**Q: Permission denied**\n```bash\n# Make sure the file is executable\nsudo chmod +x /usr/local/bin/pyker\n```\n\n**Q: Process shows as stopped but still running**\n```bash\n# Update process status\npyker list\n\n# Force kill if needed\nkill -9 \u003cPID\u003e\npyker delete \u003cname\u003e\n```\n\n**Q: Logs are too large**\n```bash\n# Enable log rotation in config\nnano ~/.pyker/config.json\n\n# Or manually clean\nrm ~/.pyker/logs/*.log.*\n```\n\n**Q: How to completely remove Pyker?**\n```bash\n# Use the built-in uninstall command\npyker uninstall\n\n# This will:\n# 1. Stop all running processes  \n# 2. Remove pyker executable\n# 3. Remove completion scripts\n# 4. Optionally remove logs and config\n```\n\n**Q: \"externally-managed-environment\" error during installation**\n```bash\n# This happens on newer Linux systems (PEP 668)\n# The installer will automatically try these solutions:\n\n# Option 1: System package manager (recommended)\nsudo apt install python3-psutil      # Ubuntu/Debian\nsudo dnf install python3-psutil      # Fedora\nsudo pacman -S python-psutil         # Arch Linux\n\n# Option 2: Using pipx\npipx install psutil\n\n# Option 3: Virtual environment\npython3 -m venv venv\nvenv/bin/pip install psutil\n# Then copy pyker to venv/bin/\n```\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- Built for Python developers who need simple process management\n- Thanks to the Python community for excellent libraries like `psutil`\n- Inspired by the need for lightweight process management tools\n\n---\n\n**Made with ❤️ for Python developers** ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrvi0%2Fpyker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrvi0%2Fpyker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrvi0%2Fpyker/lists"}