Huum Sauna CLI
A command-line interface for managing Huum sauna devices remotely.
Features
- 🔐 Secure Authentication - Store credentials safely in OS keyring
- 🔥 Start Sessions - Remotely start your sauna heating
- ⏹️ Stop Sessions - Turn off your sauna from the command line
- 📊 Status Display - View current and target temperatures with Rich formatting
- 📈 Statistics & Graphs - View historical temperature data as a table or graph
- 🌡️ Custom Temperatures - Set target temperature (40-110°C)
- 🎯 Auto-device Selection - Automatically selects device if you have only one
- ⚡ Fast & Reliable - Automatic retries with exponential backoff
Installation
Requires Python 3.11 or higher.
pip install huum-cli
Or with uv:
uv tool install huum-cli
Development Installation
# Clone the repository
git clone https://github.com/tomdyson/huum-cli
cd huum-cli
# Install dependencies
uv sync
# Install the CLI in editable mode
uv pip install -e .
Quick Start
1. Authenticate
huum auth login
You'll be prompted for your Huum account credentials. Your session will be stored securely in your system keyring.
2. Start Your Sauna
# Start with default temperature (85°C)
huum start
# Start with custom temperature
huum start --temperature 75
3. Stop Your Sauna
huum stop
Commands
Authentication
# Log in
huum auth login
# Log in with credentials
huum auth login --username user@example.com --password mypass
# Log out
huum auth logout
Sauna Control
# Check status
huum status
# Start sauna
huum start [DEVICE_ID] [--temperature 85]
# Stop sauna
huum stop [DEVICE_ID]
Statistics
View historical temperature data. By default, it shows data for the last 24 hours.
# Show statistics for the last 24 hours
huum statistics
# Show all available data for the current month
huum statistics --all
# Display the data as a graph
huum statistics --graph
# Combine flags
huum statistics --all --graph
Device Management
If you have multiple devices, specify the device ID:
huum start my-sauna-id --temperature 80
huum stop my-sauna-id
Configuration
Credentials are stored securely using your operating system's keyring:
- macOS: Keychain
- Windows: Windows Credential Manager
- Linux: GNOME Keyring/KWallet
API
This CLI uses the Huum API (v1.2) at https://sauna.huum.eu.
See the API documentation for more details.
Development
Built with:
- Typer - CLI framework
- httpx - HTTP client
- Pydantic - Data validation
- Rich - Terminal formatting
- keyring - Secure credential storage
Publishing a New Version
The project uses GitHub Actions to automatically publish to PyPI when you push a version tag.
Prerequisites
- Add your PyPI API token to GitHub repository secrets:
- Go to https://github.com/tomdyson/huum-cli/settings/secrets/actions
- Add a new secret named
PYPI_API_TOKEN - Value: Your PyPI API token (starts with
pypi-)
Release Process
-
Update version in
pyproject.toml:# Edit pyproject.toml and change version = "0.1.0" to new version -
Commit the version change:
git add pyproject.toml git commit -m "Bump version to 0.2.0" git push
-
Create and push a git tag:
git tag v0.2.0 git push origin v0.2.0
-
GitHub Action runs automatically:
- Builds the package with
uv build - Publishes to PyPI
- Check progress at https://github.com/tomdyson/huum-cli/actions
- Builds the package with
Version Numbering
Follow semantic versioning (MAJOR.MINOR.PATCH):
- MAJOR: Breaking changes (e.g., 1.0.0 → 2.0.0)
- MINOR: New features, backwards compatible (e.g., 0.1.0 → 0.2.0)
- PATCH: Bug fixes, backwards compatible (e.g., 0.1.0 → 0.1.1)
License
MIT
Release files for huum-cli 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| huum_cli-0.2.1.tar.gz | 111.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| huum_cli-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 128.8 kB
Release files / huum_cli-0.2.1.tar.gz
| Download URL | huum_cli-0.2.1.tar.gz |
|---|---|
| Size | 111.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3e7611981740ef3d3efdb580cb47109049f36fb5149b1c9ce4cc7c396b44933d
|
|
BLAKE2b-256 checksum How to use checksums |
f799e8099110aa7c1620dc4faf03fa3861d206ba420d2bf1097f4151da56992a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / huum_cli-0.2.1-py3-none-any.whl
| Download URL | huum_cli-0.2.1-py3-none-any.whl |
|---|---|
| Size | 17.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f3dfe3362d80cf98405b9b96938ce22ac4d11d9806a94bbb15d0fa179db17e70
|
|
BLAKE2b-256 checksum How to use checksums |
15b477bcfef8df661bd50e57e6f1e2467e9ac54e13919dd51ed537565a0c51a7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|