Changelog
Stay up to date with every new feature, improvement, bug fix, and product release shipped by the TofuPilot engineering team.
ROADMAP
Choose the features that would help your team test and ship hardware.
No recorded releases
No recorded releases
No recorded releases
No recorded releases
No recorded releases
Connect GitHub repositories to TofuPilot for automated deployments, test script version control, and CI/CD pipeline integration.
Single sign-on with your identity provider — Okta, Azure AD, OneLogin, and more — for secure, centralized team authentication.
Automatically sync users and groups from your identity provider to TofuPilot. Onboard and offboard team members instantly.
Assign admin, operator, or viewer roles to control who can access, modify, or export hardware test data in your organization.
Segment data visibility across teams, facilities, or external suppliers. Control who sees what with team-based access scoping.
Official C# SDK for TofuPilot API v2: upload runs, measurements and attachments from .NET test code or OpenTAP, with typed responses and NuGet publishing.
Standalone reference docs for PyVISA, pySerial and pymodbus, rebuilt with runnable examples for driving lab instruments from Python tests.
Deploy TofuPilot on your own infrastructure with a free Lab license. Sign in to Orbit, grab your license key, and run the deploy script. No sales call needed.
Step-by-step tutorials and best practices to help you build, automate, and scale hardware tests with TofuPilot and OpenHTF.
Ready-to-use Python test templates for PCB, battery, motor, and sensor testing. Copy, customize, and deploy to your stations in minutes.
Compare multiple measurements on one control chart. Shift+Click to select measurements with matching type, units, and limits. Shared stats and phase filtering.
Touch-optimized Station UI for production screens with touch input, enabling operators to run procedures without mouse or keyboard.
Automate actions when test events occur. Connect to Odoo, Linear, InvenTree, Discord, Slack, or any HTTP API. Filter, branch, and chain steps visually.
One command-line tool to log in, pull procedures, run tests and upload results, with device login for stations and the full API from your terminal.
See who is looking at a station's operator UI and watch fields being typed live, so engineers can follow and help an operator remotely.
New measurement table in the run page with improved filtering, sorting, and inline limit visualization for faster hardware test analysis.
Send test result notifications to Discord channels via webhooks. Trigger alerts on test failures, unit creation, or batch events to keep your team informed.
Official Rust client for TofuPilot API v2. Generated from OpenAPI spec with full endpoint coverage, typed responses, integration tests, and crates.io release.
Official C++ client for TofuPilot API v2. Generated from OpenAPI spec with full endpoint coverage, typed responses, and integration tests for native workflows.
Connect TofuPilot to Linear to automatically create issues and add comments from test results. Trigger workflows on failures to open bugs or track tasks.
Stations keep testing when the network drops: runs are queued locally, retried automatically, and visible in the operator UI until uploaded.
Run TofuPilot stations on Windows PCs alongside Linux and macOS, with app shortcuts, automatic updates and the same operator UI on every OS.
Watch test runs live from the dashboard as they execute on the station: phases, measurements and operator prompts stream in real time.
See every station's hardware, CLI version, connectivity and activity timeline in the dashboard, so you spot an offline or outdated bench fast.
Rebuilt Insights page with interactive control charts, spec and control limits, histograms, capability indices (Cp, Cpk, Pp, Ppk), and drill-down filters.
Headless production test runner with offline mode, local caching, and automatic sync — built to run tests on the manufacturing line.
Sync hardware test data and quality metrics with your Odoo ERP instance. Bridge manufacturing execution and quality management systems.
Connect GitLab repositories with real-time webhook sync, soft delete for branches and commits, and support for both Group and Personal Access Tokens.
Builds run once in isolation per commit, producing reproducible artifacts. Stations install fast, no local venv or dependency management.
Push to your main branch and TofuPilot automatically deploys the new test script to all linked stations. No manual step.
Upload MATLAB test results to TofuPilot with a native connector. Bridge simulation and hardware validation data in a single platform.
Run TofuPilot stations on Raspberry Pi 4/5 and other ARM64 single-board computers for cost-effective production line testing.
Run, debug, and monitor OpenHTF tests directly from TofuPilot Studio with live logs, breakpoints, and result inspection.
Attach custom key-value metadata to units beyond built-in fields (serial, part, revision, batch), queryable and exportable across runs.
Attach custom key-value metadata to runs beyond built-in fields, for traceability, filtering, and export across procedures and stations.
Mark units as golden or black samples for calibration, validation, and SPC reference tracking across your test stations.
Rank phases by failures, retries, and wall-clock duration to find the weakest step, then drill into the measurements behind each failure.
Keep many procedures in one repository: point each one at its package directory, share code through uv workspaces and deploy them separately.
A dedicated operator role for line technicians: run tests and see their results without access to settings, and every run is attributed to them.
Find why units fail: a pareto of failing phases, drill-down to the runs behind each bar, and side-by-side comparison of phases across runs.
Stop a run as soon as a phase fails with on_first_failure, or end it from the operator UI with the Stop button, which runs teardown before exiting.
Import existing test reports into TofuPilot from OpenHTF, WATS, ATML, NI TestStand, STDF, CSV, and Excel files, with downloadable sample files for every format.
Lightweight evolution of the Station app: faster deploys, broader platform support, and first-class integration with coding AI agents.
Revamped documentation with restructured pages, interactive guides, updated API reference, and improved search across all content.
Upload Robot Framework test results to TofuPilot with a native connector. Track hardware test trends and quality metrics over time.
Upload pytest test results to TofuPilot with a native connector. Analyze hardware validation tests alongside production data in one view.
Official MCP server for TofuPilot. Lets AI assistants like Claude query test data, manage runs, units, and stations through the Model Context Protocol.
The TofuPilot CLI for macOS is signed and notarized with an Apple Developer ID, so it installs and runs on station Macs without security warnings.
Dedicated API v2 endpoints to create, read, and manage phases and measurements independently from runs. Enables advanced integrations and bulk data operations.
Install the station as a system service that starts on boot and restarts on failure, so production benches come back without anyone logging in.
Pick Python 3.12, 3.13, or 3.14 for your test stations from your pyproject.toml. Use the latest language features with no extra setup needed.
Roll back every station to a previous test script build in one click. No rebuild, and auto-push pauses until you push again or resume it.
Stations in China install and update reliably: the CLI, Python runtime and packages are served from mirrors reachable behind the Great Firewall.
Control charts for all six measurement types, with a Failures tab, filters by environment, deployment, version and duration, and full-dataset histograms.
Define rules on metrics like FPY, failure rate, Cpk, or station heartbeat. Route triggered alerts to email, Slack, or webhook channels.
Attach VS Code or any debugpy client to Python phases on a station, set breakpoints and step through a live test run line by line.
Export selected phases and measurements to CSV or JSON straight from the dashboard selection bar, ready for Excel, Python or your own reports.
Sign in to TofuPilot with your Atlassian account, so teams already working in Jira, Confluence and Bitbucket log in with a single click.
Write, run and debug procedures from a web workbench paired with your local station, with an AI assistant, diff review and live run output.
Sync test data with InvenTree inventory. Upload test results to stock items, update statuses, transfer stock, complete builds, and print labels from workflows.
Keep an instrument connection warm across runs with a station-level plug scope, so equipment is set up once instead of every run.
Run a single phase or a range of phases on its own while building a procedure, so you iterate on one step without replaying the whole test.
Overlay multi-dimensional measurements such as sweeps and IV curves across runs in Measurement Control to spot drift in the whole curve shape.
Run stations behind a corporate TLS proxy or private certificate authority: uploads, the realtime link and the OpenHTF client all trust your CA.
Attach your own key-value fields to stations, parts and revisions, alongside run and unit metadata, to filter and trace with your own vocabulary.
Record who ran each test, from a logged-in account or a free-text operator name typed at the station, and filter runs by operator.
Connect Bitbucket repositories to TofuPilot for automated deployments, test script version control, and CI/CD pipeline integration.
Run creation is idempotent: when a station loses the server response on a flaky network and retries, the run is stored once, never duplicated.
Download any analytics chart as an image for reports and reviews, plus keyboard shortcuts and a date filter you can type into directly.
Install the TofuPilot CLI on any station with a single command from tofupilot.app/install, on Linux, macOS and Windows, with no extra setup.
Test several units in parallel on one fixture: per-slot runs grouped by execution, live slot status in the operator UI, and per-slot results in the dashboard.
Validate serial numbers and operator inputs at the station before the run starts, with patterns, prefixes, suffixes and clear rejection messages.
Revamped OpenHTF documentation with clearer step-by-step guides, real-world examples, and best practices for hardware testing.
Write steps and benches once as sequence files, called with uses: and with: inside a procedure, or used around it for bench setup and teardown.
Redesigned operator screen in kiosk and dashboard: station and procedure cards, scanner-safe forms, Off, Side or Full run details, shared with the run page.
Predictable plug setup and teardown: teardown on stop and on crash, a fixed teardown order, timeouts on hung calls, and every lifecycle step logged.
Deploy repositories that use git submodules: shared plugs and phases in their own repository, fetched at build time through the same Git connection.
Start and follow runs from your own program or CI: pass the serial, procedure and options, then read live progress and results as a JSON stream.
Pass parameters to a phase with with: in procedure.yaml, so one Python phase function is reused at several steps with different values.
Configure plugs with with: in procedure.yaml and per-station environment variables, so one plug class serves every bench without editing YAML.
Post to a Slack channel from any workflow through an incoming webhook: test failures, new units, batch events, with run data in the message.
Choose which columns the Runs and Units lists show, including run and unit metadata keys, with a sticky header that stays visible while scrolling.
Retire the original Studio desktop app. Procedures, plugs and stations keep working, and editing moves to Studio v2 in the dashboard and to the CLI.
Retire the original operator UI once the technician view ships. Stations move to the new interface automatically, with no change to procedures.
Pause a phase on its operator screen with ui.wait(), apply the answer, show the new reading and ask again, for calibration and adjustment loops.
Station kiosk opens without translate prompts, AI sidebars, image search or autofill bubbles on Edge, Chrome and Firefox, with policy files for a full lockdown.
Call the TofuPilot API from test procedures as the identity the run uploads with, with no API key to create or store on the station.
Define per-channel measurements, swept phases or many slots in one block with matrix:, instead of copy-pasting YAML blocks for each value.
Track every instrument by serial with its calibration date and certificate, link each measurement to it, and block runs when a calibration has expired.
Write pass/fail logic beyond fixed operators, including limits computed from an earlier measurement, such as twice the reference voltage, in the YAML.
Restart a plug whose process crashed or lost its instrument, then let the phase retry, so a dropped connection does not fail the unit under test.
Name product signals in the procedure and wire them to instruments in the bench sequence, so a sequence never changes when the bench or an instrument does.
Deploy procedures that store vendor DLLs, firmware images and other large binaries with Git LFS: stations receive the real files at every commit.
Check and build a procedure on your machine or in your CI, with your private packages, then deploy the artifact. TofuPilot keeps versions and rollback.
Measurement system analysis with Gage R&R studies to quantify repeatability and reproducibility of your test stations and instruments.
Admins work with standard rights by default and switch to admin mode with MFA for sensitive changes. Admin mode ends after 15 minutes.
Suspend a member, API key or station in one action: sessions end and keys stop at once, and reactivation restores access exactly as before.
Require MFA for every member: SSO members through the identity provider, others with an authenticator app or passkey and backup codes.
Record every admin and sign-in event, keep it 18 months with tamper evidence, export it as JSON and stream it to your SIEM over syslog or webhook.
Declare measurements at record time inside a phase, not only up front in YAML, so tests can adapt their checks to live conditions.
Stations verify every deployed file against its build hash before each run and refuse to start if anything was modified on the machine.
Mark a limit as non-decisive in procedure.yaml: values outside it stay passing but are flagged marginal in the operator UI and dashboard.
A fixed header on the operator screen shows serial number, part, operator and chosen run metadata, the same on every phase and procedure.
Guide operators when a step fails: per-phase hints and images, decision trees and guided checks, so they find the cause before retesting or escalating.
Declare per-revision and per-part limits and skipped phases in procedure.yaml, so one procedure covers every board revision without Python logic.
Define the path a unit follows across stations: each test checks that earlier steps passed, chains the next one, and gives one verdict per unit.
Operators sign in on the station with SSO from their phone or with a badge before a run, so every run and step is recorded under a person.
Python SDK for visual inspection in Framework procedures: capture camera images, detect defects with AI and record each check as a measurement.
Publish a CycloneDX SBOM and a signed container image with every release, so self-hosted customers can verify what they install.
Phases run one after another in file order unless you ask for parallel execution, so a procedure reads top to bottom like the test spec.
A role-restricted station view to call plug methods and jog axes by hand, with runs kept out of production data and yield.
Phases that record no measurement, like a barcode scan or a door check, show a neutral status instead of PASS on the operator screen.
Run stations on ARMv7 boards like 32-bit Raspberry Pi OS and on 32-bit Windows (x86), with the same CLI, operator UI and automatic updates.
Scan a label once: every field is parsed, the right procedure is picked from the part number, options load at runtime and the unit history shows up.
Deploy procedures and collect run data on fully air-gapped stations by transferring them on a USB key, with no network link to the dashboard.
Connect Azure DevOps repositories, Services or Server, so procedures deploy from your Azure Repos on every push, like GitHub, GitLab and Bitbucket.