hapbeat-helper
Local daemon that bridges Hapbeat Studio (Web SPA at https://devtools.hapbeat.com)
to Hapbeat hardware on the local network.
The browser cannot do mDNS, UDP broadcast, or raw TCP sockets directly.
hapbeat-helper runs in the background, exposes a WebSocket on
ws://localhost:7703, and relays Studio requests to the devices using
UDP (port 7700) and TCP (port 7701).
Studio (https://devtools.hapbeat.com)
│ ws://localhost:7703 (JSON)
▼
hapbeat-helper (this daemon)
│ UDP 7700 (PLAY / STOP / PING / streaming)
│ TCP 7701 (config / kit deploy)
│ mDNS (_hapbeat._udp.local.)
▼
Hapbeat devices
Install
hapbeat-helper is distributed as a Python CLI that runs in its own
isolated environment. The recommended installer is pipx — it puts
each Python tool in a separate venv and exposes the entry point on your
PATH, so you don't need to think about Python versions or dependency
conflicts.
Step 1 — Install pipx (once per machine)
macOS
brew install pipx
pipx ensurepath
Windows
py -m pip install --user pipx
py -m pipx ensurepath
# Close and reopen your terminal so the new PATH takes effect.
pipx --version # should print the version
Windows tip: if
pipxis still "not recognized" after reopening the shell, usepy -m pipx ...for everything below (it works identically). The barepipxcommand becomes available once%APPDATA%\Python\Python3xx\Scriptsis on yourPath.OneDrive / cloud-synced home directory: if your
C:\Users\<you>\is synced by OneDrive, pipx may fail withWinError 448 — untrusted mount point. Move pipx out of the synced tree by setting these environment variables (User scope) and reopening the shell:[Environment]::SetEnvironmentVariable('PIPX_HOME', 'C:\pipx\home', 'User') [Environment]::SetEnvironmentVariable('PIPX_BIN_DIR', 'C:\pipx\bin', 'User')
Step 2 — Install hapbeat-helper
Once pipx is on your PATH:
pipx install hapbeat-helper
That's it. hapbeat-helper will be available in any new terminal.
Local development (from a clone of this repo)
# editable install via pipx (changes in src/ are picked up live)
pipx install -e .
# or — preferred during active dev — a plain venv:
python -m venv .venv
# macOS:
.venv/bin/pip install -e ".[dev]"
.venv/bin/hapbeat-helper start
# Windows:
.venv\Scripts\pip install -e ".[dev]"
.venv\Scripts\hapbeat-helper start
Updating
pipx upgrade hapbeat-helper
If you installed editable from a clone (pipx install -e . or
pip install -e ".[dev]"), updates are automatic — just git pull and
restart the daemon. The Python package picks up changes in src/ on
the next process start.
WS protocol mismatch? When Studio reports
ERROR: unknown type: <message>in the log drawer, your helper is older than the Studio build.git pull && restart(orpipx upgrade).
Uninstalling
pipx uninstall hapbeat-helper
Run
Option A — Auto-start service (recommended)
Register hapbeat-helper as an OS-level service so it starts automatically every time you log in. After this one-time setup you never need to open a terminal again:
hapbeat-helper install-service
To check the registration state:
hapbeat-helper service-status
To remove the auto-start registration:
hapbeat-helper uninstall-service
Platform notes:
- macOS — creates
~/Library/LaunchAgents/com.hapbeat.helper.plist(launchd) - Windows — drops a hidden VBS shim into the Startup folder (
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\hapbeat-helper.vbs) that launches the daemon at login with no console window. stdout/stderr →%LOCALAPPDATA%\hapbeat-helper\hapbeat-helper.log
Option B — Foreground (dev / debug)
hapbeat-helper start
Then open https://devtools.hapbeat.com — Studio will connect automatically.
Press Ctrl+C to stop.
Other commands
hapbeat-helper status # check whether a daemon is reachable on 7703
hapbeat-helper version # print version
hapbeat-helper config show # show config path
Verify
Quick smoke test using websocat:
echo '{"type":"ping","payload":{}}' | websocat ws://localhost:7703
echo '{"type":"list_devices","payload":{}}' | websocat ws://localhost:7703
Troubleshooting
-
Studio reports "Helper 未接続" — run
hapbeat-helper install-service(once) or start manually withhapbeat-helper start. -
Browser cannot connect to
ws://localhost:7703from HTTPS Studio — Chrome and Edge allow this by default. Firefox requiresnetwork.websocket.allowInsecureFromHTTPS = trueinabout:config. -
No devices found — confirm the Hapbeat devices and this PC are on the same Wi-Fi network. Some hotspot/AP modes block UDP broadcast and mDNS.
-
Port 7700 / 7703 already in use — stop any running
hapbeat-manager(it owns the same ports). The two cannot run at the same time. -
Windows:
pipx installfails withWinError 448 — untrusted mount point— your home directory is under OneDrive (or another reparse point). pipx finished installing the package but cannot finalize the shim under~/.local/bin/. Either runhapbeat-helper.exefrom that path directly, or relocate pipx outside the synced tree:[Environment]::SetEnvironmentVariable('PIPX_HOME', 'C:\pipx\home', 'User') [Environment]::SetEnvironmentVariable('PIPX_BIN_DIR', 'C:\pipx\bin', 'User') # Reopen the shell, then: py -m pipx ensurepath py -m pipx install hapbeat-helper
-
pipxnot recognized afterpip install --user pipx— the user Scripts dir is not onPathyet. Runpy -m pipx ensurepathand open a new terminal. As a fallback, everypipx Xcall also works aspy -m pipx X.
ドキュメント
公式ドキュメントは https://devtools.hapbeat.com/docs/helper/ を参照してください。 インストール手順 / CLI リファレンス / セキュリティ解説などをまとめています。
License
MIT
Metadata
Release files for hapbeat-helper 0.3.0
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 | |
|---|---|---|---|---|
| hapbeat_helper-0.3.0.tar.gz | 63.9 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hapbeat_helper-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 127.6 kB
Release files / hapbeat_helper-0.3.0.tar.gz
| Download URL | hapbeat_helper-0.3.0.tar.gz |
|---|---|
| Size | 63.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ea0a2e785d0d0cabeca3199dcc156602c591d525293372ae5fdb4bb7dea400a7
|
|
BLAKE2b-256 checksum How to use checksums |
bc07796c466b4b1199ce2ff2c4d75103ae6521f61c63d047edce941596d21522
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.
Transparency logRelease files / hapbeat_helper-0.3.0-py3-none-any.whl
| Download URL | hapbeat_helper-0.3.0-py3-none-any.whl |
|---|---|
| Size | 63.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9178da7ceed95597b620ec23ed835bfe33b8c888ccad2f5e07a2912ebe298177
|
|
BLAKE2b-256 checksum How to use checksums |
386a09819de7c48cb1c35f8611d22fd4e35f10d5ff7f178502abeb6ae7b9c862
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.
Transparency logSecurity for hapbeat-helper 0.3.0
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for hapbeat_helper-0.3.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.
Transparency logA 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.