DishWatch

Starlink · local API · no account

A night watch for your dish.

Signal, obstructions, throughput and power — read straight from the dish's own local API, once a second. Nothing leaves your network.

Notarized · Apple Silicon & Intel · macOS 14+ · MIT

Menu-bar panel · score 71 is amber on purpose (cyan starts at 75)

The channels

What the watch keeps

The dish already measures these. DishWatch is the instrument that stays after the fifteen-minute buffer rolls off.

01

Signal & obstruction

One health score, obstruction percentage, and how much sky is still unmapped. An imperfect reading is the honest one.

score
75+ cyan · 50–74 amber · below red
obstruction
percentage of sky blocked
mapping
how much remains unsurveyed
02

Throughput

Live up and down, plus peaks, from the dish's own counters — not a speed test. If nobody is transferring, the numbers stay small.

source
the dish's counters
not
an external benchmark
peaks
held across the window
03

Power & energy

Watts right now and accumulated watt-hours since boot. Built for setups where a 10 W swing is a plan, not a curiosity.

draw
watts, once a second
energy
Wh accumulated since boot
for
battery and solar
04

Outages

Dropouts counted as events: how many, the longest, and what percentage of the window was clean. Uptime as a ledger, not a vibe.

count
events, not an average
longest
worst single run
clean
share of the window intact
05

Power-bank tracking

Anchor your bank's capacity once and get state of charge and time remaining from measured draw — useful when the array is the only grid.

anchor
capacity, once
charge
from measured draw
remaining
time at the current watts
06

History that survives

The dish keeps 15 minutes. DishWatch accumulates across reboots — and says so when a gap means it cannot know.

dish
fifteen minutes of memory
ours
persists across reboots
a gap
skipped, never estimated

Install

Two instruments, one codebase

A notarized menu-bar face for the Mac. A static Go binary for the machine that never sleeps. Same engine. Take either, or both.

macOS 14+ · universal · notarized

DishWatch.app

The menu-bar watch. No dock icon. Power-bank setup, a reboot button, and the panel that lives in the bar.

face
menu bar, no dock
ui
SwiftUI, macOS only
sandbox
no shell-outs, no services
$ brew install --cask faeton/tap/dishwatch-app
Download the DMG

macOS · Linux · arm64 & x86_64

CLI — dishwatch / sl

One static Go binary, no runtime dependencies. Built for a small always-on box beside the dish.

shape
one static binary
os
macOS and Linux
sl
one-shot dashboard
sl watch
live terminal view
$ brew install faeton/tap/dishwatch
$ sl
$ sl watch                     # live

Honest limits

What it will not invent

Candour is the brand. The watch reports what the dish can see, and stops there.

  • No account, no telemetry, no cloud. It talks to the dish on your LAN and to nothing else. The app is sandboxed and does not shell out.
  • It cannot see what the dish cannot. Speeds come from the dish's own counters, not an external test — real traffic, not a benchmark.
  • Fifteen minutes is the dish's memory. A gap is skipped, not estimated, and the readout says so instead of inventing an average.
  • The app is macOS-only — it is SwiftUI, and there is no honest way around that. The CLI is not, which suits the real use case: a small always-on machine beside the dish.
  • Not affiliated with SpaceX or Starlink. An independent reader of a local API that requires no authentication.