Clear at-a-glance status
Every feature and visual decision is measured against this outcome before it earns a place in the product.

A lightweight, local-first endpoint uptime and SLA monitor for web URLs, network devices, and services.
v0.2.1 source · Python 3.11+ · Linux, Windows, macOS · MIT
The problem
Developers, home-lab operators, small teams, and anyone responsible for a handful of important services often need more than a ping—but less than a hosted observability platform.
EyeNine watches HTTP, TCP, ICMP, and DNS checks, records recent history locally, and surfaces incident and recovery states. It intentionally does not replace distributed tracing, server-side metrics, or an always-on monitoring daemon.
That boundary keeps the first release focused: clear local monitoring while the application is running, with data and behavior the user can understand.
Product goals
Every feature and visual decision is measured against this outcome before it earns a place in the product.
Every feature and visual decision is measured against this outcome before it earns a place in the product.
Every feature and visual decision is measured against this outcome before it earns a place in the product.
Every feature and visual decision is measured against this outcome before it earns a place in the product.
Key decisions
A project story is more useful when it explains why the product looks and behaves this way.
The goal was focused monitoring without another service account, server, or subscription. A local Qt application keeps setup and ownership legible. The tradeoff is explicit: monitoring runs only while EyeNine is active.
The standard dashboard explains each endpoint. Matrix view compresses the same history into aligned rows for faster comparison. Both retain keyboard descriptions and recent failure context.
SQLite provides durable history without an external database. Retention can be scheduled or disabled, and CSV/JSON exports use explicit date ranges and descriptive filenames.
A red block is not enough. Recent checks explain connection failures, TLS problems, missing response content, and other causes so status can lead to action.
Light and dark themes, native notifications, tray behavior, pointer cursors, focus handling, and small-window layouts are treated as part of correctness—not optional polish.
Interface gallery
Each frame was captured from the current source with realistic seeded records in the application's repeatable QA harness.
Validation evidence
Major screens are rendered in both themes at minimum and standard window sizes, with visible text scanned for clipping.
Keyboard focus, pointer cursors, wheel behavior, view transitions, copy/edit actions, and error reasons are exercised.
TLS failures, retention behavior, exports, alert incidents, tray availability, and known platform limits are documented.
Technology
Python and PySide6 provide a cross-platform desktop application with native windowing and notification paths. SQLite keeps local history durable and portable. Platform packaging remains explicit because Qt applications are built on each target OS.
Trust and project health
Project actions
EyeNine is public work. The source, setup instructions, issue tracker, and release boundaries are open for inspection.