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.

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 / Limitation | OpenHTF Operator UI | TofuPilot Operator UI |
|---|---|---|
| Test support | Single test only | Multiple tests, switchable from UI/API |
| Test history | In-session only (or a local history_path) | Built-in searchable history across stations |
| Hosting | Localhost | Centralized, secure (HTTPS + auth) |
| Access from other machines | Manual network config required | Accessible via URL, no extra config |
| Security | No HTTPS, no user management | HTTPS + user authentication |
| Setup complexity | Manual setup + script changes | No 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:
tofupilot run main.pyThe 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