Blueprint + Risk Register for smart homes.
Leakprint takes a home's device inventory and produces:
- Smart Home Blueprint – plan and sequence
- Device Risk Register – privacy and security exposure
- Mitigation plan – quick wins, keep vs replace
- It is not a vulnerability scanner.
- It is not legal advice.
- It will mark unknowns as unknown.
-
Create a virtual environment and install:
python3 -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate pip install -e .
Or use pipx for a global install:
pipx install -e . -
Create an inventory CSV (see
examples/inventory.csv). -
Run:
leakprint run --inventory examples/inventory.csv --out artifacts/
If you have Home Assistant, set HASS_URL and HASS_TOKEN and run:
leakprint run --from-ha --out artifacts/For higher NVD rate limits, set NVD_API_KEY:
export NVD_API_KEY=your-key
leakprint run --inventory examples/inventory.csv --out artifacts/| Command | Description |
|---|---|
leakprint run |
Full pipeline: ingest → enrich → score → report |
leakprint ingest |
Ingest from CSV or Home Assistant |
leakprint enrich |
Enrich with KEV and NVD data |
leakprint score |
Score devices and produce risk register |
leakprint report |
Generate report artifacts |
--inventory,-i– Path to inventory CSV--from-ha– Ingest from Home Assistant (usesHASS_URL,HASS_TOKEN)--out,-o– Output directory (default:artifacts/)--cache,-c– Cache directory (default:cache/)--secrets,-s– Path to secrets.yaml (see below)--max-nvd-results– Max CVE results per device (default: 20)--kev-ttl-hours– KEV cache TTL in hours (default: 24)
Leakprint can load secrets from a YAML file instead of requiring environment variables. Lookup order:
--secrets /path/to/secrets.yamlCLI optionLEAKPRINT_SECRETS_PATHenvironment variablesecrets.yamlin the current working directory
Environment variables already set take precedence over the file.
# secrets.yaml
hass_url: http://homeassistant.local:8123
hass_token: your-long-lived-token
nvd_api_key: optional-keyHASS_URL– Home Assistant URL (e.g.http://homeassistant.local:8123)HASS_TOKEN– Long-lived access token for Home AssistantNVD_API_KEY– Optional; improves NVD rate limitsLEAKPRINT_SECRETS_PATH– Path to a secrets.yaml file
artifacts/device_risk_register.csvartifacts/risk_report.mdartifacts/blueprint.mdartifacts/mitigation_plan.mdartifacts/run_metadata.json
- Leakprint does not upload your inventory to third parties.
- MAC addresses and unique identifiers are not output by default.
- Tokens and secrets are read from environment variables or a local
secrets.yaml; never hardcoded. - Public datasets (KEV, NVD) are cached locally to limit API calls.
pip install -e ".[dev]"
pytestMIT