SDKs
An SDK speaks the hub protocol for you, and the hub's safety kernel still checks every command.
| Language | Package | Status |
|---|---|---|
| Python | openhal.client | reference |
| TypeScript | not published | planned |
Python
The Python SDK ships in the repository, and a blocked command returns a decision that carries the error code.
$ uv run openhal init
$ uv run openhal file confirm ~/.openhal/devices/plant-waterer.hal.yaml
$ uv run openhaldfrom openhal.client import connect
with connect() as hub:
decision = hub.action("plant-waterer", "water", duration={"value": 120, "unit": "s"})
print(decision.status, decision.code)