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
| Platform | Precompiled Binary | Debian/Ubuntu (.deb) | Red Hat/CentOS/Fedora (.rpm) | Arch Linux (.pkg.tar.zst) | Alpine Linux (.apk) |
|---|---|---|---|---|---|
| x64 | fwci-latest.linux-amd64.tar.gz | fwci-latest.linux-amd64.deb | fwci-latest.linux-amd64.rpm | fwci-latest.linux-amd64.pkg.tar.zst | fwci-latest.linux-amd64.apk |
| ARM64 | fwci-latest.linux-arm64.tar.gz | fwci-latest.linux-arm64.deb | fwci-latest.linux-arm64.rpm | fwci-latest.linux-arm64.pkg.tar.zst | fwci-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.
Step 2: (Optional) Verify the Download
Download the checksum and verify:
Step 3: Unpack the Archive
Step 4: Install the Binary
If the extracted binary is named fwci, run:
Step 5: Verify Installation
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.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, andiperf3benchmark 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-admincommands 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.
v0.15.7 2026-05-18
FirmwareCI Release
Welcome to this new release on 2026-05-18T09:55:57Z!
Changelog
New Features
- bce2b3da2722249fc642cd92113439c52ee41eb4: feat(fwci): retry uploads with backoff on transient errors (@RiSKeD)
- 1394aa86399bdbc9c4006295be5934408f366c57: feat(restapi): stream multipart file uploads via MultipartReader (@RiSKeD)
- 6570b2355dfc58970e22aeb69bf47d93f81a39e4: feat: claude Code Review workflow (@RiSKeD)
- 35c5c78e87028b7bb2eba13214bbf6b5e49da142: feat: claude PR Assistant workflow (@RiSKeD)
- f1a7a53fb3daf0deef2792975bd42bf4a120f14e: feat: expose all job attempts via API (@llogen)
Bug fixes
- a20067886db81f05848e8607c1b2ccbe9315fbb3: fix(api): classify error sentinels to proper HTTP statuses and scrub 5xx bodies (@RiSKeD)
- 97cc55ee5dba5d3b511d153477f3bdc0d43be37e: fix(filesystem): drop global mutex from StoreFile copy path (@RiSKeD)
- 99f3c06f566533f16e73cbde74105d2281e16a13: fix: aborted retried jobs no longer show negative duration (@llogen)
Those were the changes on v0.15.7!
v0.15.6 2026-05-05
New Features
- You can now lock a project immediately after syncing in one step, making it easier to update and re-lock without extra commands.
Bug Fixes
- Test runs now use the test settings that existed when the job was created, so in-progress jobs are no longer affected by later configuration changes.
- Test IDs in FWCI job commands are now interpreted correctly, preventing jobs from targeting the wrong tests.
- Binary uploads no longer flood the output with noisy details, making command results easier to read.
- The default output is now less noisy and avoids exposing internal details unless you explicitly ask for verbose logs.
- Running
fwci-admin --helpor version commands no longer triggers unnecessary network or repository checks. - After setting up an integration, opening the browser now works on macOS and Windows as well as Linux.
- Updating workflow secrets now stops immediately if something goes wrong, so you won’t see a false success.
- File commands now fail properly when something goes wrong, so errors are clearer and command exit codes are reliable.
- Checking repository status is now much faster and less likely to hang in very large repositories.
- Temporary upload data from multipart requests is now cleaned up automatically, reducing leftover files and resource leaks.
v0.15.5 2026-04-21
No user-facing changes in this release.v0.15.4 2026-04-21
New Features
- You can now upload large binaries while seeing live progress, making uploads smoother and more transparent.
- You can watch jobs live in the terminal, view concise or JSON output, and automatically follow new submissions without extra commands.
- You can now stream job logs live as they are produced, and new job submissions return fuller details right away.
- You can submit one or more local test YAML files directly from the CLI for ad-hoc runs, without needing an existing workflow test first.
- You can mark tests as disabled in their YAML so they are skipped instead of being run.
Bug Fixes
- GitHub check updates are now saved more reliably, reducing cases where status reporting could be lost.
- The CLI now shows clearer error messages when a proxy or network layer returns an unexpected non-JSON error page.
- Sensitive token information was removed from the README.
- Notification failures are now tracked, improving visibility when alerts do not go through.
v0.15.3 2026-03-31
New Features
- You can now run only a limited number of devices and virtual devices at the same time to prevent overloading your setup.
Bug Fixes
- Binary paths that use
~now work correctly instead of failing with an invalid path error. - Jobs rerun from the web interface are now correctly shown as having been started from the web interface.
- Expired sessions now refresh automatically more smoothly, so you won’t be forced to sign in again as often.
v0.15.2 2026-03-26
New Features
- You can now see which branch and configuration commit each project and job used, making it easier to trace exactly what ran.
- You can now filter the job list by branch to find relevant runs more quickly.
Bug Fixes
- Commit links now take you to the correct repository and commit page across supported providers.
- GitLab links are now handled correctly, so links open the expected pages.
v0.15.1 2026-03-23
New Features
- You can now use environment-variable maps in JSON-based configuration more reliably.
- This release includes Contest v0.9.8.
Bug Fixes
- Shutdown is now more reliable, reducing the chance of background tasks being left in an inconsistent state.
- Job status updates are now more reliable and less likely to briefly show the wrong state.
- Jobs you abort during preparation now stay aborted instead of unexpectedly returning to the queue.
- Removing a project now also removes its associated devices and storage, including cleanup of leftover items from earlier deletions.
v0.15.0 2026-03-11
New Features
- You can now trigger jobs in another project more easily.
- You can use a workflow name instead of an internal ID when uploading binaries or starting jobs.
- You now see a friendly notice when a newer CLI version is available.
- Virtual devices can now be used by multiple jobs at the same time, improving availability.
- CLI validation now gives clearer results and catches more issues before you run a job.
- Unintegrated projects are now shown as informational instead of looking like a problem.
Bug Fixes
- GitHub links and references now point to the correct host names.
- Aborted queued jobs now update correctly in GitHub notifications.
- GitLab notifications now show queued jobs correctly, and aborted jobs are no longer shown as failed.
- Jobs using Docker-in-Docker are less likely to fail due to running out of disk space.
- Concurrent containers no longer accidentally share the same files between jobs.
- API documentation warnings have been cleaned up for a smoother developer experience.