Station
Last updated on August 14, 2026
A station is the CLI running unattended on a physical test bench. Each station has its own credentials, pulls Deployments from a linked Git repo, executes Procedures, and streams every Run back to the dashboard.
Register a station
To register a station, you create it in the dashboard and then install on the test machine. The install command embeds a one-hour setup token, and the CLI exchanges it for long-lived credentials on first boot.
Open Stations > New Station, name it, and copy the install command.
Run the command on the test machine.
curl -fsSL https://tofupilot.sh/install | sh -s -- --token <SETUP_TOKEN>$p = "$env:TEMP\tp-install.ps1"; irm https://tofupilot.sh/install.ps1 -OutFile $p; powershell -ExecutionPolicy Bypass -File $p --token <SETUP_TOKEN>; ri $p -EA 0Link procedures to the station from the dashboard.
The setup token expires one hour after issue, so when it expires, generate a new one from the station's row in the dashboard.
API
Stations are exposed at /api/v2/stations with create, list, get, update, and remove. See the REST API reference for the full surface.
from tofupilot.v2 import TofuPilot
client = TofuPilot()
station = client.stations.create(name="Test Bench #1")| Field | Required | Description |
|---|---|---|
name | Yes | 1-60 characters. |
procedure_id | No | Link the station to a procedure at creation. |
| Endpoint | Response |
|---|---|
create | { id } |
get | id, name, api_key, procedures (each with id, name, runs_count, deployment), organization_slug, team |
list | data[] of { id, name, procedures (id, name), procedures_count, team }, plus meta.has_more and meta.next_cursor |
Linked procedures
A station can be linked to one or many procedures, and deployment rollout only reaches stations with the procedure linked.
When you unlink a procedure, new deployments stop, but runs in flight finish against the version they started with.
Operator UI and uptime
You can open the Operator UI for a station from the Stations tab, and the dashboard shows real-time connectivity, the active deployment, and 90-day uptime history.
Held instrument connections
Plugs declared with scope: station connect once and stay connected across every run on the station — back-to-back units skip the reconnection cost for slow links (VISA sessions, TCP, serial). The instance is health-checked before each run and respawned if the plug definition or deployment changed. See plug scope.
Offline behavior
Stations queue runs locally when offline, and uploads resume when the network returns. See Offline upload for the full lifecycle.
How is this guide?
Upgrade
Learn how to upgrade a self-hosted TofuPilot instance, back up your data first, and enable realtime views when moving from an older version.
Remote UI
Watch and drive a running TofuPilot station from the dashboard in real time so anyone with access can supervise procedures, answer prompts, and step in remotely.