Skip to content

Documentation

Start with the quickstart, then the tutorial that matches what you want to do. The specification defines the protocol itself.

Get started

Quickstart
Run the print babysitter demo, then a hub you control.
Install
Install from a clone or as a tool, run the hub as a service, or set up a Raspberry Pi.
Concepts
The hub, device files, the safety kernel, drivers, grants and errors, in one page.
FAQ
Short answers on safety, agents, limits, firmware and privacy.

Tutorials

Connect Claude
Give Claude an agent token, and Claude reaches the hub through openhal mcp.
Add a device
Create a device file, validate the file, confirm the limits and share the file.
Build a driver
Build a driver for a simulated bench lamp and pass the conformance suite.
Create a routine
Automate a device with triggers and steps that the kernel checks.

Reference

Device library
How the hub matches a device to a library file and how a person confirms the file.
Conformance suite
The checks every driver passes before the driver ships.
Safety model
What the hub guarantees, how the kernel enforces each guarantee, and what OpenHAL does not cover.
Architecture
One hub process, one deterministic kernel, and the thin clients around the hub.
Command line
Every openhal command, its options and its exit codes.
MCP server
The tools and prompts the MCP server gives an agent.
Driver contract
The package, class, tests and catalog entry a new driver needs.
MHS mapping
How each OpenHAL concept maps to what is public about MHS.

SDKs and Inspector

SDKs
The Python SDK for the hub protocol, with its API reference.
Inspector
The hub's dashboard, with every device and every message, and STOP.

Firmware

Firmware protocol
The wire protocol a board running the OpenHAL Arduino library speaks.
OpenHAL for Arduino
Make a sketch describe itself so the hub builds its device file.