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
Metadata
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 | Provenance | Actions |
|---|---|---|---|---|
| huum_cli-0.2.1.tar.gz | 111.6 kB | Without provenance | Details for huum_cli-0.2.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| huum_cli-0.2.1-py3-none-any.whl | Python 3 | none | any | Details for huum_cli-0.2.1-py3-none-any.whl |
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
|
Security for huum-cli 0.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.