Interactive reference model
Talk to a mock OpenMHS endpoint
A deterministic conveyor workcell in your browser. Send JSON-RPC requests, watch receipts, open an interlock, reuse a command id, latch an e-stop and export the evidence chain. Nothing leaves this page.
It implements a deliberately small, readable subset of OpenMHS to show command semantics. It is not conformance-tested, not a safety-rated channel, and not connected to equipment. Do not use it to drive anything physical.
Request
Discovery
Observe
Act
Safety
Evidence
Edit the JSON directly. The mock understands mhs.hello, devices.list, devices.get, resource.read, command, safety.status, safety.estop, safety.reset, session.open and evidence.export.
Response
Ready.
{}- Command
—- Revision
- —
- State hash
—- Evidence seq
- —
- Replayed
- no
Endpoint state
liveOperator controls (outside OpenMHS)
The door is a physical interlock. Toggling it changes the world but is not an OpenMHS command; the next command is refused while it is open.
Session log
A local trace of requests and state changes. It is not the evidence chain; use Export evidence for that.
What to try
A five-minute tour of the contract
Discover
Send Hello and inspect endpoint_id, limits, features and the MHS.SAFETY.NOT_CERTIFIED disclosure.
Observe
Read the workcell and compare the revision and state_hash before and after a command.
Refuse
Open the door, then send a command. The receipt is rejected with MHS.SAFETY.INTERLOCK_OPEN; the revision does not advance.
Account
Export the evidence bundle. Every receipt is chained; a rejected action is evidence, not an exception.