CLIRunner Pro is a powerful and user-friendly web-based application designed to manage and execute CLI (Command Line Interface) projects efficiently. Built with Python, Flask, and SocketIO, it allows users to create, edit, run, stop, and monitor multiple CLI projects with advanced features like auto-restart, auto-launch on startup, environment variable support, real-time log viewing via WebSockets, comprehensive system performance monitoring, automatic dependency detection and installation, and detailed exportable reports. The application includes a system tray icon for minimized operation, with options to open the web dashboard, start/stop all projects, and exit. The dashboard is accessible via a web browser at http://localhost:5000, providing a fully responsive interface with a modern dark theme that works seamlessly on desktop, tablet, and mobile devices.
- Full CRUD Operations: Add, edit, remove, clone, and favorite CLI projects via the intuitive web dashboard
- Project Groups: Organize projects into custom groups for better management
- Project Notes: Add and save text notes for each project
- Favorites System: Mark important projects as favorites for quick access
- Bulk Operations: Start/stop all projects or entire groups with a single click
- Project Cloning: Duplicate existing projects with all settings to quickly create similar configurations
- Automatic Detection: Automatically scans project directories for dependency files
- Supported Package Managers:
- Python:
requirements.txt→pip install -r requirements.txt - Node.js:
package.json→npm install - PHP:
composer.json→composer install - Ruby:
Gemfile→bundle install - Go:
go.mod→go mod download
- Python:
- Visual Indicators: Dependency cards show package manager type, file name, and package count
- One-Click Installation: Install all dependencies with a single button click
- Installation Tracking: All dependency installations logged in project history
- Timeout Protection: 5-minute timeout prevents hanging installations
- Individual Control: Run, stop, and restart projects independently
- Auto-Restart: Configure projects to automatically restart on failure with retry counter
- Auto-Launch: Enable projects to start automatically when CLIRunner launches
- Scheduled Tasks: Schedule projects to start automatically at specific times (HH:MM format)
- Manual Override: Manually stopped projects won't auto-restart until manually restarted
- Process Monitoring: Real-time tracking of process IDs and exit codes
- Live Logs: View project logs in real-time using WebSockets with syntax highlighting
- Live Uptime Display: Real-time uptime updates for running projects (updated every second)
- System Performance: Real-time dashboard showing CPU, memory, disk, and network usage
- Performance Charts: Historical CPU and memory usage visualization with Chart.js
- Restart Counter: Track how many times each project has been auto-restarted
- Per-Project Resources: Monitor CPU, memory, and thread usage for each running project
- Status Indicators: Visual pulse animations show running/stopped status at a glance
- Summary Reports: Generate overview reports for all projects with custom date ranges
- Project Reports: Detailed individual project statistics and event history
- CSV Export: Export reports as CSV files for analysis in Excel or other tools
- Metrics Tracked: Total starts, stops, restarts, average uptime, total uptime, current status
- Event History: Complete timeline of project events with timestamps and details
- Event Types: Tracks start, stop, restart, scheduled start, dependency installation, and errors
- Date Filtering: Filter reports by custom date ranges for specific time periods
- Python 3.9 or higher
- pip (Python package manager)
- Modern web browser (Chrome, Firefox, Edge, Safari)
- Node.js/npm (optional, only if managing Node.js projects)
-
Clone the Repository:
git clone https://github.com/Jesewe/CLIRunner.git cd CLIRunner -
Install Dependencies: Install the required Python packages using pip:
pip install -r requirements.txt
-
Run the Application: Launch the application by executing:
python main.py
The application will start a web server on port 5000. Access the dashboard at http://localhost:5000 in your web browser.
Developed by: Jesewe
Built with: Flask, Socket.IO, Chart.js, psutil, pystray