System extensions
A system extension adds software to the read-only /usr of a Frostyard bootc
image. Every Frostyard bootc image carries a definition for each extension in
the catalog, switched off. The extension itself is not in the image: Updex
turns it on and downloads it.
Find an extension
Section titled “Find an extension”See what Updex found:
updex componentsupdex features listYour image offers only the features it has files for. The catalog below lists
what the repository published at the last sync. If updex features list does
not show an extension, your image cannot enable it.
Enable an extension
Section titled “Enable an extension”Enable one and download it now:
sudo updex features enable <name> --nowReplace <name> with a feature name from updex features list. Check the merge:
systemd-sysext statusThe output lists the extension you enabled. If enable --now exits with a
refresh error (refresh_error in JSON), the download worked, but the activation
did not. If the output says activation did not finish, the extension is
merged, but users and groups can be missing: reboot. Otherwise the merge state
is unknown: reboot. A sudo systemd-sysext refresh by hand does not create
users and groups.
Update, roll back, and remove
Section titled “Update, roll back, and remove”Updex also checks for updates, installs them, and removes an extension again.
Enabled extensions update on their own: new versions are staged and become
active at the next boot. See
Automatic updates.
To go back to the previous version, run sudo updex features rollback <name>.
It takes effect at the next boot. See
Roll back and
Manage system extensions for the steps and what to
check after each one.
Guides
Section titled “Guides”The last column of the catalog below links each extension’s guide. Manage system extensions covers the steps that every extension shares:
Catalog
Section titled “Catalog”| Extension | Component name | Listed version | Guide |
|---|---|---|---|
| 1Password desktop | 1password | 8.12.42+r1 | 1Password desktop |
| 1Password CLI | 1password-cli | 2.41.1-1 | 1Password CLI |
| Bitwarden | bitwarden | 2026.10.1+r1 | Bitwarden |
| ChatGPT | chatgpt | 26.1027.30824+r1 | ChatGPT |
| Claude Desktop | claude-desktop | 4.4212.0+r1 | Claude Desktop |
| code-server | code-server | 4.144.0 | code-server |
| Coder | coder | 2.37.8-1+r3 | Coder |
| Debian development | debdev | 1.0.141 | Debian development |
| Development tools | dev | 12.12+r3 | Dev tools |
| Docker CE | docker | 5+29.9.2-1~debian.13~trixie | Docker |
| Microsoft Edge | edge | 156.0.4314.50-1+r2 | Microsoft Edge |
| GitDesktop | gitdesktop | 0.13.7 | GitDesktop |
| GitHub Copilot | github-copilot | 1.1.33+r1 | GitHub Copilot |
| Himmelblau | himmelblau | 4.0.8-debian13 | Himmelblau |
| Incus | incus | 1+7.5.1-debian13-202610281111+r5 | Incus |
| K3s | k3s | 1.36.5+k3s1+r1 | K3s |
| Lemonade | lemonade | 2026.44.1~13 | Lemonade |
| LocalSend | localsend | 1.18.2+64 | LocalSend |
| lodge | lodge | 0.1.0 | lodge |
| Frostmail maild | maild | 0.3.0 | Frostmail maild |
| Moonlight | moonlight | 6.2.0-frostyard20261029021615 | Moonlight |
| Nix | nix | 2.26.3+dfsg-1+r5 | Nix |
| Frostnotes notesd | notesd | 0.3.0 | Frostnotes notesd |
| Obsidian | obsidian | 1.14.5 | Obsidian |
| paseo | paseo | 0.14.0+r1 | paseo |
| pilothouse | pilothouse | 0.9.0 | pilothouse |
| Podman + Distrobox | podman | 5.4.2+ds1-2+b2 | Podman + Distrobox |
| Porter porterd | porterd | 0.1.1 | Porter porterd |
| frostread readd | readd | 0.2.0 | frostread readd |
| Sunshine | sunshine | 2026.914.233613-1+debiantrixie | Sunshine |
| Tailscale | tailscale | 1.104.4 | Tailscale |
| Voxtype | voxtype | 1.1.1-frostyard20261029021618+r1 | Voxtype |
| Visual Studio Code | vscode | 1.144.0-1793133881+r1 | Visual Studio Code |
The listed version is a match from the published checksums at the last sync.
It is not always the newest: run updex features check to see what you can
update to.
Sources
Section titled “Sources”Reviewed 2026-10-27; Updex facts reviewed 2026-10-30. snosi commit
b2858ca0222814c395cf8248db98f3e096d57dc9;
Updex v2.1.3 commit
2661e987faac986f2594d1d9bbbadf1bf3053f5b.
docs/design/sysexts.mdmkosi.images/base/mkosi.extra/usr/lib/sysupdate.docker.d/docker.feature- Updex v2.1.3
README.md - Updex PR #445: detect merged extensions for the removal guard
- Updex v2.1.3 release
- Updex
docs/adr/0019-apply-merged-sysusers-and-tmpfiles-on-a-live-refresh.md(a live refresh runssystemd-sysusersandsystemd-tmpfiles --create; when the last refresh fails, the merge state is unknown; a refresh by hand does not runsystemd-sysusers) src/data/extensions.jsonscripts/sync-extensions.mjsmkosi.images/base/mkosi.extra/usr/lib/systemd/system-preset/05-updex.presetdocs/adr/0016-automatic-sysext-updates-apply-at-next-boot.md