Metadata-Version: 2.4
Name: systemreports
Version: 2.0.0
Summary: Cross-platform system report with a local web dashboard (Windows, macOS, Linux).
Home-page: https://github.com/sriramsreedhar/systemreports.git
Author: Sriram Sreedhar
Author-email: sriramsreedhar003@gmail.com
License: Apache-2.0
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Requires-Dist: psutil>=5.9.0
Requires-Dist: flask>=2.0.0
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# SystemReports

Cross-platform system metrics with a **local web dashboard** (Windows, macOS, Linux) and optional CLI/JSON output.

- **GitHub:** [github.com/sriramsreedhar/systemreports](https://github.com/sriramsreedhar/systemreports.git)
- **License:** [Apache-2.0](LICENSE)

## Screenshot

![System report web dashboard](docs/dashboard-screenshot.png)

The UI shows CPU, memory, OS, disk (including I/O), network (interfaces, traffic, optional listening ports), top processes, and uptime. Use **Refresh now** or enable **Auto-refresh** to keep values current.

## Features

- **Web dashboard** — Run `systemreports` and open the URL in your browser (default: `http://127.0.0.1:5050/`).
- **CLI / JSON** — `systemreports --cli` for a text summary; `systemreports --json` for full JSON.
- **Legacy** — Original CentOS-oriented script: `legacy_cli.py` (Unix-oriented).

**Requirements:** Python 3.8+, [psutil](https://github.com/giampaolo/psutil), [Flask](https://flask.palletsprojects.com/).

## Install

```bash
pip install -e .
# or
pip install systemreports
```

## Run the dashboard

```bash
systemreports
```

Other useful options:

```bash
# Do not open a browser automatically
systemreports --no-browser

# Listen on all interfaces (use only on trusted networks)
systemreports --host 0.0.0.0 --port 5050
```

## API

- `GET /api/report` — JSON snapshot (includes listening ports when permitted).
- `GET /api/report?ports=0` — Skip port enumeration (fewer permission prompts).

You can also run the module directly: `python -m systemreports`.

## Publishing to PyPI

Use a **dedicated virtualenv** for releases if other tools pin an old **packaging** (for example some stacks require `packaging<25`).

```bash
python -m venv .venv-release
source .venv-release/bin/activate   # Windows: .venv-release\Scripts\activate
pip install --upgrade build twine packaging
python -m build
python -m twine check dist/*
python -m twine upload dist/*
```

If `twine check` / `twine upload` fails with **unrecognized or malformed field `license-file`**, upgrade **`packaging`** (and **twine**). Wheels use metadata 2.4; older `packaging` does not understand the `License-File` field. See [pypa/twine#1216](https://github.com/pypa/twine/issues/1216).

## More detail

See [README.rst](README.rst) for the original project notes and older pip/output examples.
