Skip to content

tlm-cli em

Embedded Manager commands — inspect the projects that build firmware for your models through GitLab pipelines, and inspect and start their builds.

tlm-cli em [SUBGROUP] [COMMAND] [OPTIONS]

Subgroups: projects, 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.

tlm-cli em projects [COMMAND] [OPTIONS]

projects list

List Embedded Manager projects sorted by model name.

tlm-cli em projects list [OPTIONS]

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.

tlm-cli em projects show MODEL

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

tlm-cli em projects show "gateway-v2"

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.

tlm-cli em builds [COMMAND] [OPTIONS]

builds show

Show details and jobs for an Embedded Manager build.

tlm-cli em builds show BUILD_ID

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

tlm-cli em builds show 6f1c2b7e-0d1a-4c55-9a7e-1f2b3c4d5e6f

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.

tlm-cli em builds create MODEL [OPTIONS]

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.