How to Update the Omarchy CLI: A Complete Guide to Safe System Upgrades
Run omarchy update to execute an atomic upgrade of the CLI and system packages with automatic Btrfs snapshots, or append the -y flag for unattended automation.
The Omarchy command-line interface provides a sophisticated update mechanism that coordinates package upgrades, system migrations, and safety checks in a single command. This guide explains how to update the Omarchy CLI using the built-in omarchy update command, its safety features, and the underlying scripts that ensure reliable system maintenance.
Running the Basic Omarchy CLI Update
To initiate a standard interactive update, execute the primary entry point located at bin/omarchy-update:
omarchy update
This command orchestrates the entire upgrade process, prompting for confirmation before critical steps and providing colored feedback through a built-in error trap. The script first acquires an exclusive lock via bin/omarchy-update-lock to prevent race conditions with other package managers, then proceeds through a coordinated sequence of sub-scripts.
Pre-Update Safety Mechanisms
Before modifying any system components, the update process performs mandatory safety checks to ensure system stability.
Lock and Disk Space Verification
The omarchy-update-lock script guarantees that only one update instance runs at any time, eliminating conflicts with concurrent package operations. Immediately after acquiring the lock, the system runs omarchy-update-requires-free-space to verify sufficient disk capacity exists for the upgrade.
Btrfs Snapshot Creation
If Snapper is present, the update sequence executes omarchy-snapshot create to generate a restore point before any changes occur. This atomic upgrade approach means you can revert the entire system state if the update introduces regressions.
The Omarchy CLI Update Execution Chain
The bin/omarchy-update script executes a fixed, idempotent chain of sub-commands that separate concerns into discrete, testable operations:
omarchy-update-pkg-prune– Cleans the package cache to free disk spaceomarchy-snapshot create– Captures a Btrfs snapshot for rollback capabilityomarchy-update-stay-awake start– Prevents system sleep during the upgradeomarchy-update-dev– Refreshes development toolsomarchy-update-keyring– Updates GPG keyrings for package validationomarchy-update-system-pkgs– Upgrades core Arch packages via pacmanomarchy-migrate– Executes pending database or configuration migrationsomarchy-hook post-update– Triggers user-defined post-update hooksomarchy-update-aur-pkgs– Handles Arch User Repository package updatesomarchy-update-mise– Updates mise tool versionsomarchy-update-orphan-pkgs– Removes orphaned dependenciesomarchy-update-analyze-logs– Inspects logs for errorsomarchy-update-status– Updates the UI availability indicatoromarchy-update-restart– Reboots the system if necessary
This architecture ensures each step completes successfully before the next begins, making the CLI update reliable and predictable.
Automating Unattended Updates
For scripting and automation scenarios where user interaction is impossible, Omarchy supports unattended mode:
omarchy update -y
Passing the -y flag sets the environment variable OMARCHY_UPDATE_UNATTENDED=1, automatically confirming all prompts and allowing the update to run in CI/CD pipelines or scheduled maintenance windows.
Checking Update Availability
To determine whether updates are pending without starting the installation process, use the check command:
omarchy update-available
When updates are available, the Omarchy UI displays a circle-arrow icon next to the system clock, providing visual feedback without requiring terminal access. Detailed documentation for this workflow appears in manual/30-updates.md.
Rolling Back Failed Updates
If an update introduces system instability, the Btrfs snapshot captured during omarchy-snapshot create can be restored. Unlike other operations performed via the CLI, rollback happens at the boot loader level rather than through a terminal command. Restart the system and select the pre-update snapshot from the boot menu to revert to the previous system state instantly.
Summary
- Primary command:
omarchy updateinitiates the full upgrade sequence viabin/omarchy-update - Automation: Append
-yor setOMARCHY_UPDATE_UNATTENDED=1for unattended execution - Safety: Exclusive locking via
bin/omarchy-update-lockand Btrfs snapshots prevent system corruption - Components: The process updates system packages, AUR packages, mise tools, and runs migrations atomically
- Recovery: Failed updates can be reverted using boot-time Btrfs snapshot restoration
Frequently Asked Questions
What is the command to update the Omarchy CLI?
Execute omarchy update in your terminal. This calls the main script at bin/omarchy-update, which coordinates package upgrades, snapshot creation, and system migrations in a single atomic operation.
How do I run an Omarchy update without interactive prompts?
Append the -y flag: omarchy update -y. This enables unattended mode by setting OMARCHY_UPDATE_UNATTENDED=1, automatically confirming all prompts and suitable for cron jobs or automation scripts.
What protects against failed or interrupted updates?
The bin/omarchy-update-lock script prevents concurrent update attempts that could corrupt the package database, while mandatory Btrfs snapshots created via omarchy-snapshot create provide a boot-time rollback path if the upgrade fails.
Where is the Omarchy update logic implemented in the source code?
The entry point resides in bin/omarchy-update, with individual phases separated into dedicated scripts like bin/omarchy-update-system-pkgs for pacman operations and bin/omarchy-update-aur-pkgs for AUR handling. User-facing documentation is maintained in manual/30-updates.md.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →