System
One image. Staged, signed, and reversible.
Rime is built as a single container image on Fedora's bootc. The operating system, its drivers and Rime Shell ship together, update together, and roll back together.
Updates are staged, not painted over the running system.
An update downloads the next image and writes it beside the one you are using. Nothing you are running changes until you reboot into it. Updates never start on their own; the automatic update timer is masked.
sudo rime update- Stops if the last update left the machine worse off (a local health check), unless you pass
--force. - Checks the new image's signature (below).
- Stages the image with bootc. The Shell is inside it.
- Refreshes the packages you added, Flatpak apps and firmware. Each has a
--skip-…flag.
- 1
Running
Rime 2026.09.28.3runningempty slotOne signed image: the system and Rime Shell together.
- 2
Staged
Rime 2026.09.28.3runningRime 2026.09.28.4staged for next bootThe new image is verified, then written beside the running one. Nothing you are using changes.
sudo rime update - 3
Rebooted
Rime 2026.09.28.3kept to go back toRime 2026.09.28.4runningThe next boot starts the new image. The one before stays on disk and in the boot menu.
sudo systemctl reboot - 4
Rolled back
Rime 2026.09.28.3runningRime 2026.09.28.4kept to go back toThe previous image becomes the default again. Your home folder and /etc stay as the newer system left them.
sudo rime rollback
Every update is checked against Rime's build.
Images are signed in CI with cosign, keyless, by the workflow that built them. Before deploying, rime update verifies the signature on the exact digest the registry is serving, against a certificate root pinned inside the image, and refuses anything signed by someone else.
rime trust --gateShows the decision the next update would make, without root and without staging anything. Every image also carries a signed SPDX software bill of materials.
If an update is wrong, go back.
The machine keeps the image it booted and one more. Rolling back makes the previous one the default for the next boot; you can also pick it in the boot menu. Your home folder, /etc and /var stay as the newer system left them.
sudo rime rollback && sudo systemctl rebootsudo rime pinPin keeps the booted image from being replaced, so two bad updates in a row can't push out the last good one.
One channel today.
Rime's update client knows four channels — stable, candidate, beta and edge — with staged rollouts and a halt a person can pull. Only edge is published so far: every image tag is the same build, and switching to another channel is refused until its first promotion.
rime channel statusAdd software without touching the image.
Packages you install go into one system extension beside the image, rebuilt whenever your list changes. The image itself stays exactly what was signed, so updates and rollback keep working. Kernels, glibc, systemd and the boot stack are refused.
sudo rime install htopsudo rime install org.gimp.GIMPrime env create fedoraA reverse-DNS ID installs from Flathub. rime env makes rootless containers for other distributions, with GPU access if you ask. Local .rpm, .deb and AppImage files work too; .deb, AppImage and unsigned .rpm files need --allow-unsigned.
Ways back in.
If the desktop won't start, the login screen offers Rime Safe Graphics: a minimal session with software rendering, a menu for diagnosis and rollback, and no Shell. After three failed starts in a row it is preselected for you.
rime recover statusrime recover repairEvery rime recover command is a dry run until you commit it. Settings has a Recovery page that shows the same health rows.
Pick how windows behave at the login screen.
Rime Tiling
Hyprland · default
Windows tile automatically. Springs drive window motion too.
Rime Scrolling
niri
Windows sit in columns on an endless strip you scroll through.
Rime Floating
labwc
Classic overlapping windows with title bars, themed from the same palette.
Rime Gaming Mode
gamescope + Steam
Appears once Steam and gamescope are installed.
Gaming, on demand.
Rime builds its own kernel from CachyOS's tree, with sched-ext schedulers that Gaming Mode loads while a session runs. NVIDIA's driver is built into the image and signed. On hybrid laptops, apps that ask for the discrete GPU get it when you start them from the Shell.
sudo rime install steam gamescope mangohud gamemoderime gamingrime gaming checks whether Gaming Mode would start, and says why not.
Close the lid, keep working.
While an agent session is running, closing a laptop's lid keeps it awake: the screen, keyboard light and background jobs switch off, Wi-Fi stays up so a VPN holds. Temperature and battery guards suspend it anyway if they have to. With nothing running, it sleeps as usual.
rime lid statusQuick Settings has a "Lid stays awake" tile; after you reopen the lid, rime lid report says how long it stayed up and what it cost.
Ready when you log in.
The image carries what most people install first: Firefox, Zed, Thunar and mpv with the RPM Fusion codecs, printing, input methods and the Orca screen reader; the compilers and runtimes for C and C++, Rust, Go, Node, Python, Java and Ruby, with gh and buildah; Claude Code; and the Claude and ChatGPT desktop apps. Their own updaters are removed, so they move forward with rime update like everything else, checked against signing keys pinned in Rime's repository.
A firewall with named doors.
Incoming connections are dropped by default. Replies, loopback, ping, DHCP, local discovery (mDNS) and SSH are always let through. Anything else is opened by name, one service at a time: ssh, http, https, samba, nfs, printer sharing, Steam Remote Play, Sunshine, Ollama, Syncthing and Rime Remote.
sudo rime firewall allow sunshinesudo rime firewall statusIt knows the machine it runs on.
rimed, Rime's hardware daemon, switches power tiers between mains and battery, sets battery charge limits, runs the fans and, on AMD laptops, the processor's power limits. It keeps named modes for daily use, gaming and development, and tells rime what the machine is doing and how hot it is.
rime status