Downloads

fwci is the command-line interface for FirmwareCI. It lets you configure the Git repositories connected to FirmwareCI and other tasks.


Currently, the tool supports Linux x64 and Linux ARM64 systems.


Installation Options

PlatformPrecompiled BinaryDebian/Ubuntu (.deb)Red Hat/CentOS/Fedora (.rpm)Arch Linux (.pkg.tar.zst)Alpine Linux (.apk)
x64fwci-latest.linux-amd64.tar.gzfwci-latest.linux-amd64.debfwci-latest.linux-amd64.rpmfwci-latest.linux-amd64.pkg.tar.zstfwci-latest.linux-amd64.apk
ARM64fwci-latest.linux-arm64.tar.gzfwci-latest.linux-arm64.debfwci-latest.linux-arm64.rpmfwci-latest.linux-arm64.pkg.tar.zstfwci-latest.linux-arm64.apk

Note: Select the package that matches your operating system and architecture. For detailed installation steps, refer to the instructions below.


Installing the Precompiled Binary

Step 1: Download the Precompiled Binary

Replace linux-amd64 with linux-arm64 if you are on ARM64.

wget https://fwci-cli.s3.eu-central-1.amazonaws.com/latest/fwci-latest.linux-amd64.tar.gz

Step 2: (Optional) Verify the Download

Download the checksum and verify:

wget https://fwci-cli.s3.eu-central-1.amazonaws.com/latest/fwci-latest.linux-amd64.tar.gz.sha256
sha256sum -c fwci-latest.linux-amd64.tar.gz.sha256

Step 3: Unpack the Archive

tar -xvzf fwci-latest.linux-amd64.tar.gz

Step 4: Install the Binary

If the extracted binary is named fwci, run:

sudo install -m 755 fwci /usr/local/bin/fwci

Step 5: Verify Installation

fwci version

If the installation was successful, this will display the current version of the fwci tool.


For more information on how to use the fwci tool, refer to the Usage Guide


Changelog

v0.17.4 2026-07-30

New Features

  • When you disable a device, it now stays disabled everywhere it appears, not just in one branch.
  • Job requests now show which FirmwareCI branch they belong to, making it easier to see where work came from.
  • Trace data is now sent only when you explicitly configure it, so self-hosted instances stay quiet by default.

Bug Fixes

  • Tool results are now visible in text-only clients instead of appearing to have no output.
  • Archived devices are no longer probed or included in inventory counts.
  • Offline devices are now detected within seconds instead of taking many minutes to appear as down.
  • Device metrics now reflect the number of physical devices instead of changing with branch activity.

v0.17.3 2026-07-23

New Features

  • You can now invite someone to join an organization from the admin CLI, including setting up the first organization admin on a brand-new organization.
  • You can now see combined stats for an entire project across all branches, with the option to limit the view to specific workflows.
  • You can now filter job request lists by workflow, so results are narrowed across the full list instead of only the jobs currently shown.
  • You can now see combined stats for an entire branch, with the option to limit the view to specific workflows.
  • Agents that can access multiple organizations can now choose which organization to use for each MCP call.

Bug Fixes

  • Project-wide and organization-wide job lists now correctly include jobs from all branches instead of only the default branch.
  • MCP now rejects superuser tokens, preventing overly broad automation access.
  • Branch job lists now correctly respect the selected status filter.

v0.17.2 2026-07-20

Bug Fixes

  • Organization admins can now rerun jobs successfully when they have permission to do so.
  • Job and request links in the web UI now open under the organization you actually used, which fixes wrong links for accounts in multiple organizations.
  • GitHub-related failures now stop retrying when the problem won’t resolve on its own, so you get faster, clearer feedback for permanent errors.
  • When a hardware device is temporarily in use, the system now treats it as busy and tries another available device instead of marking it as unavailable.

v0.17.1 2026-07-15

New Features

  • Running fwci org without a subcommand now shows your organizations, and job/exec tell you to select one first instead of failing later.

Bug Fixes

  • Pushing annotated tags now syncs correctly and reports results as expected.

v0.17.0 2026-07-13

New Features

  • You can now run jobs directly on tags by using the tag name, and tags are shown separately from branches in the UI.
  • Organizations can now upload and display their own logo on public organization pages.
  • You can now use a single account across multiple organizations and switch between them in the web app or CLI.
  • Devices are now automatically shown as unavailable when their backend becomes unreachable, even if no job is currently using them.
  • Device connectivity is now checked in the background so recovered devices become available again on their own, and jobs on lost devices are stopped sooner.

Bug Fixes

  • The CLI no longer suggests or selects archived branches that cannot run jobs, reducing confusing submission errors.
  • Looking up a private organization through the public endpoint now returns the correct access-denied response.
  • Gerrit links now open reliably even on instances that do not support Gitiles.
  • Update notifications are no longer hidden for a day after a temporary version-check failure.
  • Large failed jobs are now analyzed more reliably without being skipped because their logs are too big.

v0.16.0 2026-07-01

New Features

  • You can now see when a device cannot be reserved at all, along with a short reason and any jobs currently using it, instead of only seeing that it is unavailable.
  • The command-line tool now shows clearer next steps after you submit or watch a job, including how to reconnect later, safely stop watching, and open the job or request in the web app.
  • You can now work with repository branches throughout the app and API, including managing branch-specific configurations and selecting the right branch for jobs and executions.

Bug Fixes

  • If you mistype a binary input name for a job, you now get a warning up front with a suggested correction instead of a confusing missing-input failure later.
  • Running the version command no longer shows your sign-in status, so the output stays focused on version information.
  • Deleting a GitHub branch no longer causes it to reappear unexpectedly.
  • Jobs submitted immediately after a branch update are now less likely to fail because the branch or its configuration has not finished syncing yet.
  • Newly created GitLab branches now sync correctly even when the branch creation event does not include a commit list.

v0.15.11 2026-06-23

Bug Fixes

  • Device reservations now work when the agent address is entered as just a host and port, without needing to include http://.
  • When a new password doesn’t meet the password rules, you now see a clear explanation instead of a generic error.
  • Users who can view public jobs can now also download reports and exported files for those jobs.

v0.15.10 2026-06-16

New Features

  • Reports once again include files, images, and other generated outputs so you can download and keep run artifacts as expected.
  • You can now optionally use the dutctl reservation system to claim test hardware when your setup is configured for it.
  • AI agents can now inspect more project, job, storage, and device details, use better filters, and get clearer validation feedback when reviewing runs or drafting configs.
  • You can now log out from the CLI to clear saved credentials.

Bug Fixes

  • Rate limiting now applies per user or client instead of one busy user causing everyone behind the same proxy to be temporarily blocked.
  • Rate limiting now correctly uses the real client IP when running behind a local reverse proxy.
  • If a local binary file path is wrong, you now get a clear “file not found” error before any uploads start.
  • CLI login no longer briefly shows the previous session, and commands now correctly keep working after token refreshes, including on servers that rotate refresh tokens.

v0.15.9 2026-05-27

New Features

  • You can now connect AI coding agents to FirmwareCI through a read-only interface to browse workflows, devices, jobs, logs, schemas, and test validation data.
  • You can now use fio, stress-ng, and iperf3 benchmark steps in descriptors and have them validated correctly.
  • Job details now load step logs only when explicitly requested, making status updates feel faster and lighter while a job is running.

Bug Fixes

  • fwci-admin commands now show their results again instead of appearing to do nothing.
  • New GitHub releases are now published immediately, so release links point to the tagged version right away.
  • The old prompting-based testing flow has been removed, so it no longer appears as an available endpoint or preset.

v0.15.8 2026-05-18

New Features

  • Job details now show the configuration and trigger information, so you can see the same context there as on job request pages.
  • Jobs that use virtual machines can now take advantage of hardware acceleration when available, making those runs more reliable.

Bug Fixes

  • Older jobs now show the correct step statuses, timings, and errors instead of appearing skipped or missing duration information.