# What Are the Two Main Packages in Omarchy?

> Discover the two main packages in Omarchy: omarchy (stable) and omarchy-dev (edge). Understand how they provide a complete desktop environment via distinct release channels.

- Repository: [37signals/omarchy](https://github.com/basecamp/omarchy)
- Tags: getting-started
- Published: 2026-08-21

---

**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`](https://github.com/basecamp/omarchy/blob/main/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:

```bash
$ 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`](https://github.com/basecamp/omarchy/blob/main/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:

```bash

# From test/shell.d/version-test.sh

$(version omarchy-dev)

```

Querying the development package returns its specific version:

```bash
$ 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`](https://github.com/basecamp/omarchy/blob/main/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:

```bash
$ 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 identifier
- **`bin/omarchy-update-available`**: Checks for updates while respecting channel preferences
- **`omarchy-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) and **`omarchy-dev`** (edge) packages
- The stable package provides the production-ready desktop environment verified in [`test/shell.d/version-test.sh`](https://github.com/basecamp/omarchy/blob/main/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`](https://github.com/basecamp/omarchy/blob/main/test/shell.d/update-available-test.sh)
- Both packages share identical CLI tools including `omarchy-version` and `omarchy-update-available`
- When co-installed, `omarchy-dev` is preferred by `bin/omarchy-update-available` for 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`](https://github.com/basecamp/omarchy/blob/main/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`](https://github.com/basecamp/omarchy/blob/main/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.