# mainskeeper CLI — PROPOSED product contract, not shipped software. Fictional demonstration data.
# screen: status-duplex · host: duplex-pi-probe · 80 columns · NO_COLOR · exit 0
# clock: Wed 30 Sep 2026 15:22 PDT · Fixture · incident state, now 15:22
# stderr lines (counting the prompt line as 1): none
duplex-pi-probe $ mainskeeper status
MainsKeeper · duplex-pi-probe · site Duplex            Wed 30 Sep 2026 15:22 PDT
✓ Monitoring normally · INC-0411 resolved 15:07:06 · ⇡ history arriving (1,248
pending)

COLLECTOR
  duplex-pi-probe
  Raspberry Pi 4
  Raspberry Pi OS 12
  site witness (always-on)
SERVICE
  ● running
  mainskeeperd 0.4.2 (systemd)
  restarted 14:52:10 PDT
  up 29 min
CLOUD
  ● connected
  Heartbeat on time · last contact 3 s ago · every 30 s
  enrollment valid
ROLES
  UPS monitoring on
  connectivity monitoring on
  applied (set in the dashboard)

UPS
  Duplex Utility UPS
  Tripp Lite SMART1500LCD
  USB
  NUT usbhid-ups (bundled)
  Power         ● on utility
  Charge        78% (recharging)
  UPS estimate  29 min est.
  Load          27%
  Input         119 V
  Battery temp  ▨ Unsupported
  reading       On schedule · read 3 s ago · expected every 30 s · at 15:21:57
                PDT
  contact       heartbeat 3 s ago (separate from reading age)
  freshness     every 30 s: On schedule ≤ 60 s · Overdue ≤ 90 s · Stale · last
                known beyond (allowance 30 s)
  powers        duplex-router, duplex-ont, duplex-camera-nvr (configured)

CONNECTIVITY
  ● 3 of 3 targets answering
  checked 20 s ago
  Gateway             192.168.77.1 · ICMP · ● answering · 2 ms
  DNS resolver        resolver.example.net · DNS query · ● answering · 14 ms
  MainsKeeper ingest  ingest.mainskeeper.example · HTTPS · ● answering · 41 ms

INCIDENT
  ✓ INC-0411 Contact lost — Duplex
  Resolved
  First evidence        13:41:00 PDT · local probe, received 15:02:06
  Grace period started  13:44:00 PDT · first missed heartbeat (server)
  Declared              13:49:00 PDT · email delivered 13:49:03
  Acknowledged          jp 13:52 — “ISP outage reported by neighbor”
  Recovered             15:02:06 PDT · fresh contact + probe evidence
  Resolved              15:07:06 PDT · stable for 5 min

HISTORY SYNC
  ⇡ History arriving
  1,248 pending (38.2 MB of 512 MB)
  oldest 13:41
  upload        last 15:21:48 PDT · batch 16 of 64 · drain ~22 min (estimate)
  replayed      14:03 on-battery record received 15:17:40 — Received late ·
                replayed
  gap           ▨ 14:30–14:52 No records · probe offline — none exist, not lost
                in transit
  policy        Historical backfill updates history at observation time and does
                not generate duplicate or obsolete notifications. Fresh evidence
                of an active condition remains alertable while a backlog drains.
                Ordinary transmission latency does not make a reading historical
                replay.
  details       mainskeeper queue

DASHBOARD
  https://mainskeeper.example.net/sites/duplex
  site          Recovered 15:02 · history arriving (1,248 pending)
  fleet         2 open incidents (1 critical, 1 warning; 0 acknowledged)
  collectors    4 of 6 expected collectors reporting · 1 workstation asleep
