Metadata-Version: 2.4
Name: netvitals
Version: 0.0.3
Summary: Internet connection monitor for macOS
Author: pybass
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Environment :: MacOS X
Classifier: Intended Audience :: End Users/Desktop
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: System :: Networking :: Monitoring
Requires-Dist: aiohttp~=3.14.3
Requires-Dist: cyclopts~=4.22.2
Requires-Dist: dnspython~=2.8
Requires-Dist: psutil~=7.2
Requires-Dist: pyobjc-core~=12.1 ; sys_platform == 'darwin'
Requires-Dist: pyobjc-framework-cocoa~=12.1 ; sys_platform == 'darwin'
Requires-Dist: rich~=15.0
Requires-Dist: textual~=8.2
Requires-Python: >=3.14
Project-URL: Repository, https://github.com/pybass/netvitals
Project-URL: Issues, https://github.com/pybass/netvitals/issues
Description-Content-Type: text/markdown

# netvitals

Internet connection monitor for macOS: warm/cold latency, DNS, VPN state, public IP.

> **Status:** Early development.

## Install

```sh
uv tool install netvitals
```

macOS only. Requires Python 3.14+.

## Usage

```sh
netvitals monitor start   # measure continuously in the background
netvitals                 # dashboard
netvitals tray start      # menu bar icon
netvitals snapshot        # measure once and print the result
```

The monitor does not come back after a reboot yet — start it again.

## Design

- [architecture](https://github.com/pybass/netvitals/blob/main/docs/architecture.md) — layers, dependency rules, the Core API, data flow.
- [probes](https://github.com/pybass/netvitals/blob/main/docs/probes.md) — what is measured and how.
- [monitor](https://github.com/pybass/netvitals/blob/main/docs/monitor.md) — cadence, scheduling, failure policy.
- [tray](https://github.com/pybass/netvitals/blob/main/docs/tray.md) — what each glyph means and why.
- [storage](https://github.com/pybass/netvitals/blob/main/docs/storage.md) — schema, deduplication, retention.
- [non-goals](https://github.com/pybass/netvitals/blob/main/docs/non-goals.md) — what netvitals deliberately will not do.

## License

[MIT](https://github.com/pybass/netvitals/blob/main/LICENSE)
