Small networking and hardware tools, and a shed for the scripts that belong to none of them. Mostly Python, mostly no dependencies, and each one built to be read as well as run.
| Project | What it is | Latest | Build |
|---|---|---|---|
| nettail | tail -f for your network: a NetFlow and IPFIX collector that prints flows with hostnames, colour and a live status bar | ||
| netflume | NetFlow v5, NetFlow v9 and IPFIX collection and parsing, as a library | ||
| lanname | Address to hostname lookup on a local network: reverse DNS, mDNS and NetBIOS, cached and non-blocking | ||
| readerboard | An HTTP service for BetaBrite and Alpha protocol LED signs, with alerts, scheduling and clock sync | ||
| bravia-http-remote | A single-page console for controlling a Sony Bravia display over your network | ||
| cec-ir-bridge | Volume control for an IR-only soundbar from the Apple TV Remote app, over HDMI-CEC and an ESP32 IR blaster | ||
| toolshed | Small scripts and helper apps that belong to no particular project, one directory per tool, and mixed languages on purpose | no releases |
The badges above say whether the last build passed and what the registries serve. They cannot say whether those two agree with each other, or whether a tag is on the branch it claims to be on, so the table below asks, of every repository in the table above.
scripts/sweep.py reads it fresh from GitHub, PyPI and
both container registries every morning and writes what it found here. It is
standard library only and clones nothing. When something is genuinely wrong,
as opposed to merely untidy, the run fails rather than quietly updating a
table nobody reads.
| Repo | Version | Release | Tags on main | Unreleased | CI | PRs | Unmerged | Published |
|---|---|---|---|---|---|---|---|---|
| nettail | 0.13.1 | v0.13.1 | all 18 | none | success | 1 | dependabot/docker/python-3.14.7-slim (+1/-17) | PyPI 0.13.1, GHCR 0.13.1, Docker Hub 0.13.1 |
| netflume | 0.5.0 | v0.5.0 | all 5 | none | success | 0 | none | PyPI 0.5.0 |
| lanname | 0.2.1 | v0.2.1 | all 3 | 2 commits | success | 5 | none | PyPI 0.2.1 |
| readerboard | 0.3.0 | v0.3.0 | all 6 | 6 commits | success | 1 | dependabot/docker/python-3.14.7-slim (+1/-3) | PyPI 0.3.0, GHCR 0.3.0, Docker Hub 0.3.0 |
| bravia-http-remote | 1.3.0 | v1.3.0 | all 4 | 3 commits | success | 0 | split-app-js (+2/-20) | GHCR 1.3.0, Docker Hub 1.3.0 |
| cec-ir-bridge | 0.1.1 | v0.1.1 | all 2 | none | success | 0 | none | none |
| toolshed | none | none | none | n/a | no runs | 0 | none | none |
Generated: 2026-09-06 11:26 UTC
Read the columns this way. Tags on main counts tags that are ancestors of
main; a tag put on a release branch before it was squash merged is not one,
and the history stops describing it. Unreleased is how far main has
moved since the newest release, which is normal in itself. Published is
what the registries actually serve, asked of them rather than inferred from a
green publish job. CI is the latest run of each workflow on main,
leaving out any the sweep is told is a fixture rather than a check: toolshed's
Dungeon Crawl exists to be dispatched at and fails on purpose when fed bad
input, so its runs are not read. A repository that releases nothing, which is
what the shed is, shows none and n/a where those questions do not apply,
and the columns that say anything about it are CI, PRs and Unmerged.
Nothing third-party is used within seven days of its release. Dependabot has
a cooldown setting for that, and the repositories above that use Dependabot
set it, but it only holds where the registry tells Dependabot when a version
came out, and Docker Hub does not.
scripts/are_you_cool_enough.py asks the
registries itself, every morning after the sweep, for each open Dependabot
pull request in the repositories above, and writes the ones that have waited
long enough here, then the ones still waiting with the moment each clears.
One it could not date at all is only in the run's summary, with the reason.
It reads the project table above for the repositories to check, so a row
added there is a row checked here.
Nothing yet.
Still waiting:
- nettail: deps: bump python from 3.14.6-slim to 3.14.7-slim, ready 2026-09-08 23:08 UTC
- readerboard: deps: bump python from 3.14.6-slim to 3.14.7-slim, ready 2026-09-08 23:08 UTC
Checked: 2026-09-06 11:43 UTC