How Lager Works
A Lager setup has three components that together expose your hardware through a single, programmable interface:1. Lager Box
The Lager Box is any x86-64 machine that runs Ubuntu 22.04 or newer, such as a compact mini PC. It sits next to your hardware. You connect it to your test equipment and to your Device Under Test (DUT). To turn a machine into one, see Setting Up a Lager Box. After you connect the instruments and the DUT, the Lager Box exposes them through one consistent programmable interface. You can drive that interface from your desk, from CI, or from an AI agent.2. Lager CLI & Client Libraries
To interact with a Lager Box, you’ll need the Lager CLI - a command-line tool you install on your computer. It gives you a unified interface for working with your instruments and DUT. Beyond interactive CLI use, there are three equal ways to automate against a box — pick whichever fits your team:- Python library - automate test suites as Python scripts, run with
lager python - Rust crate - write your HIL suite as ordinary Rust integration tests. Run it with
cargo test, next to your firmware - MCP server - let AI agents discover your bench and run test scenarios directly
- Flash and debug embedded devices
- Control power supplies, battery simulators, and electronic loads
- Monitor serial/UART output with interactive test runners
- Capture oscilloscope waveforms and logic analyzer traces
- Communicate with devices over I2C and SPI buses
- Automate full regression test suites
lager terminal or just lager with no arguments to launch it.
3. Bench Equipment & Devices
The Lager Box supports a wide range of professional test equipment that you connect with:- Power supplies, battery simulators, and electronic loads
- Debug probes (J-Link, CMSIS-DAP, ST-Link)
- Oscilloscopes and logic analyzers
- ADC/DAC/GPIO modules (LabJack T7, MCC USB-202)
- I2C/SPI adapters (Total Phase Aardvark, LabJack T7)
- Power meters (Yocto-Watt, Joulescope JS220)
- And more (see full list below)
Lager Nets
You must configure a Lager Box with a set of Nets before you can use it. Each Net names one instrument, one instrument channel, one serial port, or one other interface that you control. For example, your DUT draws power from channel 1 of a power supply. You create a Power Supply Net calledDUT_POWER that maps to that channel.
The net can then switch the DUT on and off, and use any other function that the supply supports.
Next Steps
Ready to get started?- Setting Up a Lager Box — Turn an Ubuntu machine into a Lager Box
- Adding your First Lager Box — Install the CLI and verify connectivity

