You don’t need a real watch, a real platform account, or a real network connection to develop and test Synheart integrations. The CLI ships three building blocks that cover almost every test scenario:Documentation Index
Fetch the complete documentation index at: https://docs.synheart.ai/llms.txt
Use this file to discover all available pages before exploring further.
synheart mock— emits a vendor-shaped biosignal stream to your SDK.synheart local— runs a local mirror of the consent + ingest cloud endpoints.synheart sync --check— pins exact runtime / spec versions across machines and CI.
Mock wearable streams
synheart mock produces deterministic vendor-shaped streams that your SDK consumes as if they came from a real device. Useful for unit tests, UI demos, and reproducing user reports.
- WebSocket:
ws://127.0.0.1:8787 - SSE:
http://127.0.0.1:8788/events - UDP:
127.0.0.1:8789
Deterministic record + replay
For regression tests, capture a mock stream once and replay it on every run:.ndjson file alongside your tests. Replay accepts the same transport flags as start, so the SDK code under test doesn’t change.
Choosing a scenario
A scenario is a named time-series profile (baseline, workout, recovery_high, stress_event, …). List and inspect them:
stress_event for high-arousal HSI states, recovery_high for low-strain outputs, etc.
Local platform server
synheart local mirrors the cloud’s consent + ingest endpoints on 127.0.0.1. Use it when you need the full cloud flow — uploads, consent tokens, JWT validation — without burning real platform quota or needing network.
--https mode generates a local CA, trusts it in the OS keychain, and adds a 127.0.0.1 <domain> entry to /etc/hosts — so your SDK hits https://api.synheart.example exactly as it would the production host. Run synheart local cleanup --remove-certs when you’re done to reverse those OS changes.
The --web flag runs a small status dashboard on a separate port showing connected SDK clients, queued ingests, and recent consent grants. Useful for debugging “did my upload arrive?” questions.
Combining the two
The common end-to-end shape:CI / CD patterns
For deterministic builds, install the runtime once locally, commit the lockfile, thensync in CI:
synheart login --token (non-interactive) with a CI service-account token. Tokens are scoped per project and per environment; rotate them via the platform dashboard.
synheart sync --check is the most important line: it fails the build if your committed synheart.lock no longer matches what sync would resolve to. That catches silent runtime drift on PRs before it ships.
Running mock + local in CI
For integration tests that exercise the full SDK path:--seed so test runs are reproducible across machines.
When you do need real hardware
A few things only a real device can validate:- BLE pairing and reconnection edge cases (mocks don’t simulate radio).
- HealthKit / Health Connect permission prompts as the user sees them.
- Watch ↔ phone session handoff timing and battery impact.
- Vendor-specific OAuth flows end-to-end (mock simulates the data, not the OAuth dance).
Where to go next
Synheart CLI reference
Full reference for
mock, local, sync, and related commands.Quickstart
The shortest path from zero to a running integration.