A modern, web-based system monitor inspired by htop with file browser and process transparency
Project description
webtask 🖥️
webtask python package to start web top version in browser, [kill] like a pro!
A modern, web-based system monitor inspired by htop with advanced file browsing, process transparency layers, and miniature file previews. Monitor your system processes through a sleek terminal-style web interface with real-time updates and comprehensive process management capabilities.
✨ Features
🔄 Real-time Process Monitoring
- Live CPU and memory usage tracking with color-coded indicators
- Process hierarchy visualization with parent-child relationships
- Advanced transparency layers showing process importance levels
- Interactive process selection and detailed information modals
🗂️ Integrated File Browser
- Complete virtual file system navigation (/bin, /etc, /var, /usr)
- Real file content preview with syntax highlighting
- Directory breadcrumb navigation
- File type recognition with appropriate icons
🔍 Miniature Process Previews
- Bash Scripts: Terminal-style preview with actual script content
- HTML Web Pages: Rendered at 10% scale showing live webpage content
- Service Files: Status indicators with configuration previews
- Port Services: Connection information and service details
🎯 Advanced Process Management
- Kill by PID, service name, port number, or username
- Multiple signal types (SIGTERM, SIGKILL, SIGINT, SIGHUP, SIGUSR1, SIGUSR2)
- Bulk operations on filtered processes
- Process dependency tracking
👁️ Transparency System
- Kernel Processes: 20% opacity (most background)
- System Processes: 30% opacity
- Background Services: 50% opacity
- User Services: 70% opacity
- User Applications: 90% opacity (most visible)
⌨️ Keyboard Shortcuts
| Key | Action |
|---|---|
F1 |
Toggle advanced controls |
F2 |
Open file browser |
F5 |
Toggle tree view |
F6 |
Change sort order |
F9 |
Kill selected process |
F10 or q |
Quit webtask |
ESC |
Close modals/dropdowns |
🚀 Quick Start
Installation
pip install webtask
Usage
Simply run the command to start webtask:
webtask
This will:
- Start a local web server on
http://localhost:8000 - Automatically open webtask in your default browser
- Begin real-time system monitoring with file browser capabilities
Advanced Usage
# Custom host and port
webtask --host 0.0.0.0 --port 9000
# Disable auto-browser opening
webtask --no-browser
# Check version
webtask --version
Alternative Installation
Using Poetry (for development):
git clone https://github.com/devopsterminal/webtask.git
cd webtask
poetry install
poetry run webtask
🎨 Interface Overview
System Stats Header
- Real-time CPU and memory usage bars with gradient indicators
- System load average and uptime counter
- Color-coded resource utilization
Advanced Controls Panel (F1)
- Kill by PID, service name, port, or user
- Signal type selection for graceful or forced termination
- Bulk operations on filtered processes
Process List with Previews
- PID: Process identifier with hierarchy indicators
- USER: Process owner with permission levels
- CPU%/MEM%: Resource usage with visual highlighting
- PORT: Network port information with service detection
- COMMAND: Full command line with truncation
- PREVIEW: Miniature file/service preview thumbnail
- ACTION: Advanced kill options with signal selection
File Browser (F2)
- Navigate through system directories
- View actual file content with syntax highlighting
- File type recognition and appropriate previews
- Breadcrumb navigation for easy directory traversal
🛠️ Architecture
Modular Design
webtask/static/
├── index.html # Main HTML structure
├── styles.css # Core styling and responsive design
├── webtask.js # Main application logic
├── process-data.js # Process simulation and data engine
├── file-system.js # Virtual file system implementation
├── file-icons.css # File type styling and icons
├── config.json # Application configuration
└── manifest.json # Progressive Web App manifest
Process Transparency Logic
The transparency system helps identify process importance:
- System/Kernel: Highly transparent (20-30%) - critical but background
- Services: Moderately transparent (50-70%) - important but service-level
- Applications: Least transparent (90%) - direct user interaction
File Preview System
- HTML Files: Rendered using iframe with 10% CSS transform scale
- Script Files: Syntax-highlighted code preview with line numbers
- Config Files: Structured display with key-value highlighting
- Log Files: Real-time log tail with color coding
🔧 Configuration
WebTop can be configured through config.json:
{
"webtop": {
"transparency": {
"system_processes": 0.3,
"user_processes": 0.9
},
"preview": {
"html_scale": 0.1,
"thumbnail_size": {"width": 60, "height": 40}
},
"process_monitor": {
"update_interval": 2000,
"max_processes": 100
}
}
}
🧪 Development
Requirements
- Python 3.7+
- Poetry (for dependency management)
- Modern web browser with ES6+ support
Setup
git clone https://github.com/devopsterminal/webtop.git
cd webtop
poetry install
poetry run webtop
Running Tests
poetry run pytest --cov=webtop
Code Quality
poetry run black webtop tests # Format code
poetry run flake8 webtop tests # Lint code
poetry run mypy webtop # Type checking
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Development Workflow
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Make changes and add tests
- Run the test suite (
poetry run pytest) - Format code (
poetry run black .) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Feature Ideas
- Real system integration (replace simulation)
- Docker container monitoring
- Network connection visualization
- Custom process grouping
- Export capabilities for system snapshots
- Plugin system for custom metrics
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Inspired by the excellent htop system monitor
- Built with modern web technologies for cross-platform compatibility
- File system design inspired by Unix/Linux directory structures
📊 Technical Specifications
Browser Compatibility
- Chrome/Chromium 80+
- Firefox 75+
- Safari 13+
- Edge 80+
Performance
- Handles 100+ processes efficiently
- 2-second update intervals
- Responsive design for 800px+ screens
- Progressive Web App capabilities
Security
- No external dependencies for frontend
- Local-only operation (no data transmission)
- Read-only file system simulation
- Process operations are simulated (safe for demonstration)
Made with ❤️ for system administrators and developers who love comprehensive, visual tools.
Version 2.0.0 - Now with file browsing and transparency layers!
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file webtask-2.0.1.tar.gz.
File metadata
- Download URL: webtask-2.0.1.tar.gz
- Upload date:
- Size: 34.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.3 CPython/3.11.12 Linux/6.14.6-300.fc42.x86_64
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d1da27980a453896c6f0223fdb9f6a88733c81c953ddba9b9ffc7f46c7b339f
|
|
| MD5 |
4d5df6bc99c905803523dc42e1fbd305
|
|
| BLAKE2b-256 |
f47d6b4876e58d2c4a96e15e0c882f9101271f41ce2aafac8dd032f9005cd90c
|
File details
Details for the file webtask-2.0.1-py3-none-any.whl.
File metadata
- Download URL: webtask-2.0.1-py3-none-any.whl
- Upload date:
- Size: 35.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.3 CPython/3.11.12 Linux/6.14.6-300.fc42.x86_64
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
190cb9a6943517e6c4e81ab51e48c829679e261026281a4dcf519ff35ecc2ef0
|
|
| MD5 |
f8fc1441394c2b5e5084cf325c10d07b
|
|
| BLAKE2b-256 |
d05a0ee501a3123f3a6b1b3e295f68af17ab121f1ca2dcaa2c433b1bae0a27f1
|