What Are the Two Main Packages in Omarchy?
The two main packages in Omarchy are omarchy (stable) and omarchy-dev (edge), which together deliver the complete desktop environment through distinct release channels.
Omarchy, Basecamp's Linux desktop environment, distributes its core functionality through two main packages that target different release cycles. While both provide the identical command-line interface and desktop experience, they serve separate user needs—production stability versus early access to development features. Understanding the distinction between these packages is essential for managing updates and system configuration in the basecamp/omarchy ecosystem.
The Stable Channel: omarchy
The omarchy package represents the production-ready release of the desktop environment. It includes the full suite of command-line utilities, default configurations, and the stable version of all system components.
Version Verification
The test suite validates this package through test/shell.d/version-test.sh, where the build system checks that $(version omarchy) returns the correct stable identifier. When queried directly via bin/omarchy-version, the package reports its production version string:
$ omarchy-version omarchy
4.0.0-1
The Edge Channel: omarchy-dev
The omarchy-dev package functions as the rolling-release channel that tracks the latest development changes. It exposes the same interface as the stable package but provides access to experimental features before they graduate to the main release.
Development Build Characteristics
According to comments in test/shell.d/version-test.sh, the edge channel installs omarchy-dev, and older builds did not declare provides=(omarchy) in their package metadata. This ensures the development package maintains distinct identity within the system while still validating through the same test infrastructure:
# From test/shell.d/version-test.sh
$(version omarchy-dev)
Querying the development package returns its specific version:
$ omarchy-version omarchy-dev
4.0.0-1
Package Selection and Update Logic
When both packages are present on the same system, Omarchy's update infrastructure implements specific preference rules to determine which channel takes precedence.
Update Checking Behavior
As demonstrated in test/shell.d/update-available-test.sh, the update-checking logic prefers the edge package when both are installed. This prioritization ensures that users tracking the development branch receive updates without manual channel switching.
The bin/omarchy-update-available script implements this logic, outputting the preferred package when checking for updates:
$ omarchy-update-available
omarchy-dev 4.0.0-1
This behavior means that installing omarchy-dev alongside omarchy effectively switches your system to receive edge channel updates, as the development package takes precedence in the update queue.
Core Interfaces Across Both Packages
Despite their different release cycles, both packages expose identical command-line utilities located in the bin/ directory:
bin/omarchy-version: Reports version information for either package identifierbin/omarchy-update-available: Checks for updates while respecting channel preferencesomarchy-update: Applies system updates from the active channel
This unified interface ensures that scripts and user workflows remain compatible regardless of which package is currently installed or active on the system.
Summary
- Omarchy distributes through
omarchy(stable) andomarchy-dev(edge) packages - The stable package provides the production-ready desktop environment verified in
test/shell.d/version-test.sh - The development package offers rolling-release updates and takes precedence in the update logic found in
test/shell.d/update-available-test.sh - Both packages share identical CLI tools including
omarchy-versionandomarchy-update-available - When co-installed,
omarchy-devis preferred bybin/omarchy-update-availablefor update checking
Frequently Asked Questions
What is the difference between omarchy and omarchy-dev?
The omarchy package contains the stable, production-ready release of the desktop environment, while omarchy-dev tracks the latest development changes as a rolling-release edge channel. Both provide the same desktop environment and command-line utilities, but omarchy-dev receives updates immediately as they are committed and may include experimental features not yet validated for production use.
How does Omarchy decide which package to update?
According to the source code in test/shell.d/update-available-test.sh, the update-checking logic implemented in bin/omarchy-update-available prefers omarchy-dev when both packages are installed. This ensures that systems with the edge channel installed automatically receive the latest development updates rather than waiting for the stable release cycle.
Can I install both omarchy and omarchy-dev simultaneously?
Yes, both packages can coexist on the same system. When installed together, the update logic will prioritize omarchy-dev for update checking, effectively treating the edge channel as the active release track. The test suite in test/shell.d/version-test.sh explicitly validates both packages to ensure this coexistence works correctly.
Which package should I use for production environments?
For production environments requiring maximum stability, use the omarchy package. The omarchy-dev package is intended for testing new features and should be reserved for development workstations or users willing to tolerate potential instability in exchange for early access to updates and the ability to validate changes before they reach the stable channel.
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 →