Documentation Heron

User Guides

Features, workflows, commands, and everyday operation of the Heron dashboard and CLI.

The dashboard

Open heron.local in any browser on your Wi-Fi. The dashboard auto-discovers the device and shows your network activity. There is no account, no login, and no sticker code - LAN discovery is sufficient.

Routes

RouteShows
/ MonitorLive network traffic, recent DNS events, device activity
/manageTracked devices, inline rename, device details
/allowlistAllowlist patterns that suppress alerts

Connection banner

The banner at the top shows the device status: green when connected, yellow while searching, red when offline. If mDNS fails, enter the device IP manually - find it in your router's connected-devices list and use http://<IP>:8080.

Renaming a device

Click any device card on the Manage page to rename it inline. Custom names persist to /names.json on flash and survive reboots. Maximum 32 characters.

Allowlist

The allowlist suppresses alerts for domains you trust. Patterns are glob-style - *.telemetry.microsoft.com matches any subdomain. Add and remove entries from the Allowlist page.

The CLI

A terminal client heron talks to the same HTTP API as the dashboard and adds capabilities the web UI cannot offer: per-device live streams, snapshot-based change detection, exit-code monitoring for cron jobs, and JSON output for piping to other tools.

Install

pip install ./heron-cli

Python 3.8+ standard library only. Zero external dependencies.

Commands

CommandDescription
heronPretty summary: stats grid, devices, recent activity
heron report --tableCompact table format
heron report --jsonRaw JSON output, pipeable to jq
heron report --compactOne-line status
heron report --scope devicesDevices only (also: stats, activity, all)
heron watchLive refresh every 5 seconds
heron follow <ip>Live DNS query stream from a single device
heron diffWhat changed since the last run (snapshot-based)
heron monitorSilent check - exit 0 if OK, exit 1 if alert. For cron.
heron allow add <pattern>Add an allowlist entry
heron allow rm <id>Remove an allowlist entry
heron allow lsList allowlist entries
heron debugRaw /debug dump
heron --host <ip>Manual device IP, skips mDNS

State files

The OLED display

The on-device OLED alternates between two views: query count and KB transferred, then Wi-Fi signal percentage and uptime. The display is active only after provisioning - it is intentionally skipped during USB setup to keep the serial loop fast.

Alerts

The buzzer sounds when the DNS classifier flags a query - either a flagged-domain match or a new-connection event. The dashboard shows flagged events in the activity feed. The allowlist suppresses buzzer and dashboard alerts for trusted patterns.

Clearing the log

The DNS log is cached to /dnslog.json on flash. Clear it from the dashboard or by resetting the device. There is no remote wipe, because there is no remote connection.