Skip to content

NetLights 1.9.2

Choose a tag to compare

@willowhawk-k willowhawk-k released this 05 Aug 04:12
· 68 commits to main since this release
8f4a574

NetLights 1.9.2

A correctness release on top of 1.9.0's command-line modes. 1.9.0 and 1.9.1 were never
published
— this supersedes both.

Routes are identified uniquely again

A routing table can legitimately hold several routes that match in destination, gateway and
interface — two default routes that differ only by metric, or a pair of host routes to a VPN
concentrator. 1.9.1 identified routes by exactly those three fields, so such routes shared an
identity and the Routes table could drop or mis-draw them. Fixed, and snapshots remain
reproducible: netlights --dump-json now returns byte-identical output for an unchanged
machine, which is what makes two snapshots worth comparing.

Everything 1.9.0 brought — the command line, on every OS

  • netlights tui — a live, full-screen terminal dashboard in the spirit of top. Switch
    views with graph / routes / interfaces / devices / dns (or 1–5);
    h hides inactive, p masks addresses, s re-sorts routes, SPACE pauses, q
    quits. Works over SSH; tui --once prints a single frame for pipes, cron and CI.
  • netlights serve — the web UI on any OS: the same live graph plus /snapshot.json,
    with configurable --port and --bind. Listens on 127.0.0.1 by default — it has no
    authentication and publishes your interfaces, addresses, routes and DNS servers, so reaching
    it from the network is an explicit --bind all that warns. It also refuses unrecognised
    Host headers, so a hostile web page can't read it out of your browser. See PRIVACY.md.

Install

brew tap willowhawk-k/tap
brew install --cask netlights

Already have NetLights from the Mac App Store? brew install netlights-cli adds just the
command (tui and --dump-json; serve needs this build — the sandbox forbids listening).

NetLights is free and open source (MIT). The GitHub build carries the Sponsor link; the
Mac App Store build omits it per guideline 3.1.1.