Flojoy Studio is an open-source test sequencer for hardware validation, released under the MIT license by Flojoy, a startup founded in 2023. It imports pytest, Python and Robot Framework scripts into a sequence, offers a no-code block builder, and syncs results to Flojoy Cloud. Development has stopped: this guide summarizes the project's current state and compares the options for teams that still run Flojoy sequences.
Status was checked against the GitHub repositories and the project's domains in November 2026.
Current Status of Flojoy Studio
| Item | State |
|---|---|
| Latest release | v0.4.3, 2024-11-24 |
| Last commit on main | 2024-11-24 |
| Repository | Not archived, no deprecation notice |
| Flojoy Cloud repository | Last push 2024-07-06 |
| Successor project | flojoy-ai/studiolab, "next-generation Flojoy Studio", last push 2025-03, no release |
| flojoy.ai | Serves a domain parking page |
| docs.flojoy.ai | Still online as a static site |
No shutdown announcement was published, but two years without a release, a dormant cloud backend and a parked company domain mean the tool receives no fixes, no security updates and no support. A test station is expected to run for years, so this is the main reason to plan a move.
What Flojoy Studio Provided
- Sequencer. Imports existing pytest, Python or Robot Framework scripts; each pytest test becomes a row in the sequence.
- No-code builder. Visual blocks wired together, with custom blocks written in Python using the
@flojoydecorator. - Operator view. A desktop GUI (Electron) showing pass or fail per sequence step.
- Instrument database. Documented connections to NI, Tektronix and other instruments.
- Flojoy Cloud. Optional result sync with a part-number hierarchy, barcode search, per-station run views and SPC charts.
Fleet management and deployment of sequences to stations were not documented.
Alternatives Compared
| Flojoy Studio | TofuPilot | OpenHTF | HardPy | OpenTAP | |
|---|---|---|---|---|---|
| Maintained | No (last release 2024) | Yes | Yes | Yes | Yes (Keysight) |
| License | MIT | MIT (Framework) | Apache 2.0 | GPL-3.0 | MPL 2.0 |
| Runs pytest scripts as is | Yes | Yes | No | Partly (HardPy API) | No |
| Runs Robot Framework suites | Yes | Yes | No | No | No |
| Language for new tests | Python, blocks | Python and YAML | Python | Python | C# |
| Operator UI | Desktop app | Browser kiosk, declared in YAML | Web Station Server | Browser panel | Desktop editor and panel |
| Result analytics | Flojoy Cloud (dormant) | Dashboard, hosted or self-hosted | None built in | StandCloud (paid) | Desktop tools (paid edition) |
| Deploy to stations | Not documented | Git push, instant rollback | Manual | Manual | Deployment license |
Moving Flojoy Sequences to TofuPilot
Most Flojoy sequences are pytest or Python scripts imported into the sequencer, and those scripts are the asset to keep. The TofuPilot CLI runs pytest and Robot Framework suites natively and streams each test as a phase to the dashboard.
Step 1: Recover the Scripts
Export the pytest, Python and Robot Framework files the sequence references. Blocks from the no-code builder have no equivalent and are rewritten as Python; custom blocks are already Python functions and port with little change.
Step 2: Run Them Through the TofuPilot CLI
A pytest file runs unchanged. Record values with limits so they reach the dashboard as measurements, not only as a pass or fail:
# Plain pytest test; the TofuPilot CLI maps each test to a phase.def test_rail_3v3(dmm): voltage = dmm.read_voltage() assert 3.2 <= voltage <= 3.4See pytest on TofuPilot and Robot Framework on TofuPilot for the measurement helpers that keep limits and units on each value.
Step 3: Rewrite Block Sequences as a Procedure
For sequences built from blocks, the TofuPilot Framework is the closest replacement: the sequence and limits go in YAML, each step is a Python function.
procedure.yaml19 lines
name: Power Checkversion: 1.0.0plugs: - name: Multimeter key: dmm python: plugs.dmm:Multimetermain: - name: Rail 3V3 key: rail_3v3 python: phases.rail_3v3 measurements: - name: Rail 3V3 key: rail_3v3 unit: V validators: - {operator: ">=", expected_value: 3.2} - {operator: "<=", expected_value: 3.4}def rail_3v3(measurements, dmm): measurements.rail_3v3 = dmm.read_voltage()Step 4: Deploy to the Stations
Push the repository to your Git provider and create a procedure from it. Every station linked to the procedure runs the same version, and a bad version is rolled back from the dashboard.
Which Alternative to Choose
| Situation | Better fit |
|---|---|
| Sequences are mostly pytest or Robot Framework scripts | TofuPilot (runs both natively) |
| You used Flojoy Cloud for SPC and traceability | TofuPilot (dashboard replaces it) |
| You want a single pure-Python framework with a long history | OpenHTF |
| You want pytest plus a simple operator panel on one bench | HardPy |
| .NET team with Keysight instruments | OpenTAP |
For a broader comparison, see Open Source Test Executive Alternatives.
