LagerLager

open source · apache 2.0

Infrastructure for modern embedded software development.

Programmable, composable, and AI-friendly — real hardware on the network, not on your desk.

Develop embedded software in your pajamas.

~/lager $ cat README.md

Embedded software development that behaves like modern software development.

// the bench is just another fixture.

Lager is open source infrastructure for embedded software development — also known as firmware, or device software. It lets any engineer on your team flash firmware, control instruments, and run automated tests against real devices.

Your bench becomes a programmable surface: scriptable, versioned, reproducible, and wired into CI. Embedded development moves at the speed of modern software development.

~/lager $ lager --help

What's in the box.

// real devices. real instruments. real test runs.

A programmable surface for devices, instruments, and CI — not another glue layer around a single bench rig.

  • Connect real devices and instruments

    Drive power supplies, oscilloscopes, debug probes, UART, I2C, SPI, and GPIO through one CLI and Python library. Built-in support for Rigol, Keysight, Keithley, J-Link, LabJack, and more.

  • Automate hardware-in-the-loop workflows

    Run embedded software against real devices on every commit, not only when the lab is free. Wire Lager into GitHub Actions and catch timing, power, and peripheral regressions in minutes.

  • Make embedded environments reproducible

    Define named connections, setups, and test flows as code. Share one Lagerbox across a team over the network or VPN — from a single desk rig to dozens of boxes across labs.

  • AI agents that work against real devices

    Because device access is programmable, the same workflows that power CI give AI agents a safe, inspectable surface for diagnosing embedded software issues and running grounded experiments on real hardware.

~/lager $ lager install --ip 10.0.1.42 --name RED-2

From bench to CI in four steps.

// then it's just engineering.

  1. 01

    Install Lager

    Install the CLI anywhere — Linux, macOS, or Windows. Then provision your Lagerbox on any Linux machine on your network. Self-hosted, no SaaS, no data leaving your network.

  2. 02

    Configure your setup

    Define named connections (nets) for your instruments and devices.

  3. 03

    Write tests in Python

    Tests are just Python scripts that drive your hardware — or drive it interactively from the CLI.

  4. 04

    Run it in CI/CD

    Wire Lager into GitHub Actions to test real hardware on every commit.

~/lager $ cat LICENSE

Apache 2.0. Self-host it. Fork it. Own it.

// no per-seat pricing. no telemetry. no lock-in.

The Lager core is open source under Apache 2.0. Read the drivers, run it on your own Linux box, contribute upstream, and keep test data inside your network.

Start with the docs.

The fastest way to understand Lager is to read the docs and try it on your own bench.