Installing FirmwareCI CLI

This guide covers installing and authenticating the fwci CLI tool, which you’ll use to manage FirmwareCI infrastructure in your git repositories.

Prerequisites

  • A FirmwareCI account with valid credentials
  • Git installed on your system

Installation

Download and install the fwci CLI tool for your operating system. All available downloads (including ARM64, .deb, .rpm, .apk) are listed on the downloads page.

Linux (x64):

curl -L https://fwci-cli.s3.eu-central-1.amazonaws.com/latest/fwci-latest.linux-amd64.tar.gz -o fwci-latest.linux-amd64.tar.gz
tar -xvzf fwci-latest.linux-amd64.tar.gz
sudo install -m 755 fwci-latest.linux-amd64 /usr/local/bin/fwci

Authentication

Log in using your FirmwareCI credentials. These credentials are provided by either FirmwareCI admins or the administrators of your FirmwareCI organization.

fwci login <email> <password>

Example:

$ fwci login user@example.com mypassword
Logged in as fabian.wienand@blindspot.software in git@github.com:BlindspotSoftware/test-repository.git@7a6102c

Successfully logged in as user@example.com

Self-hosted instances

If you use a self-hosted FirmwareCI instance, point the CLI to its API with the –api flag when logging in. For example:

fwci login --api https://ci.example.com/api user@example.com mypassword

Choosing an Organization

Everything the CLI does — running a job, listing DUTs, managing files — happens inside one organization.

If you belong to a single organization, there is nothing to do: the server resolves it from your account and every command just works.

If you belong to several, the server will not guess. An org-scoped command fails until you pick one:

$ fwci job Binary=./coreboot.rom
Error: no active organization selected — run 'fwci org use <org>' to choose one

List the organizations you belong to, then switch to one. Nothing is selected yet, so no entry is marked:

$ fwci org list
  ORGANIZATION               ROLE
  9elements                  admin
  coreboot-qa                user
  acme (pending invite)      user

* active organization  ·  switch with: fwci org use <name>

$ fwci org use coreboot-qa
Active organization set to coreboot-qa.

Afterwards fwci org list marks the active organization with *:

$ fwci org list
  ORGANIZATION               ROLE
  9elements                  admin
* coreboot-qa                user
  acme (pending invite)      user

The choice is stored with your credentials and applies to every later command, so you only do this once per organization you work in. fwci org use takes the organization’s name (matched case-insensitively) or its ID.

A pending invite cannot be selected — accept it in the web app first:

$ fwci org use acme
Error: your invite to "acme" is still pending; accept it in the web app before switching

Logging in again re-resolves the selection for the new credentials: an account with a single organization is selected automatically, one with several starts unselected.

Verification

Verify your installation and authentication:

$ fwci version
Logged in as fabian.wienand@blindspot.software in git@github.com:BlindspotSoftware/test-repository.git@7a6102c

FirmwareCI CLI 0.X.X

Next Steps

Now that the CLI is installed and authenticated, proceed to Repository Setup to initialize the .firmwareci infrastructure in your git repository.