Metadata-Version: 2.4
Name: netvitals
Version: 0.0.5
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.25.2
Requires-Dist: dnspython==2.8.0
Requires-Dist: psutil==7.2.2
Requires-Dist: pyobjc-core==12.2.2 ; sys_platform == 'darwin'
Requires-Dist: pyobjc-framework-cocoa==12.2.2 ; sys_platform == 'darwin'
Requires-Dist: rich==15.0.0
Requires-Dist: textual==8.2.8
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)
