tlm-cli em¶
Embedded Manager commands — inspect the projects that build firmware for your models through GitLab pipelines, and inspect and start their builds.
An Embedded Manager project links an IoT firmware to its GitLab repository, a GitLab connection and the storage bucket where build artifacts are kept. Each IoT model has one firmware, so projects are identified by model name.
projects¶
Commands for inspecting Embedded Manager projects.
projects list¶
List Embedded Manager projects sorted by model name.
Fetches the first 25 projects by default. Model names are resolved from the IoT API; a project whose model cannot be resolved shows its firmware ID instead.
| Option | Type | Description |
|---|---|---|
--model TEXT |
string | Show only the projects of this model (exact name). |
--limit INT |
integer | Maximum number of projects to fetch (default: 25, minimum: 1). |
Example
# List projects
tlm-cli em projects list
# Projects of one model
tlm-cli em projects list --model "gateway-v2"
# Fetch more projects
tlm-cli em projects list --limit 50
Output columns: Model, GitLab Project, Connection, Bucket, Board Farm Slot, Builds
projects show¶
Show details and recent builds for an Embedded Manager project.
Resolves the project by model name and displays a detail panel followed by the last 10 builds, most recent first. If a model has more than one project, the first one is shown. Press D to toggle the detail view, which adds the SHA, Pipeline ID, OTA Status and Created By columns to the builds table; press Q, Esc or Enter to quit.
| Argument | Type | Description |
|---|---|---|
MODEL |
string | Exact model name of the project to show. |
Example
Detail fields: Model, Firmware, GitLab Project ID, Board Farm Slot, Connection, Bucket, Customers (resolved from tenant IDs)
Build columns: ID, Ref, Version, Status, Started (UTC), Duration — detail view adds SHA, Pipeline ID, OTA Status, Created By
With --plain, the command prints a single JSON object with the detail fields and a builds list.
builds¶
Commands for inspecting and starting Embedded Manager builds.
builds show¶
Show details and jobs for an Embedded Manager build.
Fetches the build by ID — the ID printed in the Recent Builds table of tlm-cli em projects show. The compact view
shows the model, ref, version, status, start time, duration and GitLab pipeline ID. Press D to toggle the detail
view with the SHA, finish time, last status sync, build configuration (machine, distro, target, pipeline, values,
fragments), artifact and test paths, firmware release, Dependency-Track UUID, OTA approval, the build it was cloned
from, its author and customers, and the jobs of each pipeline stage. Sensitive configuration values are shown as
(redacted). Press Q, Esc or Enter to quit. Times are shown in UTC.
| Argument | Type | Description |
|---|---|---|
BUILD_ID |
string | ID of the build to display. |
Example
Jobs columns: Stage, Job, Status, Duration, Failure Reason
With --plain, the command prints a single JSON object with every field, the raw configuration object and a jobs
list.
builds create¶
Start an Embedded Manager build for a model.
Reads the project's em-config (embedded-manager.conf in the meta-layer repository) at the chosen ref, checks the
combination and the option values against it, shows the request and asks for confirmation, then starts the GitLab
pipeline. Option values equal to their default are not sent. Sensitive values are never shown: summaries and
--dry-run print ********.
| Argument / Option | Type | Description |
|---|---|---|
MODEL |
string | Exact model name of the project to build. |
--ref |
string | Branch or tag to build. Defaults to the project's default branch. |
--combination |
string | Combination ID from the em-config. Optional when only one is available for the model. |
--set KEY[=VALUE] |
string | Option value; repeatable. Child options as PARENT.CHILD=VALUE. KEY alone asks for it. |
--dry-run |
flag | Show the build request without starting it. |
--follow |
flag | Wait for the build to finish, reporting status and job changes every 10 seconds. |
--yes, -y |
flag | Skip the confirmation prompt. Required with --plain to start a build. |
Option values: int options take an integer, bool options true/false/yes/no/1/0, enum options one
of the declared values (comma-separated when the option allows several). Options managed in the GitLab CI/CD settings
cannot be passed. Combinations that use fragment options are not supported yet; start those builds from the web UI.
Prompts: in interactive mode a missing ref (no default branch), combination or required option is asked for;
sensitive options use hidden input. With --plain, or when the output is piped, nothing is asked: missing values
are errors.
--follow exit codes: 0 when the build succeeds or waits on a manual job, 1 when it fails, is canceled or
skipped, or when the build cannot be read three times in a row, 130 on Ctrl+C (the build keeps running).
Examples
tlm-cli em builds create "gateway-v2" --combination qemux86-64-devel-image
tlm-cli em builds create "gateway-v2" --ref v1.2.0 --combination qemux86-64-prod-image --set root_password
tlm-cli em builds create "gateway-v2" --combination qemux86-64-prod-test-image --dry-run
tlm-cli --plain em builds create "gateway-v2" --combination qemux86-64-devel-image --yes --follow
With --plain, the command prints the started build as a JSON object (ID, Model, Ref, Combination, Status,
GitLab); with --follow, the final state of the build. --dry-run --plain prints the masked request body.