MainsKeeper · Porchlight · command line
The mainskeeper CLI speaks in plain sentences with sentence-case headings, then lays exact values out in an aligned list. Every status carries a symbol and a word, so nothing depends on colour. Colour stays quiet: coral headings, slate labels, status colours only on the symbol and its word.
Run on the probe itself. Incident & recovery state at 15:22: current status stays current while history uploads.Calm fleet state at 15:22.
duplex-pi-probe $ mainskeeper status MainsKeeper · duplex-pi-probe Wed 30 Sep 2026 · 15:22 Site Duplex · Raspberry Pi OS 12 · mainskeeperd 0.4.2 · up 30 min (restarted 14:52) ◐ Recovering. Back in touch since 15:02; older history is still uploading. What you see below is current. Delayed records land at the time they happened. This probe Roles ● UPS monitoring on ● Connectivity monitoring on Server ● Connected · heartbeat 3 s ago · reconnected 15:02 Probe ● 3 of 3 targets answering Last failure window 13:41 – 15:02 Duplex Utility UPS Power ● On utility Charge 78% (recharging) charge is not battery health Runtime 29 min UPS estimate Load 27% Input 119 V Temperature not reported Reading 3 s old History upload Progress ██████░░░░░░░░░░░░░░░░░░ 382 of 1,630 uploaded Pending 1,248 records · oldest from 13:41 (1 h 41 m old) Last upload 15:21:48 · batch 16 of 64 Retries 1 · at 15:19 the server said 503; accepted on retry Drain ~22 min at the current rate estimate Buffer 38.2 MB of 512 MB History gap ▨ 14:30 – 14:52 · no records (probe offline) Tip: `mainskeeper history --since 13:30` lists the delayed records in order. ──────────────────────────────────────────────────────────────────────────────────── Fictional demonstration data — not real equipment. Output format is a design proposal.
duplex-pi-probe $ mainskeeper status
MainsKeeper · duplex-pi-probe Wed 30 Sep 2026 · 15:22
Site Duplex · Raspberry Pi OS 12 · mainskeeperd 0.4.2 · up 30 min (restarted 14:52)
◐ Recovering. Back in touch since 15:02; older history is still uploading.
What you see below is current. Delayed records land at the time they happened.
This probe
Roles ● UPS monitoring on ● Connectivity monitoring on
Server ● Connected · heartbeat 3 s ago · reconnected 15:02
Probe ● 3 of 3 targets answering
Last failure window 13:41 – 15:02
Duplex Utility UPS
Power ● On utility
Charge 78% (recharging) charge is not battery health
Runtime 29 min UPS estimate
Load 27%
Input 119 V
Temperature not reported
Reading 3 s old
History upload
Progress ██████░░░░░░░░░░░░░░░░░░ 382 of 1,630 uploaded
Pending 1,248 records · oldest from 13:41 (1 h 41 m old)
Last upload 15:21:48 · batch 16 of 64
Retries 1 · at 15:19 the server said 503; accepted on retry
Drain ~22 min at the current rate estimate
Buffer 38.2 MB of 512 MB
History gap ▨ 14:30 – 14:52 · no records (probe offline)
Tip: `mainskeeper history --since 13:30` lists the delayed records in order.
────────────────────────────────────────────────────────────────────────────────────
Fictional demonstration data — not real equipment. Output format is a design proposal.duplex-pi-probe $ mainskeeper status MainsKeeper · duplex-pi-probe Wed 30 Sep 2026 · 15:22 Site Duplex · Raspberry Pi OS 12 · mainskeeperd 0.4.2 · up 12 days ● All good. Reporting normally, nothing waiting to upload. This probe Roles ● UPS monitoring on ● Connectivity monitoring on Server ● Connected · heartbeat 3 s ago Probe ● 3 of 3 targets answering Duplex Utility UPS Power ● On utility Charge 100% charge is not battery health Runtime 46 min UPS estimate Load 27% Input 119 V Temperature not reported Reading 3 s old History upload Pending Nothing waiting · last upload a few seconds ago Recently Yesterday 21:14 – 21:31 utility outage · 17 min on battery (measured) Resolved. This measures that outage, not battery capacity. ──────────────────────────────────────────────────────────────────────────────────── Fictional demonstration data — not real equipment. Output format is a design proposal.
duplex-pi-probe $ mainskeeper status
MainsKeeper · duplex-pi-probe Wed 30 Sep 2026 · 15:22
Site Duplex · Raspberry Pi OS 12 · mainskeeperd 0.4.2 · up 12 days
● All good. Reporting normally, nothing waiting to upload.
This probe
Roles ● UPS monitoring on ● Connectivity monitoring on
Server ● Connected · heartbeat 3 s ago
Probe ● 3 of 3 targets answering
Duplex Utility UPS
Power ● On utility
Charge 100% charge is not battery health
Runtime 46 min UPS estimate
Load 27%
Input 119 V
Temperature not reported
Reading 3 s old
History upload
Pending Nothing waiting · last upload a few seconds ago
Recently
Yesterday 21:14 – 21:31 utility outage · 17 min on battery (measured)
Resolved. This measures that outage, not battery capacity.
────────────────────────────────────────────────────────────────────────────────────
Fictional demonstration data — not real equipment. Output format is a design proposal.The same site-first order as the dashboard: what needs attention comes first, each site in two lines.
jp@studio $ mainskeeper sites 4 places · 3 need a look Collectors 4 of 6 · UPS 5 of 6 ■ Broadwater On battery · BW Rack UPS since 15:09 (13 min) · 71%, est. 18 min contact 4 s ago · live readings · not acknowledged ▲ Shop Contact lost with 2 of 2 probes — cause unknown · since 15:10 UPS last known 15:10: on utility, 100% · not acknowledged ◐ Duplex Recovering · contact restored 15:02 · 1,248 records uploading acknowledged by jp 13:52 · open until the backlog is verified ● Home All normal · 2 of 2 collectors · contact 6 s ago Next: `mainskeeper site broadwater` for readings and protected equipment. Fictional demonstration data — not real equipment. Output format is a design proposal.
jp@studio $ mainskeeper sites 4 places · 3 need a look Collectors 4 of 6 · UPS 5 of 6 ■ Broadwater On battery · BW Rack UPS since 15:09 (13 min) · 71%, est. 18 min contact 4 s ago · live readings · not acknowledged ▲ Shop Contact lost with 2 of 2 probes — cause unknown · since 15:10 UPS last known 15:10: on utility, 100% · not acknowledged ◐ Duplex Recovering · contact restored 15:02 · 1,248 records uploading acknowledged by jp 13:52 · open until the backlog is verified ● Home All normal · 2 of 2 collectors · contact 6 s ago Next: `mainskeeper site broadwater` for readings and protected equipment. Fictional demonstration data — not real equipment. Output format is a design proposal.
jp@studio $ mainskeeper sites
4 places · 3 need a look Collectors 4 of 6 · UPS 5 of 6
■ Broadwater On battery · BW Rack UPS since 15:09 (13 min) · 71%, est. 18 min
contact 4 s ago · live readings · not acknowledged
▲ Shop Contact lost with 2 of 2 probes — cause unknown · since 15:10
UPS last known 15:10: on utility, 100% · not acknowledged
◐ Duplex Recovering · contact restored 15:02 · 1,248 records uploading
acknowledged by jp 13:52 · open until the backlog is verified
● Home All normal · 2 of 2 collectors · contact 6 s ago
Next: `mainskeeper site broadwater` for readings and protected equipment.
Fictional demonstration data — not real equipment. Output format is a design proposal.jp@studio $ mainskeeper sites 4 places · all calm Collectors 6 of 6 · UPS 6 of 6 ● Broadwater All normal · 2 UPS on utility · contact 4 s ago ● Duplex All normal · nothing waiting to upload · contact 3 s ago ● Home All normal · 2 of 2 collectors · contact 6 s ago ● Shop All normal · 2 of 2 probes · contact 5 s ago Last event: Home weekly summary sent 09:00. Fictional demonstration data — not real equipment. Output format is a design proposal.
jp@studio $ mainskeeper sites 4 places · all calm Collectors 6 of 6 · UPS 6 of 6 ● Broadwater All normal · 2 UPS on utility · contact 4 s ago ● Duplex All normal · nothing waiting to upload · contact 3 s ago ● Home All normal · 2 of 2 collectors · contact 6 s ago ● Shop All normal · 2 of 2 probes · contact 5 s ago Last event: Home weekly summary sent 09:00. Fictional demonstration data — not real equipment. Output format is a design proposal.
jp@studio $ mainskeeper sites 4 places · all calm Collectors 6 of 6 · UPS 6 of 6 ● Broadwater All normal · 2 UPS on utility · contact 4 s ago ● Duplex All normal · nothing waiting to upload · contact 3 s ago ● Home All normal · 2 of 2 collectors · contact 6 s ago ● Shop All normal · 2 of 2 probes · contact 5 s ago Last event: Home weekly summary sent 09:00. Fictional demonstration data — not real equipment. Output format is a design proposal.
Fictional demonstration data — not real equipment. Output format is a design proposal. MainsKeeper has no commands that control equipment.