Overview
The Embedder CLI is a hardware-aware coding agent built for the terminal. Same engine as our IDE and VS Code surfaces — same datasheet-grounded reasoning, same closed-loop hardware verification, same catalog of 500+ MCUs, 3,000+ peripherals, and 30+ test equipment integrations — exposed where firmware teams already work: shells, Makefiles, scripts, CI runners, and SSH sessions into lab machines.
What this white paper covers
- Why CLI matters for firmware — most of the workflow is already scripted.
- What the CLI does — agentic build, flash, test, debug; specification-first planning; integrated serial terminal.
- Commands and modes —
/init,/peripheral, plan mode with datasheet citations, subagents. - CI integration — agents inside GitHub Actions, GitLab CI, Jenkins.
- Headless and lab workflows — SSH, containers, board farms, air-gapped networks.
- Getting started.
Why CLI
Firmware shops run on scripts. Build, flash, log, repeat — usually from a terminal, often over SSH to a lab machine wired to real hardware. The CLI puts the agent where the work already happens. Pipe a log file in, get a root cause out. Trigger a regression sweep across a board farm from one command. Run the same agent your engineers use locally inside your CI runner — no port to a different model, no separate inference path.
What the CLI does
The agent runs the full firmware loop — build, flash, test, debug — inside a single controlled session:
- Ingest — datasheets, reference manuals, errata, schematics, and the existing codebase become a queryable index the agent reasons over.
- Plan — specification-first mode. The agent drafts an implementation plan with citations from the datasheet before writing code. You review, then it executes.
- Generate — drivers, init sequences, HAL code, HIL test cases, written against the actual part. Native support for FreeRTOS and Zephyr; first-class Nordic, STMicro, NXP, Infineon, Espressif, TI.
- Build & flash — your existing toolchain (CMake, PlatformIO, west, vendor IDEs) driven from the agent loop, with results piped back as evidence.
- Run on real silicon — drive boards over JTAG/SWD via J-Link, ST-Link, and OpenOCD; an integrated serial terminal captures UART output and feeds it into the loop.
- Debug — ingest serial logs, GDB state, core dumps, and logic analyzer captures; cross-reference against the indexed docs to point at the offending line.
Commands and modes
/init— bootstrap the agent against a project, ingesting docs, schematics, and the existing codebase./peripheral— search the catalog and pull in a verified peripheral (UART, I²C, SPI, ADC, CAN, BLE, Wi-Fi, etc.) with its docs; custom upload when a part isn't already in the catalog.- Plan mode — research and draft a structured spec with citations from the datasheet before any code is generated.
- Subagents — fan out independent tasks (a driver here, a test there) under one orchestrator with a unified audit trail.
- Document search — direct queries against the indexed corpus from the terminal.
In CI
The CLI is the same binary we run inside GitHub Actions, GitLab CI, and Jenkins. A typical setup: every PR builds the firmware, flashes a board in your lab, runs the regression suite via the integrated serial terminal, and posts results back to the PR. The agent reads failing traces, points at the offending line, and proposes a fix. You can gate merges on it or use it as an advisor that flags risk without blocking — your call.
Headless and lab workflows
The CLI runs over SSH, inside containers, and inside air-gapped networks with on-prem model hosting. Zero external runtime dependencies in the air-gapped configuration. If your board farm is in a cage and your team is remote, the CLI is how they reach it.
Who it's for
- Teams with strong existing tooling — you've already invested in scripts and Make. The CLI plugs in.
- Platform and infra engineers — agents inside CI, build farms, test orchestrators.
- Remote and lab-based work — wherever the board is one place and the engineer is another.
Getting started
Install, authenticate, point it at a project. The fastest path is to download Embedder or talk to an engineerand we'll walk through a setup against one of your real boards.