What Is the `omarchy update` Command For? Complete System Update Workflow
The omarchy update command orchestrates a comprehensive, atomic update process that refreshes both the Omarchy environment and all underlying Arch Linux system packages while maintaining safety through snapshots, locks, and automatic cleanup.
The omarchy update command serves as the primary maintenance interface for machines running Omarchy, the Arch Linux-based development environment maintained by Basecamp. According to the source code header in quattro/bin/omarchy-update, the script's explicit purpose is to "Update Omarchy and system packages" (lines 3-5), coordinating a multi-stage workflow that handles everything from pre-flight checks to optional system reboots.
How omarchy update Works
The command executes a carefully sequenced pipeline of operations defined in bin/omarchy-update. Each stage is delegated to specialized helper scripts to ensure modularity and reliability.
Pre-flight Validation and Concurrency Control
Before modifying the system, the script invokes bin/omarchy-update-lock to acquire an exclusive lock, preventing concurrent update instances from interfering with each other. It then runs omarchy-update-requires-free-space to verify that sufficient disk space exists for downloading and installing updates.
Safety Mechanisms and System Snapshots
The workflow prioritizes recoverability by executing omarchy-snapshot create (via bin/omarchy-snapshot) to generate a Btrfs snapshot, creating a rollback point if the update fails. Simultaneously, omarchy-update-stay-awake prevents the system from suspending or sleeping during the potentially long-running operation.
Core Package and Environment Updates
The actual update sequence processes multiple package sources and environments:
omarchy-update-devandomarchy-update-keyringrefresh development tools and update cryptographic keyrings.omarchy-update-system-pkgs(defined inbin/omarchy-update-system-pkgs) upgrades all native system packages using pacman.bin/omarchy-migrateruns pending configuration or schema migrations to ensure compatibility with new versions.omarchy-update-aur-pkgshandles updates for packages installed from the Arch User Repository.omarchy-update-misesynchronizes language runtimes and tools managed by the mise version manager.
Cleanup and Finalization
The final phase removes orphaned dependencies via omarchy-update-orphan-pkgs, analyzes operation logs with omarchy-update-analyze-logs, and reports the final status through omarchy-update-status. The script releases wake-locks and, if necessary, triggers a system reboot through omarchy-update-restart.
Usage Examples
Basic Interactive Update
Run the full update workflow with manual confirmation:
omarchy update
Prompts for user confirmation before proceeding with package installations.
Unattended Automatic Updates
Execute updates without interactive prompts using the -y flag:
omarchy update -y
This sets the OMARCHY_UPDATE_UNATTENDED environment variable (lines 24-27 in quattro/bin/omarchy-update), allowing the script to proceed automatically through all stages.
Manual Snapshot Before Updating
While the script attempts automatic snapshots, you can manually create one first:
omarchy snapshot create
omarchy update
Explicitly ensures a rollback point exists at bin/omarchy-snapshot before the update begins.
System-Only Package Updates
To update only system packages without the full Omarchy orchestration:
omarchy-update-system-pkgs
Directly invokes the package updater without locks, snapshots, or migration steps.
Key Implementation Files
The update system is modularized across several scripts in the bin/ directory:
bin/omarchy-update: The main driver script located atquattro/bin/omarchy-updatethat coordinates the entire workflow.bin/omarchy-update-lock: Implements file-based locking to prevent concurrent update processes.bin/omarchy-update-system-pkgs: Performs the actual pacman system package upgrades.bin/omarchy-migrate: Executes post-upgrade configuration and schema migrations.bin/omarchy-snapshot: Manages Btrfs snapshots for system recovery and rollback capabilities.
Summary
omarchy updateis the centralized command for maintaining both Omarchy and the underlying Arch Linux system.- The workflow includes safety mechanisms like file locks, free-space checks, and automatic Btrfs snapshots.
- It handles multiple package sources including official repositories, AUR packages, and mise-managed tools.
- The
-yflag enables unattended operation by settingOMARCHY_UPDATE_UNATTENDED. - Migration scripts run automatically to ensure configuration compatibility after upgrades.
- Comprehensive cleanup removes orphaned packages and analyzes logs before completion.
Frequently Asked Questions
Does omarchy update modify only Omarchy or the entire system?
The command updates both. According to the source code header in quattro/bin/omarchy-update, it handles "Update Omarchy and system packages," meaning it refreshes the Omarchy environment configuration, development tools, and all underlying Arch Linux system packages including the kernel and system libraries.
How do I run updates automatically without prompts?
Supply the -y flag when invoking the command:
omarchy update -y
This sets the OMARCHY_UPDATE_UNATTENDED environment variable, causing the script to skip confirmation prompts and proceed through all stages—snapshot creation, package updates, migrations, and cleanup—without user intervention.
Can I rollback if an update breaks my system?
Yes. The omarchy update command automatically creates a Btrfs snapshot via bin/omarchy-snapshot before modifying the system. If the update introduces instability, you can restore the previous system state using the snapshot management tools provided by Omarchy, typically through the omarchy-snapshot command interface.
What is the difference between omarchy update and omarchy-update-system-pkgs?
omarchy update is the full orchestration script that handles locks, snapshots, migrations, AUR packages, and cleanup. omarchy-update-system-pkgs is a specialized helper script (located at bin/omarchy-update-system-pkgs) that only performs the pacman system package upgrade without any of the surrounding safety checks or Omarchy-specific maintenance tasks. Use the latter only when you need to bypass the full workflow.
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 →