benchctl
Calm orchestration for a messy physical bench.
A local-first control plane for device commands, durable jobs, streams, artifacts, and carefully bounded supervisory interfaces.
Source publication pendingHardware orchestration is trustworthy when every action has an authority boundary, a lifecycle, and evidence that says exactly what was tested.
What the software is trying to make ordinary
benchctl treats a one-shot command, a long-running job, a stream, and an artifact as different things. That distinction makes it possible to express cancellation, retention, reconnect behavior, and evidence without hiding device behavior behind one universal command channel.
Local-first authority
Supervisory tools can request bounded work and read state. Hazardous or timing-sensitive authority remains close to the bench, where disconnects and partial failures can be handled deliberately.
Evidence ladder
Static analysis, simulation, protocol fixtures, and a named physical bench answer different questions. The public documentation should always identify the highest level actually exercised.
- Runtime
- Python 3.11–3.13Current software contract
- Operation
- Local firstHazardous authorization remains local
- Supervision
- MQTT-firstBounded Home Assistant and browser surfaces
- Evidence
- Static → simulated → fixture → benchClaims stop at the highest executed level
01Architecture and contractsin development+
Work is in development, but no downloadable artifact has been released from this page.
02Protocol fixturesin development+
Work is in development, but no downloadable artifact has been released from this page.
03Package and API documentationplanned+
This is a named deliverable in the plan; no public file is attached yet.
04Named device HIL reportsgated+
This artifact requires its named validation and explicit release before a public file or supporting claim appears here.
This register describes the current public claim boundary. “Planned” and “gated” entries are not downloadable deliverables.
Follow the build
Interested before it becomes a product?
Send the workflow you want to solve. Early conversations should shape the useful part of the specification—not manufacture demand for a frozen idea.
Start a conversation