Development

Last updated on June 16, 2026

In development mode you run procedures from your own machine with the TofuPilot CLI. Runs execute locally with the same operator UI a station shows, so you can build and debug a test before deploying it to the factory floor.

Install the CLI

The CLI is a single binary that runs on macOS, Linux, and Windows. Install it with a one-line script:

curl -fsSL https://tofupilot.sh/install | sh
$p = "$env:TEMP\tp-install.ps1"; irm https://tofupilot.sh/install.ps1 -OutFile $p; powershell -ExecutionPolicy Bypass -File $p; ri $p -EA 0

Authenticate once with tofupilot login. See the CLI reference for every subcommand.

Run in development mode

Point tofupilot run at a procedure directory to execute it locally. The run starts immediately, without contacting the dashboard:

Terminal
tofupilot run ./my-test

The CLI bootstraps Python through uv, schedules the phases, and streams the operator UI to your terminal. See tofupilot run for the full set of flags.

Upload runs

To sync a development run to a procedure on your dashboard, link the directory once and run with --upload:

Terminal
tofupilot link
tofupilot run ./my-test --upload

tofupilot link writes a tofupilot.json file binding the local directory to the remote procedure, and --upload sends the run there.

Switch between development and station

The CLI's mode is determined by who it is logged in as — there is a single set of credentials, and logging in again replaces the previous identity.

To turn a development machine into a station, run the install command from the station's setup token page. It redeems the token, pulls the station's deployments, starts the daemon, and registers the service so the station comes back on boot:

Development → Station
curl -fsSL https://tofupilot.sh/install | sh -s -- --token <setup-token-from-dashboard>

To go back to development, log in as yourself again. A plain tofupilot login removes the station service and the CLI is back in development mode, where tofupilot run ./my-test executes procedures locally:

Station → Development
tofupilot login

How is this guide?

On this page