TofuPilot's Operator UI

Run OpenHTF tests from a hosted operator interface with HTTPS, user accounts, multi-test support and searchable history — no test code changes.

Last updated

Same OpenHTF script, but the operator UI comes from one web app with logins instead of localhost.

TofuPilot Operator UI header

The bundled OpenHTF Operator UI is a good fit for one bench: it starts with the script, shows prompts and live phases, and needs no infrastructure. Its limits show up when a line has several stations, when engineers want to watch a station from their desk, or when someone asks for last week's runs. TofuPilot's Operator UI covers those cases.

OpenHTF vs. TofuPilot

Feature / LimitationOpenHTF Operator UITofuPilot Operator UI
Test supportSingle test onlyMultiple tests, switchable from UI/API
Test historyIn-session only (or a local history_path)Built-in searchable history across stations
HostingLocalhostCentralized, secure (HTTPS + auth)
Access from other machinesManual network config requiredAccessible via URL, no extra config
SecurityNo HTTPS, no user managementHTTPS + user authentication
Setup complexityManual setup + script changesNo code change: tofupilot run

The built-in multi-station dashboard lists stations on the LAN but still serves each station's UI from that station, without authentication or history.

Try it

Run your existing test with the TofuPilot CLI, without modifying it:

Terminal
tofupilot run main.py

The CLI serves the operator UI on localhost and prints the URL. It swaps in its own UserInput plug, so your prompts (with image_url) show in the TofuPilot UI instead of OpenHTF's. Before the first phase it asks for the unit serial, and skips a prompt_for_test_start() phase.

On a station, the same UI runs as a kiosk and shows up in the dashboard.

Learn more in the TofuPilot Docs

On this page

Run it on your stations

$ tofupilot run .
✓ operator UI ready
$ git push
✓ stations updated
✓ runs uploaded

Same OpenHTF script, no code changes.

How it works