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.
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.
Compare multiple measurements on one control chart. Shift+Click to select measurements with matching type, units, and limits. Shared stats and phase filtering.
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.
Touch-optimized Station UI for production screens with touch input, enabling operators to run procedures without mouse or keyboard.
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.
Automate actions when test events occur. Connect to Odoo, Linear, InvenTree, Discord, Slack, or any HTTP API. Filter, branch, and chain steps visually.
Run, debug, and monitor OpenHTF tests directly from TofuPilot Studio with live logs, breakpoints, and result inspection.
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.
Attach custom key-value metadata to runs beyond built-in fields, for traceability, filtering, and export across procedures and stations.
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.
Attach custom key-value metadata to units beyond built-in fields (serial, part, revision, batch), queryable and exportable across runs.
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.
Mark units as golden or black samples for calibration, validation, and SPC reference tracking across your test stations.
Upload pytest test results to TofuPilot with a native connector. Analyze hardware validation tests alongside production data in one view.
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.
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.
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.
Official MCP server for TofuPilot. Lets AI assistants like Claude query test data, manage runs, units, and stations through the Model Context Protocol.
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.
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.
Define rules on metrics like FPY, failure rate, Cpk, or station heartbeat. Route triggered alerts to email, Slack, or webhook channels.
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.
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.
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.
Validate serial numbers and operator inputs at the station before the run starts, with patterns, prefixes, suffixes and clear rejection messages.
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.
Revamped OpenHTF documentation with clearer step-by-step guides, real-world examples, and best practices for hardware testing.
Run a phase, sequence or measurement only if a condition holds with if: (revision, run mode, earlier result) or the run status: always(), failure().
Deploy repositories that use git submodules: shared plugs and phases in their own repository, fetched at build time through the same Git connection.
Configure plugs with with: in procedure.yaml and per-station environment variables, so one plug class serves every bench without editing YAML.
Generate a PDF test report per unit from the dashboard, from a template you manage, with all runs and sub-units, on demand or sent automatically.
Decide what happens after each phase result with then: continue, stop, retry, or ask the operator, per outcome and as a default for the whole run.
Predictable plug setup and teardown: teardown on stop and on crash, a fixed teardown order, timeouts on hung calls, and every lifecycle step logged.
Pass parameters to a phase with with: in procedure.yaml, so one Python phase function is reused at several steps with different values.
Mark process changes on control charts with dated annotations and filter analytics to before, after or between changes.
Declare a mock next to each plug in procedure.yaml and run the whole procedure with --mock, to develop and test it without the bench.
LabVIEW VIs wrapping the TofuPilot API. Create runs, upload measurements with pass/fail limits, and log results from your LabVIEW test sequences.
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.
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.
Track every instrument by serial with its calibration date and certificate, link each measurement to it, and block runs when a calibration has expired.
Declare measurements at record time inside a phase, not only up front in YAML, so tests can adapt their checks to live conditions.
Measurement system analysis with Gage R&R studies to quantify repeatability and reproducibility of your test stations and instruments.
Write pass/fail logic beyond fixed operators, including limits computed from an earlier measurement, such as twice the reference voltage, in the YAML.
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.
Manage environment variables per station for deployments, secrets, and configuration. Keep credentials and machine-specific configuration out of your test code.
Declare per-revision and per-part limits and skipped phases in procedure.yaml, so one procedure covers every board revision without Python logic.
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.
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.
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.
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.
Run form-only procedures (operator inputs, instructions, limits) directly in the browser, so suppliers and repair benches need nothing installed.
Customize the operator screen per line: your branding and colors, layout with sections and widths, and custom widgets such as a bench synoptic view.
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.
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.
Connect Azure DevOps repositories, Services or Server, so procedures deploy from your Azure Repos on every push, like GitHub, GitLab and Bitbucket.
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.
Edit limits from the dashboard next to their Cpk, with suggested limit updates, saved back to your repository as a pull request so Git stays the source.
Store complex waveforms as magnitude and phase, then validate both concurrently against per-point masks for RF and SerDes characterization.