finds.dev

dummylabs/thewatchman

Home Assistant custom integration to keep track of missing entities and actions in your config files

View on GitHub

★ 689PythonMITupdated Mar 2026

// the take

A Home Assistant custom integration that scans your YAML config, dashboards, and templates for entity/service references and flags the ones that are missing, renamed, or unavailable. Built for HA power users running large configs who've been bitten by automations silently breaking after an integration update.

It's upfront in its own docs about being a regex-based heuristic scanner rather than a real parser with config-dependency awareness, which is the right call to set expectations instead of overselling accuracy. The test suite is unusually thorough for a HACS integration — symlinks, race conditions, DB migrations, cache bypass, Jinja comment edge cases are all covered, not just happy-path parsing. It exposes its own health as HA entities (parse duration, processed/ignored file counts, safe mode) so you can monitor the watchdog itself instead of trusting a black box, and the lock-file-based safe mode is a sane response to crash-during-parse scenarios.

Line-by-line regex parsing means it will miss anything built dynamically — entity_ids assembled via Jinja string concatenation or loops won't be caught, and the README admits false negatives are an ongoing problem rather than solved. The recent parse_config deprecation broke the visual action editor for existing automations and requires users to manually edit YAML to fix it, which is a rough migration path for a config-tracking tool to inflict on its own users. Translation coverage is thin (English, French, Portuguese, Slovak) for something this widely installed. Notification output falls back to plain text instead of the nicer ASCII table when sent via services like Telegram, so the two output paths aren't equivalent.

We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →

// at a glance

Stars
689
Forks
33
Language
Python
License
MIT
Last commit
25 Mar 2026

// nearby

If thewatchman isn't quite it.

All repos →