Studio

Last updated on September 11, 2026

Studio is TofuPilot's test procedure and code editor. You edit and run a procedure from the dashboard, but the work happens on the machine in front of you: the one holding your project files and wired to your instruments.

How it works

The editor talks to your machine directly, over loopback, without going through our servers.

  • The editor is the dashboard page you access from your browser, served by the TofuPilot dashboard. It renders the file tree, the sequence, the code and the run.
  • The daemon is the tofupilot studio command you start in a terminal. It serves your project folder on 127.0.0.1, runs the phases, and speaks to the hardware.
ComponentBehavior
FilesStay in the folder you opened. The daemon reads and writes them in place, so your editor, your terminal and Studio all see the same files. Editing and running never send them anywhere.
Python environmentThe one already on your machine. Studio does not create a second one, and it does not upload your code to run it elsewhere.
InstrumentsReached by the daemon on the local machine or its network, exactly as a local script would.
SessionLives as long as the command. Press Ctrl-C and it is over.
Session tokenRandom, generated per process, and dies with it. It never goes into a link, so there is nothing to click or forward by mistake: the command prints it next to the page address for you to copy. When the command opens your browser itself, that link carries a single-use code instead, which the page trades for the token right away. The code stops working the moment it is used.
What the dashboard seesNeither credential. Both travel in the part of the address after the #, which browsers never send to a server.
AI assistantSends your message, and the file context it needs to answer, to our model provider, hosted in Switzerland.

For security reasons, the daemon is bound to loopback, the machine running tofupilot studio has to be the machine with the browser open. Studio is not a way to reach a bench from across the building.

Prerequisites

  • A TofuPilot account.
  • A Linux, macOS, or Windows computer, with your project files on it.
  • Python available on that machine, if your phases are Python.

Install and sign in

One command installs the CLI and signs you in. Replace <your-org> with your organization slug, the one in your dashboard URL.

terminal
curl -fsSL https://www.tofupilot.app/install | sh -s -- --org <your-org>
terminal
$p = "$env:TEMP\tp-install.ps1"; irm https://www.tofupilot.app/install.ps1 -OutFile $p; powershell -ExecutionPolicy Bypass -File $p --org <your-org>; ri $p -EA 0

The installer drops a single binary, then opens your browser so you can approve the machine for that organization. The credentials are stored locally, and every later command reuses them.

Passing --org is only mandatory for an account that belongs to several organizations, since the CLI cannot pick one for you non-interactively.

Open your project

Start a session

In a new terminal:

terminal
tofupilot studio

The first time, Studio opens with no project and lets you pick your project folder from the page. It remembers it, and the next launch reopens it. The folder does not need a procedure yet: Studio offers to create one.

To choose the folder from the terminal instead, pass it: tofupilot studio <path>, or tofupilot studio . for the current folder.

Let it open Studio

The command opens the Studio page in your browser and connects it to the daemon for you.

If no browser opens, or you closed the tab, go to the Studio page address the command printed and enter the port and token printed next to it. See Pair manually.

Work on the procedure

The file tree, the sequence and the code are your real files. Saving from Studio writes to disk.

Run your first procedure

Pick the procedure

Studio opens the procedure.yaml it found in the folder. The sequence view lists its phases in execution order.

Run it

Start the run from Studio. Phases execute on your machine, against your instruments, and the logs and measurements stream back into the page as they happen.

Read the result

Each phase reports its outcome and its measurements against their limits. A failing phase shows the measurement that failed and the log around it.

Upload it

Uploading the run sends the report to your organization, where it joins the runs from your production stations. The procedure code itself is not uploaded by a run.

Pair manually

The command normally pairs your browser for you. If you land on the Studio page unpaired, because signing in redirected you, because you closed the tab, or because no browser opened, enter the two values the command printed:

  • Port, the loopback port the daemon listens on.
  • Token, the session token.

Re-running the command prints a fresh pair, and the old one stops working.

Self-hosted instances

Add --url so the login points at your own server. The Studio page on your instance shows the command with the URL already filled in.

terminal
curl -fsSL https://www.tofupilot.app/install | sh -s -- --org <your-org> --url https://tofupilot.example.com

Behind a private or corporate certificate authority, add --ca-cert <path to the PEM file>. It is saved with the credentials and reused by later commands.

Troubleshooting

See also

How is this guide?

On this page