Releases: jmleclercq/hastty
Releases · jmleclercq/hastty
Release list
v0.1.4 — fix crash with no default dashboard
Bug-fix release.
Fixed
- Fixes #1 — hastty crashed on startup for HA setups with no "default" Lovelace dashboard (every dashboard replaced by a custom one).
lovelace/configwith nourl_pathanswersconfig_not_foundin that case; hastty now falls back to whatever dashboards do exist instead of crashing, even withinclude_extra_dashboardsleft at its default (false).
Thanks to @FaustVX for the detailed report and traceback.
Full Changelog
v0.1.3 — fix crash on refresh
Bug-fix release.
Fixed
- Pressing
r(refresh) crashed the app withDuplicateIds.TabbedContent.clear_panes()only schedules removal of the old view tabs (it returns an awaitable, not a synchronous operation) — without awaiting it, refresh re-added tabs with the same ids before the old ones were actually torn down, and Textual raisedDuplicateIdsevery time. Found while testing against a real Home Assistant instance.
Full Changelog
v0.1.2 — fix broken images on PyPI
Metadata-only release, no code changes.
Fixed
- The README used repo-relative paths for screenshots and a few links (LICENSE, CONTRIBUTING.md, tests/mock_ha_server.py). GitHub resolves these automatically, but PyPI's rendered project description does not, so screenshots showed up as broken images on https://pypi.org/project/hastty/. Switched to absolute GitHub URLs, which render correctly in both places.
v0.1.1's published files on PyPI are immutable, so this small release was the only way to get a correctly-rendered project page there.
v0.1.1 — fixes for real Home Assistant installs
Bug-fix release, validated against a real Home Assistant instance (v0.1.0 was only tested against the local mock server).
Fixed
- Empty views on modern dashboards: views built with the "sections" layout (the default dashboard editor since Home Assistant 2024.9) showed zero entities — only the legacy top-level
cardslist was parsed. - Live state updates never reaching the terminal: entity rows were tracked using
str(row_key), which returns DataTable's generic object repr instead of the entity_id. Toggling a light actually worked in Home Assistant, but the table kept showing the old state. - Crash on Enter/Space with an empty table:
CellDoesNotExistwas raised and crashed the app when activating a selection on a view with no entities.
Changed
- Additional Lovelace dashboards are no longer mirrored by default (this was producing confusing duplicate views). Opt in with
include_extra_dashboards: trueinconfig.yamlif you want all of your dashboards.
Full Changelog
v0.1.0 — first release
First release of hastty: a terminal (TUI) viewer for your Home Assistant dashboards, with keyboard shortcuts to trigger commands.
Features
- Mirrors your existing Lovelace views (views, entities, and order)
- Live entity state updates via the Home Assistant WebSocket API (no polling)
- Keyboard navigation: switch views, move selection, activate an entity (toggle/scene/script/automation)
- Custom global keyboard shortcuts bound to any service call, configurable in YAML
- Tested end-to-end against a local mock Home Assistant server (
tests/)
Install
git clone https://github.com/jmleclercq/hastty.git
cd hastty
python3 -m venv .venv && source .venv/bin/activate
pip install -e .See the README for configuration and usage.