Concept 7 · Datum Fictional demonstration data — not real equipment
MainsKeeper

CLI voice: a ruled ledger in plain text

The terminal gets the same discipline as the grid: one label column, values on a shared left edge, numbers right-aligned to their unit, two spaces between fields instead of punctuation. Copper appears once, on the header line. Every meaning is in the words, so the NO_COLOR rendition loses nothing. Samples show the incident state at 15:22; every line is 92 columns or fewer.

mainskeeper status · on duplex-pi-probe

The local view from the Duplex probe. Recovery is its own line on the Server row; the backlog is a separate Sync block; the history gap and the unknown utility return time close the report.

colour · 92 columns
$ mainskeeper status
MainsKeeper  duplex-pi-probe                                    Wed 30 Sep 2026  15:22 local
site Duplex  ·  Raspberry Pi OS 12  ·  mainskeeperd 0.4.2  ·  up 30 min since 14:52

Roles         UPS monitoring on         connectivity monitoring on
Server        connected                 heartbeat 3 s ago     recovered 15:02

UPS           Duplex Utility UPS
  power       on utility
  charge         78 %                   recharging
  runtime        29 min  est.           UPS estimate, a prediction
  load           27 %
  input         119 V
  temp        not reported
  reading         3 s old

Probe         3 of 3 targets answering  last failure window 13:41 to 15:02

Sync          1,248 pending             382 of 1,630 uploaded
  oldest      13:41                     1 h 41 m old
  last upload 15:21:48
  batch       16 / 64
  retries     1                         15:19  server 503  accepted on retry
  drain       ~22 min  est.
  buffer      38.2 MB / 512 MB

History       gap 14:30 to 14:52        no records, probe offline
              utility return time unknown, sometime within the gap

Fictional demonstration data, not real equipment.  Output format is a design proposal.
NO_COLOR=1 · identical layout, no ANSI styling
$ mainskeeper status
MainsKeeper  duplex-pi-probe                                    Wed 30 Sep 2026  15:22 local
site Duplex  ·  Raspberry Pi OS 12  ·  mainskeeperd 0.4.2  ·  up 30 min since 14:52

Roles         UPS monitoring on         connectivity monitoring on
Server        connected                 heartbeat 3 s ago     recovered 15:02

UPS           Duplex Utility UPS
  power       on utility
  charge         78 %                   recharging
  runtime        29 min  est.           UPS estimate, a prediction
  load           27 %
  input         119 V
  temp        not reported
  reading         3 s old

Probe         3 of 3 targets answering  last failure window 13:41 to 15:02

Sync          1,248 pending             382 of 1,630 uploaded
  oldest      13:41                     1 h 41 m old
  last upload 15:21:48
  batch       16 / 64
  retries     1                         15:19  server 503  accepted on retry
  drain       ~22 min  est.
  buffer      38.2 MB / 512 MB

History       gap 14:30 to 14:52        no records, probe offline
              utility return time unknown, sometime within the gap

Fictional demonstration data, not real equipment.  Output format is a design proposal.

mainskeeper fleet ups · server view

The equipment grid as text. Sites are group headings with their mixed-state summary, so Broadwater never collapses into one power state. Unsupported values are spelled out as “not reported”; estimates carry “est.”.

colour · 92 columns
$ mainskeeper fleet ups
MainsKeeper  fleet  6 UPSs at 4 sites                               server view  15:22 local

  UPS                POWER            CHARGE   EST RUNTIME          LOAD            READING

Broadwater  1 of 2 UPSs on battery  ·  1 on utility, separate circuit
  BW Rack UPS        on battery 15:09   71 %   18 min est.          38 %                4 s
  BW Office UPS      on utility        100 %  not reported          12 %                5 s

Home        2 of 2 UPSs on utility
  Office Desk UPS    on utility        100 %   42 min est.          22 %                6 s
  Garage UPS         on utility        100 %  not reported  not reported               11 s

Shop        contact lost with 2 of 2 probes  ·  cause unknown
  Shop Bench UPS     last known 15:10  100 %   26 min est.          31 % 12 min, last known

Duplex      recovered 15:02  ·  uploading backlog, 1,248 pending
  Duplex Utility UPS on utility         78 %   29 min est.          27 %                3 s

Open incidents 3   collectors 4 of 6 reporting   UPSs 5 of 6 communicating
est. is the UPS prediction  ·  not reported means the UPS does not provide the value
Fictional demonstration data, not real equipment.  Output format is a design proposal.
NO_COLOR=1
$ mainskeeper fleet ups
MainsKeeper  fleet  6 UPSs at 4 sites                               server view  15:22 local

  UPS                POWER            CHARGE   EST RUNTIME          LOAD            READING

Broadwater  1 of 2 UPSs on battery  ·  1 on utility, separate circuit
  BW Rack UPS        on battery 15:09   71 %   18 min est.          38 %                4 s
  BW Office UPS      on utility        100 %  not reported          12 %                5 s

Home        2 of 2 UPSs on utility
  Office Desk UPS    on utility        100 %   42 min est.          22 %                6 s
  Garage UPS         on utility        100 %  not reported  not reported               11 s

Shop        contact lost with 2 of 2 probes  ·  cause unknown
  Shop Bench UPS     last known 15:10  100 %   26 min est.          31 % 12 min, last known

Duplex      recovered 15:02  ·  uploading backlog, 1,248 pending
  Duplex Utility UPS on utility         78 %   29 min est.          27 %                3 s

Open incidents 3   collectors 4 of 6 reporting   UPSs 5 of 6 communicating
est. is the UPS prediction  ·  not reported means the UPS does not provide the value
Fictional demonstration data, not real equipment.  Output format is a design proposal.

Voice rules

Labels left, values aligned

A 14-column label gutter, sub-fields indented two spaces. Numbers right-align in five columns so 78 % and 119 V share an edge.

Minimal punctuation

No colons, no brackets, no exclamation marks. Ranges read “13:41 to 15:02”. A single “·” separates facts on one line.

Words carry state

“on battery”, “last known 15:10”, “recovered 15:02”, “not reported”, “est.”. Colour is limited to the copper header, bold labels and dim notes, all optional.

Separate facts stay separate

Recovery, backlog and history gap are three lines, never one status. Contact lost is reported with “cause unknown”.

Monitoring only

There is no subcommand that shuts down, restarts, switches outlets or runs a self-test. Thresholds only change notifications.

Honest footer

Every sample ends with the fictional-data notice and the note that the output format is a design proposal.

Fictional demonstration data — not real equipment. Output format is a design proposal.