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.

Reference model — not a real deviceNo network requestsState resets on reload
This is a teaching model.

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.

mhs.hello — simulated
{}

Endpoint state

live
Tick0ms simulated
Revision7monotone uint64
Doorclosedinterlock
E-stopreleasedlatched when engaged
Parts1on the conveyor
Evidence0receipts chained

Operator 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

    01

    Discover

    Send Hello and inspect endpoint_id, limits, features and the MHS.SAFETY.NOT_CERTIFIED disclosure.

    02

    Observe

    Read the workcell and compare the revision and state_hash before and after a command.

    03

    Refuse

    Open the door, then send a command. The receipt is rejected with MHS.SAFETY.INTERLOCK_OPEN; the revision does not advance.

    04

    Account

    Export the evidence bundle. Every receipt is chained; a rejected action is evidence, not an exception.