Hardware-in-the-loop testing at scale.
Stout is the enterprise control plane for hardware-in-the-loop testing. It adds fleet management, hardware test automation, and access control on top of the open-source Lager runtime.
Boxes
Every Lager box across your fleet, with live status.
7 boxes
Factory
Automated hardware test suites
5 steps · 4m 12s · 2h ago
8 steps · running · just now
23 steps · 11m 03s · 1d ago
12 steps · 7m 48s · 5h ago
3 steps · No runs yet
7 steps · 1m 20s · 3d ago
Workbench
Drive a box's instruments directly from the dashboard.

Acroname 8Port
USB0::0x24FF::0x0013::56BCCDD3::INSTR

LabJack T7
USB0::0x0CD5::0x0007::::INSTR

MCC USB-202
USB0::0x09DB::0x012B::0252829E::INSTR

Rigol DP711
serial://067b:23a3/serial/00000006
psu
Rigol_DP711
Voltage (V)
Current limit (A)
Over-voltage protection (V)
Over-current protection (A)
10:42:01 [psu] enable → output on 10:42:03 [psu] set_v → 3.30 V 10:42:03 [psu] set_a → current limit 0.50 A 10:42:09 [psu] read → 3.301 V · 0.182 A
Analytics
CLI command usage across your fleet.
Total invocations
12,480
Distinct users
37
Top CLI Commands
Top 5 Commands Over Time
PR Reviewers
AI-generated hardware tests on every pull request. Configure one reviewer per GitHub repo.
6 reviewers
Manage your fleet of Lager boxes and check each one's status, IP address, and Lager version.
Run your saved hardware test suites and see which ones pass or fail across the fleet.
Control a box's instruments, like power supplies, e-loads, and GPIO, right from your browser.
Track how your team uses the Lager CLI, including the most-run commands and usage over time.
Use AI to generate and run hardware tests on every GitHub pull request.
Hardware labs weren't built for scale
No fleet-wide visibility
No single place to see which boxes are online, what instruments are connected, or what jobs are running. Every status check hits one box at a time.
See solutionGovernance gap
No access controls, audit trails, or compliance reporting across shared test infrastructure.
See solutionManual job dispatch
Tests run as ad-hoc CLI calls from each engineer's laptop, with no queue for contention and no record of what ran, what passed, or what it produced.
See solutionEverything your hardware test fleet needs
Fleet management, job orchestration, firmware CI, and access control — four pillars, one control plane.
Fleet Management
Register, probe, and monitor Lager boxes. See instruments, nets, and webcams. Import existing boxes in one click.
Learn moreJob Orchestration
Submit jobs via dashboard or API. BullMQ dispatch, real-time log streaming via WebSocket, automatic artifact storage.
Learn moreWorkflows & CI
YAML multi-step pipelines with manual, webhook, or schedule triggers. GitHub App integration for check runs on PRs.
Learn moreTeam & Access Control
Orgs with role-based access, JWT sessions, API keys for boxes. SSO backend supports OIDC and SAML.
Learn moreBuilt for your entire hardware team
Whether you're hands-on with instruments or managing lab strategy, Stout fits both.
Test Engineers
See the whole fleet at a glance. Submit jobs, stream logs, and pull artifacts from one dashboard instead of chasing box IPs.
Engineering Managers
Organize boxes under teams with role-based access. Track pass rates and job duration across the org.
DevOps / Infrastructure
Register boxes with API keys, integrate via the Stout GitHub App, and trigger hardware tests from CI.
How it works
Lager connects your developers to your hardware. Stout is the enterprise control layer that governs it at scale.
Developer / CI
Engineers and CI pipelines submit jobs and view live results over the REST API or the dashboard.
Stout Control Plane
Queues, authorizes, and dispatches each job to the right box, with role-based access and audit logging.
Lager Boxes
Linux machines running the open-source Lager runtime in Docker, wired to your test instruments.
Physical Hardware
Oscilloscopes, power supplies, debuggers, and the devices under test on each bench.
Built on Lager
Lager is fully open-source (Apache 2.0), with no private fork, no patched binaries, and no paywalled core, so if Stout ever stops fitting, your boxes, scripts, and tests keep running on vanilla Lager.
Frequently asked questions
Common questions from engineering teams evaluating Stout.
What is Stout?
Stout is an enterprise control plane for hardware-in-the-loop (HIL) testing and hardware test automation. It gives teams a single dashboard and API for their fleet of Lager test boxes, adding job orchestration, CI integration, role-based access control, and audit logging on top of the open-source Lager runtime.
What is Lager?
Lager is an open-source (Apache 2.0) hardware test automation platform. A Lager box is a Linux machine that runs the Lager runtime in Docker and drives the instruments on a test bench — oscilloscopes, power supplies, debuggers, and the devices under test — through a Python API and CLI. Stout manages fleets of these boxes.
Does Stout replace Lager?
No. Lager is the open-source runtime that controls your hardware; Stout is the control plane that governs and scales it across teams. It connects to your existing Lager boxes unchanged, and Lager stays Apache 2.0, so if you ever stop using Stout, your boxes, scripts, and tests keep running on vanilla Lager.
How is Stout different from generic CI tools like Jenkins or GitHub Actions?
Generic CI runners assume stateless, interchangeable compute. Hardware benches are the opposite: each box has specific instruments wired to specific devices, and two jobs cannot share an oscilloscope. Stout adds the hardware-aware layer — resource locking, instrument inventory, capability-based dispatch, log streaming, and artifact capture — and plugs into your existing CI rather than replacing it.
Can we trigger hardware-in-the-loop tests from CI?
Yes. The Stout GitHub App posts check runs on pull requests: a push or PR trigger starts a workflow, Stout dispatches it to a matching Lager box, and the pass/fail result lands next to your unit tests. Branch protection rules can require hardware tests to pass before merge. Anything that can send a webhook can also trigger a workflow.
How do SSO and access control work?
Users sign in through your identity provider over SSO (OIDC or SAML), with just-in-time provisioning on first login. Role-based access control scopes exactly who can view and run what across organizations, teams, and individual boxes, and removing a user in your IdP immediately revokes their access.
How does Stout keep our hardware and data secure?
Every action is recorded in an immutable audit log (who did what, on which box, and when), and accounts can require MFA. Stout runs as a managed cloud service: your boxes open an authenticated outbound connection to it, so there are no inbound ports to expose on your test network.
What does pricing look like?
Pricing scales with your team and fleet size. Book a demo and we'll put together a quote that fits.
See Stout in Action
In a 20-minute call, we'll show how Stout works for your team's hardware testing.
What to Expect
- A 20-minute personalized walkthrough
- Live demo on real Lager boxes, not slides
- No commitment required