Questions & Answers
Direct answers to the most common questions about TofuPilot: product features, pricing, security, OpenHTF and pytest integrations, and self-hosting.
Product
How TofuPilot works: test runs, stations, procedures, analytics, and the Python testing framework.
- 01
Is TofuPilot subject to the US Patriot Act or CLOUD Act?
No. TofuPilot SA is a Swiss-incorporated company with no US legal entity. US surveillance laws, including the CLOUD Act, FISA Section 702, and National… - 02
How long does integration take?
Most teams are up and running within 30 minutes. Integration requires a single line of Python — no migration or infrastructure changes needed. - 03
Which test frameworks are supported?
TofuPilot integrates natively with OpenHTF via an open-source plugin, and supports pytest, Robot Framework, and custom scripts through the Python client. - 04
How is test data protected?
All data is encrypted at rest and in transit. TofuPilot SA is Swiss-incorporated, so your data is protected by Swiss data protection law and is outside the… - 05
Does TofuPilot scale for high-volume manufacturing?
TofuPilot processes thousands of test runs daily and supports real-time queries across millions of data points, backed by a 99.9% uptime SLA. - 06
Can TofuPilot be self-hosted?
Yes. Self-hosted deployment is available on the Enterprise plan, providing complete data sovereignty for regulated and air-gapped environments. - 07
Do you support air-gapped or offline environments?
The self-hosted deployment operates fully offline with no external dependencies. Data synchronizes automatically when connectivity is restored.
Pricing
Plans, billing, run limits, and what is included in the free tier.
- 01
Is it safe to connect my factory stations to TofuPilot?
Yes, connecting your test stations to TofuPilot is safe. With our Pro plan, you can generate a secure API key for each station, with permissions restricted to… - 02
What if my stations can't connect to the internet?
If your stations can't connect publicly, you can either only allow access to TofuPilot URLs or collect test data on your side and upload it later. The original… - 03
What if my test infrastructure is fully offline?
We recommend our Enterprise plan for self-hosting TofuPilot within your infrastructure, keeping everything offline while maintaining all features. - 04
How secure is TofuPilot Cloud?
All TofuPilot plans include secure cloud hosting managed by our team, and powered by AWS. Our team manages infrastructure with end-to-end communication… - 05
Can TofuPilot be self-hosted?
Yes, you can self-host TofuPilot with our Enterprise plan. - 06
Does TofuPilot integrate with my MES or ERP?
Custom MES integration is available on-demand for Enterprise customers. - 07
Can I export my data from TofuPilot?
Yes, you can export data using our Python client or REST API or request a full extract from our team. - 08
What support does TofuPilot provide?
Support levels differ by plan: Lab users can access support through Discord, Pro users via email, and Enterprise users with a dedicated contact in our team. - 09
Who is behind TofuPilot?
TofuPilot is developed by TofuPilot SA, an award-winning Swiss startup founded by robotics test engineers. - 10
What is the TofuPilot product roadmap?
Our roadmap is dedicated to streamlining your test development processes and improving analytics and insights. You can view our full roadmap to see what we're… - 11
When am I billed?
Pro plans are billed monthly based on selected options and last month's usage. Enterprise plans offer monthly or annual billing to suit your needs. - 12
What payment methods do you accept?
We accept payments from all major card providers for Pro plans, processed securely by our partner Stripe. Enterprise clients can request custom billing options.
Security
Data protection, hosting, access control, and self-hosting options.
- 01
How do teams scope data in TofuPilot?
Teams scope which stations and runs a member sees. A station belongs to one team, but a member can belong to many. Owners, Admins, and Developers see every… - 02
Can TofuPilot be self-hosted on my own servers?
Yes, on the Enterprise plan. You run the dashboard, deployer, and PostgreSQL in your own infrastructure with Docker Compose, one organization per instance.… - 03
What are the server requirements for self-hosting TofuPilot?
Ubuntu 20.04+ or Debian on x86_64, 2+ CPU cores, 4 GB RAM, 40 GB+ disk, standard root Docker (not rootless), ports 80/443 open, and three subdomains for the… - 04
How do I back up a self-hosted TofuPilot instance?
Your data lives in two Docker volumes: tofupilot-pg-data for the PostgreSQL database and tofupilot-seaweed-data for file storage. Back up both volumes on a… - 05
What user roles does TofuPilot have?
Five roles: Owner, Admin, Developer, Viewer, and Operator. Teams additionally scope stations and data by department, supplier, or production line. - 06
How do I remove a team member in TofuPilot?
Open Settings > Members. Ban blocks a user's sign-in without deleting their data and is reversible; Remove revokes access permanently. Both end access… - 07
Does TofuPilot support SSO with Entra ID, Okta, or Google Workspace?
Yes. Single sign-on via SAML 2.0 and OIDC works with Okta, Microsoft Entra, Azure AD, Auth0, OneLogin, and Google Workspace. SSO is available on Enterprise… - 08
Does TofuPilot support SCIM provisioning?
Yes. Your identity provider pushes member changes to TofuPilot, so adding a user in Okta creates a TofuPilot account and removing them from the group revokes… - 09
Where is TofuPilot cloud data hosted?
Your core data (database and file storage) is hosted in Europe, operated by TofuPilot SA, a Swiss company not subject to the US CLOUD Act. Compute runs on a… - 10
Does TofuPilot support two-factor authentication (2FA)?
Yes. TofuPilot supports two methods: passkeys (WebAuthn backed by biometrics, phone, or a hardware key like YubiKey) and authenticator apps (TOTP from… - 11
How does TofuPilot secure my test data and access?
Data is encrypted in transit and at rest. Access is controlled by role-based permissions and scoped API keys, and two-factor authentication supports passkeys… - 12
Does TofuPilot work in air-gapped environments?
Yes. The self-hosted deployment runs fully offline. License activation without internet works by copying a license token from TofuPilot Orbit and pasting it… - 13
Does TofuPilot depend on the EU-US Data Privacy Framework?
No. The EU-US Data Privacy Framework is required for US companies transferring EU personal data to the US. Since TofuPilot is Swiss-based with EU-hosted…
Integrations
Connecting TofuPilot with OpenHTF, pytest, LabVIEW, instruments, and other tools.
- 01
How do I install the TofuPilot Python SDK?
Install from PyPI: pip install tofupilot. Import it as "from tofupilot.v2 import TofuPilot". Pass your API key to the constructor or set the TOFUPILOT_API_KEY… - 02
What is TofuPilot's relationship with OpenHTF?
We've used TofuPilot for years on drone manufacturing floors and maintain openhtf.org, the open-source OpenHTF documentation site. We're also close to the… - 03
Why does my Cpk drop when tests correctly catch failing units?
Cpk measures process capability, so far-out-of-limit readings from a known upstream failure distort it. Use yield to track pass/fail performance and Cpk to… - 04
Can I export test data to CSV or JSON?
Yes. The Run Explorer's Export button writes the current filtered run set to CSV (one row per run) or JSON (nested), for all visible rows or a selection.… - 05
How do I install TofuPilot behind a corporate proxy or firewall?
Allowlist tofupilot.sh on your proxy so the install script can download. Stations only need outbound HTTPS to TofuPilot; no inbound ports are required. If the… - 06
Do I need GitHub to deploy test procedures?
No. Git integration with GitHub or GitLab enables auto-deploy on every push, but you can also deploy from any machine without a connected repo using "tofupilot… - 07
How do I import STDF files into TofuPilot?
You need an STDF v4 datalog (.stdf) and a procedure in the dashboard. STDF is structured binary and requires no column mapping. Drag the .stdf file into the… - 08
Can I sync TofuPilot test failures to Linear?
Yes. The Linear integration lets failing runs and phases open or update tickets from the dashboard. It offers two actions: Create issue (with optional… - 09
How do I migrate from NI TestStand to TofuPilot?
Export an NI TestStand XML report (.xml) and create a procedure in the dashboard. Drag the .xml onto the import page and click Import; TofuPilot auto-detects… - 10
How do I integrate OpenHTF with TofuPilot?
Deployed through the TofuPilot CLI, OpenHTF scripts stream live test data and the operator UI with zero configuration. Standalone, it takes one wrapper: import… - 11
Can TofuPilot sync test results to InvenTree?
Yes. The InvenTree integration writes TofuPilot test data into your InvenTree instance so build outputs, stock items, and test reports stay in sync. Five… - 12
Can TofuPilot alert me when a measurement drifts or a unit fails?
Yes. Workflows trigger on run events and send notifications through Slack, Discord, email, or HTTP calls, and AI alerts watch for anomalies such as measurement… - 13
Can I query my TofuPilot test data in natural language?
Yes, with TofuPilot Chat. It answers questions across every run, unit, part, batch, and station in your organization. Chat calls typed tools backed by the REST… - 14
What is TofuPilot Agent?
TofuPilot Agent runs autonomous root cause analysis on failing units inside the chat interface. It frames the failure in plain language, hypothesizes candidate… - 15
Can I attach files to a test run in TofuPilot?
Yes. An attachment is a binary file persisted alongside a run, such as a photo, a scope capture, a diagnostic dump, or a PDF report. Each attachment belongs to… - 16
How do I run a test procedure with the TofuPilot CLI?
Run tofupilot run [PATH], where PATH is an optional procedure .yaml file, directory, or Python entry point. Without a path it runs locally and, without… - 17
What is a sub-unit in TofuPilot?
A sub-unit is a child unit assembled into a parent unit, such as a PCB inside a finished product. A parent unit can reference multiple sub-units by their child… - 18
What's the difference between a part, revision, and unit?
A part is the product or component family that units belong to (e.g. PCB-V1). A revision is a version of a part; it defaults to A. A unit is the individual… - 19
How do I install TofuPilot on Linux?
Run the install script in a terminal: curl -fsSL https://tofupilot.sh/install | sh. This installs the tofupilot CLI. To register a machine as a station,… - 20
How do I uninstall TofuPilot?
Run tofupilot uninstall. It removes the CLI binary and, by default, every local data file including queued uploads, pulled deployments, and cached config. Use… - 21
What can I do with the TofuPilot CLI?
The CLI has 26+ subcommands. Common ones: tofupilot login/logout/whoami (auth), tofupilot run (execute a procedure locally with the operator UI), tofupilot… - 22
Can TofuPilot connect to my ERP (Odoo)?
Yes. The Odoo integration pushes test data into your Odoo instance so production records, quality checks, and chatter stay in sync. Three actions are… - 23
What is a batch in TofuPilot?
A batch groups units you produced together, such as a manufacturing lot, a build day, or a contract manufacturer shipment. Its identity is its number; all… - 24
How do I deploy a procedure with the TofuPilot CLI?
Run tofupilot deploy from a directory linked to a procedure that contains a pyproject.toml. It uploads the local source tree, builds it in the cloud, and… - 25
How do I import OpenHTF results into TofuPilot?
Save an OpenHTF test record as JSON via the OutputToJSON callback and create a procedure in the dashboard. Drag the .json file to the dropzone (auto-detected… - 26
Can TofuPilot call any external API over HTTP?
Yes. The HTTP integration lets a workflow send a request to any URL, so TofuPilot events can trigger systems without a native integration. It supports GET,… - 27
Does TofuPilot have an MCP server for AI agents?
Yes. The TofuPilot MCP server lets AI agents (Claude, Cursor, and any Model Context Protocol client) work with your test data. It exposes read tools by default… - 28
How do I record the operator of a test in TofuPilot?
Pass the operated_by field (operator email) when creating the run through the API or SDK. The run then shows the operator identity in the dashboard, separate… - 29
Do test stations need permanent internet access?
No. Every completed run is persisted to a local queue before upload; a background loop drains it every few seconds and retries with backoff from 15 seconds up… - 30
How do I install TofuPilot on macOS?
Run curl -fsSL https://tofupilot.sh/install | sh in Terminal to install the tofupilot CLI (same command as Linux). Register a station headlessly with tofupilot… - 31
How do I install the TofuPilot CLI?
Run the install script on Linux or macOS: curl -fsSL https://tofupilot.sh/install | sh. A PowerShell variant is available for Windows. After installing, run… - 32
Does TofuPilot run on Windows?
Yes. The CLI, Station, and Studio run on Windows through a PowerShell installer. Linux and macOS are also fully supported. - 33
How do I migrate an existing test suite to TofuPilot without downtime?
TofuPilot supports incremental migration: migrate one product line at a time (vertical), one test stage at a time (horizontal), or a mix (hybrid). Your legacy… - 34
Does TofuPilot work with OpenHTF, pytest, and Robot Framework?
Yes. TofuPilot supports OpenHTF, pytest, Robot Framework, and its own open-source TofuPilot framework. Any custom framework can integrate through the REST API… - 35
Can I upload OpenHTF results that were recorded offline?
Yes. Write the OpenHTF JSON report to disk, then upload it later with client.create_run_from_openhtf_report("./report.json"). Original timestamps are… - 36
How do I add a TofuPilot desktop shortcut to a station?
In the dashboard, go to Stations, select the station, open Setup, and toggle "Desktop shortcut" on. The CLI writes a launcher to the station's desktop… - 37
Can I use pytest for hardware testing with TofuPilot?
Yes. The CLI runs pytest suites natively under an embedded plugin: each test_* function becomes a phase, and assert statements like "assert lo <= x <= hi"… - 38
Can I create TofuPilot test phases dynamically at runtime?
In the TofuPilot framework, phases are declared in a YAML procedure and each phase runs a Python function. If you need programmatic phase generation at… - 39
Can I share data between test phases in TofuPilot?
Yes. A phase can read an earlier phase's results by declaring a function parameter named after that phase's key; TofuPilot injects a read-only result object… - 40
Are TofuPilot measurements scoped to a test phase?
Measurements belong to the phase that records them. Each measurement is a typed value (number, string, boolean, JSON, or multi-dimensional series) validated… - 41
Can I control lab instruments over SCPI, VISA, or LabVIEW?
Python is the primary scripting language, so instrument control works through standard libraries like PyVISA, pyserial, or pymodbus inside plugs, which hold… - 42
Which operating systems does TofuPilot support?
The TofuPilot CLI supports Linux, macOS, and Windows. On macOS and Linux, install with curl -fsSL https://tofupilot.sh/install | sh; on Windows, run the… - 43
How do I create a test run with the TofuPilot API?
Use the Python SDK (client.runs.create with procedure_id, serial_number, part_number, outcome, and phases) or the REST endpoint POST… - 44
How do I update the TofuPilot CLI?
Run tofupilot update. It checks for a newer CLI release and installs it in place. The CLI also checks in the background and prompts you when an update is… - 45
How do I create and manage API keys?
Open Settings > API keys, click Create key, name it, and pick an expiry. The key is shown once. There are two types: user keys, which inherit your role and… - 46
Does TofuPilot integrate with Slack?
Yes. TofuPilot posts a message to a Slack channel whenever a workflow fires, using a Slack incoming webhook (no OAuth app or token management). Create an… - 47
Can two units share a serial number if they have different part numbers?
No. Serial numbers are unique per organization (case-insensitive), so a unit's full history stays unambiguous. If your lines reuse short serials across… - 48
Can I edit TofuPilot run metadata after upload?
Yes. The v2 endpoint PATCH /v2/runs/{id}/metadata upserts custom metadata key-value pairs on a run after ingestion. To correct a unit's serial number or part… - 49
How do I fetch a unit's latest test run via the TofuPilot API?
Query runs.list filtered by serial number, sorted by start time descending with limit=1. For per-unit lifetime views in the dashboard, use the Unit Explorer. - 50
Does TofuPilot have a REST API without the SDK?
Yes. The full platform is exposed as a REST API at https://www.tofupilot.app/api/v2 with API-key authentication, pagination, and typed error codes. Every… - 51
Can one test station run multiple procedures?
Yes. Deploy each procedure to the station; the operator then selects which procedure to run from the station UI. A station can hold as many procedures as your… - 52
Can stations run headless, for example in CI or a rack with no display?
Yes. Stations authenticate with long-lived station keys instead of interactive login. The install command embeds a single-use setup token (valid one hour,… - 53
How do I install system packages (non-Python dependencies) on a station?
Install native system dependencies on the machine's system Python, then enable the "System packages" toggle in the station's Setup. On every deployment the CLI… - 54
How do I launch a TofuPilot station on boot?
Use the launch-on-boot setting; the CLI installs a system service (systemd on Linux) so the station starts with the machine, including root-level system… - 55
Can I roll back a bad deployment in TofuPilot?
Yes. Open the deployment's menu in the dashboard and select Instant Rollback to revert stations to any previous deployment immediately. Rollback is… - 56
How do I import test results from a CSV file?
You need a CSV with a header row and a procedure created in the dashboard. Drop the .csv on the procedure's import page, click the row to open the mapping… - 57
Does TofuPilot integrate with Discord?
Yes. TofuPilot posts a message to a Discord channel whenever a workflow fires, via a Discord webhook, so you do not need to host a bot. In Discord, create a… - 58
What file formats can I import into TofuPilot?
TofuPilot imports nine formats in two categories. Tabular (require field mapping): CSV and Excel (.xlsx). Structured (auto-detected): STDF, ATDF, ATML, NI… - 59
How do I import an Excel file into TofuPilot?
You need an Excel workbook (.xlsx) with a header row and a procedure created in the dashboard. Drop the .xlsx on the import page, click the row to open the… - 60
What analytics does TofuPilot provide out of the box?
First pass yield, Cpk and control charts (measurement control), phase Pareto by failure rate and duration, run and unit explorers with filtering, and log…
Company
About the team, the company, and how we work with customers.
- 01
Is TofuPilot station licensing tied to hardware?
A station counts against your plan when it is registered, not by hardware fingerprint. You can remove a station and register another in its place, so replacing… - 02
When am I billed for TofuPilot?
Pro plans bill monthly through Stripe based on selected options and the previous month's usage. Usage is visible under Settings > Usage with notifications at… - 03
How much does TofuPilot cost?
Three plans. Lab is free: 1 seat, 1 station, 100 runs per month, 10 GB storage. Pro is $50 per user per month with 1,000 runs per month included (then $0.01…