# Operator UI
URL: /operator-ui
Discover how to interact with the Operator UI in OpenHTF, featuring real-time test streaming, test progress, and control options.
Start and monitor your Runs in real time from the production floor.
The Operator UI provides a streamlined web interface for running and tracking test procedures deployed to production stations. It's designed for operators on the shop floor to easily start tests, respond to prompts, and monitor test execution in real time.
The Operator UI is powered by the `station_server`, which serves the web interface, and `web_launcher`, which opens it in the browser. Operator interactions—like entering serial numbers or confirming visual results—are handled through the `user_input` plug.
Starts the HTTP server that hosts the Operator UI. The port comes from the `station_server_port` configuration key (default `0` = random free port); `history_path` points at a directory of past JSON records to show in the history panel.
Add with `test.add_output_callbacks(...)` so the finished record appears in the UI's history.
Opens the Operator UI in the default web browser at the given URL.
Starts the test only after an operator initiates it via the UI prompt.
This example demonstrates a basic OpenHTF test that launches the Operator UI and prompts the user to enter a serial number before starting the test. It includes three phases: one automatic and two requiring operator input. Of the two operator input phases, one prompts the operator to enter information, while the other simply waits for the operator to click the "Okay" button.
Once the script is running, you can access the Operator UI at `http://localhost:4444`.
Begin your test with an operator input, such as entering a serial number.
Use `user_input.prompt()` to ask the operator for manual input, such as confirming an LED color, or clicking on Okay button. These two options depend on the boolean `text_input` value (defaults to `False` when not specified).
At the bottom of the UI, you'll see:
A timeline of executed test phases
Recorded measurements
Attachments
Logs
Click **Expand** to view detailed phase data.
On the right-hand side, you'll find:
A **Refresh Station** button
Live online status
Test history (e.g., previous serial numbers)
The bundled UI serves one test on `localhost`, keeps history only for the current process, and has no authentication. To open it to the network, run several stations, or keep history, see Multi-station dashboard for the built-in `dashboard_server`, or TofuPilot's Operator UI for a hosted one with authentication and searchable history.
TofuPilot serves the same prompts and live phases over HTTPS to any browser on the network, with user accounts and run history, without changing your test code: `tofupilot run .` — see TofuPilot's Operator UI.