ground-control-tui


Nameground-control-tui JSON
Version 0.1.8 PyPI version JSON
download
home_pagehttps://github.com/alberto-rota/ground-control
SummaryA Python Textual app for monitoring VMs in the terminal
upload_time2024-12-09 10:10:55
maintainerNone
docs_urlNone
authorAlberto Rota
requires_python>=3.6
licenseGPLv3
keywords
VCS
bugtrack_url
requirements nvidia_ml_py plotext psutil setuptools textual
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Ground Control 🚀

[![PyPI version](https://badge.fury.io/py/ground-control-tui.svg)](https://badge.fury.io/py/ground-control-tui)
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
[![Python 3.6+](https://img.shields.io/badge/python-3.6+-blue.svg)](https://www.python.org/downloads/)

A modern, responsive Terminal User Interface (TUI) for real-time system monitoring, built with [Textual](https://textual.textualize.io/).

![Ground Control Demo](https://github.com/alberto-rota/ground-control/blob/main/assets/gc.png)

## Features

- **Real-time System Monitoring**
  - CPU usage per core with frequency tracking
  - Memory utilization
  - Disk I/O with read/write speeds
  - Network traffic monitoring
  - GPU metrics (if NVIDIA GPU is available)

- **Responsive Design**
  - Automatically adjusts layout based on terminal size
  - Supports horizontal, vertical, and grid layouts
  - Dynamic resizing with smooth transitions

- **Process Management**
  - View top-level user processes
  - Monitor system resource usage per process

## Installation

You can install Ground Control directly from PyPI:

```bash
pip install ground-control-tui
```

or install from source:

```bash
git clone https://github.com/alberto-rota/ground-control
cd ground-control
pip install -e .
```

## Quick Start

After installation, simply run:

```bash
groundcontrol
```

Or use it as a Python module:

```bash
python -m ground_control
```

## Usage

### Keyboard Controls

- `h`: Switch to horizontal layout
- `v`: Switch to vertical layout
- `g`: Switch to grid layout
- `a`: Toggle automatic layout
- `q`: Quit the application

### Layout Modes

Ground Control offers three layout modes:

1. **Grid Layout (Default)**: 2x2 grid arrangement
2. **Horizontal Layout**: All panels in a row
3. **Vertical Layout**: All panels in a column

The layout automatically adjusts based on your terminal size, but you can override this using the keyboard controls.

### Process Monitoring

To view top-level processes for the current user:

```bash
python -m ground_control.cli.process_list
```

## Requirements

- Python 3.6 or higher
- psutil
- textual
- plotext
- pynvml (optional, for NVIDIA GPU monitoring)

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

## License

This project is licensed under the GNU General Public License v3.0 - see the [LICENSE](LICENSE) file for details.

## Author

**Alberto Rota**  
Email: alberto1.rota@polimi.it  
GitHub: [@alberto-rota](https://github.com/alberto-rota)

## Acknowledgments

- Built with [Textual](https://textual.textualize.io/)
- System metrics provided by [psutil](https://github.com/giampaolo/psutil)
- GPU monitoring via [pynvml](https://github.com/nvidia/nvidia-ml-py)

---

For more information and updates, visit the [GitHub repository](https://github.com/alberto-rota/ground-control).

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/alberto-rota/ground-control",
    "name": "ground-control-tui",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": null,
    "author": "Alberto Rota",
    "author_email": "alberto1.rota@polimi.it",
    "download_url": "https://files.pythonhosted.org/packages/a0/81/96cd0fea139e4093406ea481b253339e74a526729e18a10385e7cee61e70/ground_control_tui-0.1.8.tar.gz",
    "platform": null,
    "description": "# Ground Control \ud83d\ude80\n\n[![PyPI version](https://badge.fury.io/py/ground-control-tui.svg)](https://badge.fury.io/py/ground-control-tui)\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n[![Python 3.6+](https://img.shields.io/badge/python-3.6+-blue.svg)](https://www.python.org/downloads/)\n\nA modern, responsive Terminal User Interface (TUI) for real-time system monitoring, built with [Textual](https://textual.textualize.io/).\n\n![Ground Control Demo](https://github.com/alberto-rota/ground-control/blob/main/assets/gc.png)\n\n## Features\n\n- **Real-time System Monitoring**\n  - CPU usage per core with frequency tracking\n  - Memory utilization\n  - Disk I/O with read/write speeds\n  - Network traffic monitoring\n  - GPU metrics (if NVIDIA GPU is available)\n\n- **Responsive Design**\n  - Automatically adjusts layout based on terminal size\n  - Supports horizontal, vertical, and grid layouts\n  - Dynamic resizing with smooth transitions\n\n- **Process Management**\n  - View top-level user processes\n  - Monitor system resource usage per process\n\n## Installation\n\nYou can install Ground Control directly from PyPI:\n\n```bash\npip install ground-control-tui\n```\n\nor install from source:\n\n```bash\ngit clone https://github.com/alberto-rota/ground-control\ncd ground-control\npip install -e .\n```\n\n## Quick Start\n\nAfter installation, simply run:\n\n```bash\ngroundcontrol\n```\n\nOr use it as a Python module:\n\n```bash\npython -m ground_control\n```\n\n## Usage\n\n### Keyboard Controls\n\n- `h`: Switch to horizontal layout\n- `v`: Switch to vertical layout\n- `g`: Switch to grid layout\n- `a`: Toggle automatic layout\n- `q`: Quit the application\n\n### Layout Modes\n\nGround Control offers three layout modes:\n\n1. **Grid Layout (Default)**: 2x2 grid arrangement\n2. **Horizontal Layout**: All panels in a row\n3. **Vertical Layout**: All panels in a column\n\nThe layout automatically adjusts based on your terminal size, but you can override this using the keyboard controls.\n\n### Process Monitoring\n\nTo view top-level processes for the current user:\n\n```bash\npython -m ground_control.cli.process_list\n```\n\n## Requirements\n\n- Python 3.6 or higher\n- psutil\n- textual\n- plotext\n- pynvml (optional, for NVIDIA GPU monitoring)\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.\n\n## License\n\nThis project is licensed under the GNU General Public License v3.0 - see the [LICENSE](LICENSE) file for details.\n\n## Author\n\n**Alberto Rota**  \nEmail: alberto1.rota@polimi.it  \nGitHub: [@alberto-rota](https://github.com/alberto-rota)\n\n## Acknowledgments\n\n- Built with [Textual](https://textual.textualize.io/)\n- System metrics provided by [psutil](https://github.com/giampaolo/psutil)\n- GPU monitoring via [pynvml](https://github.com/nvidia/nvidia-ml-py)\n\n---\n\nFor more information and updates, visit the [GitHub repository](https://github.com/alberto-rota/ground-control).\n",
    "bugtrack_url": null,
    "license": "GPLv3",
    "summary": "A Python Textual app for monitoring VMs in the terminal",
    "version": "0.1.8",
    "project_urls": {
        "Homepage": "https://github.com/alberto-rota/ground-control"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6ce708cc569f2c42c4aa8fcd9d85fd4ee20b88aa22790bb1984b8fa29810ee86",
                "md5": "6f8bf8883e6c2e228be10e2083690e90",
                "sha256": "77a100f6ed9a5292203b80dd4660f6c4fe62184c890022f2abd10dafc548c210"
            },
            "downloads": -1,
            "filename": "ground_control_tui-0.1.8-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6f8bf8883e6c2e228be10e2083690e90",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 27188,
            "upload_time": "2024-12-09T10:10:53",
            "upload_time_iso_8601": "2024-12-09T10:10:53.440418Z",
            "url": "https://files.pythonhosted.org/packages/6c/e7/08cc569f2c42c4aa8fcd9d85fd4ee20b88aa22790bb1984b8fa29810ee86/ground_control_tui-0.1.8-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a08196cd0fea139e4093406ea481b253339e74a526729e18a10385e7cee61e70",
                "md5": "80642e201495b348c889b9ec2a3cc279",
                "sha256": "b5a0077b54cef626dd643eee6925f4b94389b7622d321aa98a04c346b1196d52"
            },
            "downloads": -1,
            "filename": "ground_control_tui-0.1.8.tar.gz",
            "has_sig": false,
            "md5_digest": "80642e201495b348c889b9ec2a3cc279",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 23709,
            "upload_time": "2024-12-09T10:10:55",
            "upload_time_iso_8601": "2024-12-09T10:10:55.330108Z",
            "url": "https://files.pythonhosted.org/packages/a0/81/96cd0fea139e4093406ea481b253339e74a526729e18a10385e7cee61e70/ground_control_tui-0.1.8.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-09 10:10:55",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "alberto-rota",
    "github_project": "ground-control",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "nvidia_ml_py",
            "specs": [
                [
                    "==",
                    "12.535.161"
                ]
            ]
        },
        {
            "name": "plotext",
            "specs": [
                [
                    "==",
                    "5.3.2"
                ]
            ]
        },
        {
            "name": "psutil",
            "specs": [
                [
                    "==",
                    "6.0.0"
                ]
            ]
        },
        {
            "name": "setuptools",
            "specs": [
                [
                    "==",
                    "75.1.0"
                ]
            ]
        },
        {
            "name": "textual",
            "specs": [
                [
                    "==",
                    "0.89.1"
                ]
            ]
        }
    ],
    "lcname": "ground-control-tui"
}
        
Elapsed time: 0.91407s