Skip to main content

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.

webtask-logo.svg

✨ 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:

  1. Start a local web server on http://localhost:8000
  2. Automatically open webtask in your default browser
  3. 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

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Make changes and add tests
  4. Run the test suite (poetry run pytest)
  5. Format code (poetry run black .)
  6. Commit your changes (git commit -m 'Add some AmazingFeature')
  7. Push to the branch (git push origin feature/AmazingFeature)
  8. 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

webtask-2.0.4.tar.gz (34.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

webtask-2.0.4-py3-none-any.whl (35.7 kB view details)

Uploaded Python 3

File details

Details for the file webtask-2.0.4.tar.gz.

File metadata

  • Download URL: webtask-2.0.4.tar.gz
  • Upload date:
  • Size: 34.1 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

Hashes for webtask-2.0.4.tar.gz
Algorithm Hash digest
SHA256 72581db61af2c7db650f004a9e3fcfb31362e900bc7f2385371cdcc4bec4f178
MD5 6b79db213cb392905e4fe5620a896d80
BLAKE2b-256 a06e71dae2e53a6e2fc01206643947f11e96afedcafe04d711f4a5f8ead24902

See more details on using hashes here.

File details

Details for the file webtask-2.0.4-py3-none-any.whl.

File metadata

  • Download URL: webtask-2.0.4-py3-none-any.whl
  • Upload date:
  • Size: 35.7 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

Hashes for webtask-2.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 277ac3b8b92c2c1084976bb428c44b6610d4d834f03e8a416c037b0706d73244
MD5 05ccde8f72aa2f810d9768101b379777
BLAKE2b-256 2313b3a38b1e45f3fc14385ec90417ddae34e8dcf3d3a8083f0aeac4ab91e25a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page