Hardware-in-the-loop testing at scale.
Stout runs your test suite on real boards on every pull request, and reports pass or fail as a check before anyone merges.
Boxes
Every Lager box across your fleet, with live status.
7 boxes
Factory
Automated hardware test suites
Workbench
Drive a box's instruments directly from the dashboard.
psu
Rigol_DP711
Voltage (V)
Current limit (A)
Over-voltage protection (V)
Over-current protection (A)
10:42:01 [psu] enable → output on10:42:03 [psu] set_v → 3.30 V10:42:03 [psu] set_a → current limit 0.50 A10:42:09 [psu] read → 3.301 V · 0.182 A
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.
Use AI to generate and run hardware tests on every GitHub pull request.
Built for hardware teams. Stout adds fleet management, test automation, and access control on top of the open-source Lager runtime.
01 Scale
Hardware labs weren't built for continuous testing
01.1 Dispatch
Manual 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.
02.2Job Orchestration01.2 Visibility
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.
02.1Fleet Management01.3 Governance
Governance gap
No access controls, audit trails, or compliance reporting across shared test infrastructure.
02.4Team & Access Control02 Capabilities
Everything your hardware test fleet needs
Fleet management, job orchestration, firmware CI, and access control — what you get by running Stout, across every box in the fleet.
02.1
Fleet Management
Register, probe, and monitor Lager boxes. See instruments, nets, and webcams. Import existing boxes in one click.
Learn more02.2
Job Orchestration
Submit jobs via dashboard or API. BullMQ dispatch, real-time log streaming via WebSocket, automatic artifact storage.
Learn more02.3
Workflows & CI
YAML multi-step pipelines with manual, webhook, or schedule triggers. GitHub App integration for check runs on PRs.
Learn more02.4
Team & Access Control
Orgs with role-based access, JWT sessions, API keys for boxes. SSO backend supports OIDC and SAML.
Learn more03 Lager
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.
04 FAQ
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.
05 Demo
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