omacom/try-omarchy
44.1
Weak · 1 October 2026
14.8k
lines of production code
Swift
with Python
2
measurements over time
What this system is
This system is a native macOS application that runs an ARM64 Linux virtual machine using QEMU, replacing a previous web-based architecture. It provides deep host-guest integration by mirroring macOS hardware features—such as battery status, camera, audio, clipboard, and Touch ID authentication—into the guest environment. The platform manages the full lifecycle of the virtual machine, including building the guest image, configuring networking, and handling persistent storage, all within a self-contained Swift runtime.
Features
Alacritty migration script and Touch ID sudo controls added
Added a new Python migration script to clean up stale Alacritty factory wrappers and launcher entries, and introduced shell scripts to manage Touch ID authentication for sudo, including enrollment and policy control.
guest/native-overlay/usr/local/sbin · high confidence
Guest OS now mirrors host Mac battery status via kernel module
A new Linux kernel module (try-omarchy-battery) is installed in the guest to expose the host Mac's battery as a standard power\_supply device (BAT0/ADP0). This allows guest OS tools to report accurate battery percentage, charging status, and AC presence. Additionally, UPower configuration is updated to prevent the guest from suspending or powering off based on low battery warnings, ensuring power management decisions remain controlled by the host.
guest/native-module, guest/native-overlay/etc/UPower · high confidence
Introduce Omarchy VM Helper with app update checks, VM settings, and integration status
The macOS app now includes a dedicated helper process (OmarchyVMHelper) that manages several user-facing capabilities. Users can now opt-in to automatic checks for new app releases on GitHub, with a manual check option and a dedicated updates window. The VM start menu allows users to configure guest memory allocation and immersive (fullscreen) mode preferences. Additionally, a status item in the menu bar displays the health of guest integrations (such as sudo Touch ID and battery mirroring) and provides a way to review or repair them.
macos/Sources · high confidence
Introduce VM integration updates for sudo Touch ID and Mac battery status
Existing virtual machines can now receive and install guest integrations independently of the factory disk image. This update adds support for sudo Touch ID authentication and mirrors Mac battery status into the guest's Omarchy bar. The system uses a dedicated read-only 9p share to deliver a signed bundle of scripts and kernel modules, which users explicitly approve via a launcher review step. A background service reports integration status back to the host, allowing the launcher to display installation progress and health checks without requiring SSH or manual command injection.
integrations · high confidence
Introduces ARM64 guest image build system and native integration
Adds the infrastructure to build a factory ARM64 guest image (Arch Linux with Omarchy) using a Docker-based Containerfile and build scripts, including pinned package locks and source verification. The guest image is configured with native macOS integrations via virtio-ports, exposing the Mac camera, audio, clipboard, battery status, and timezone to the guest, and provides a settings bridge to open the host application's preferences. It also includes a patched Hyprland for correct rounded-border rendering in VMs, an opt-in SSH access generator, and support for installing Ghostty with a VirGL rendering fallback.
guest · high confidence
Native macOS app with privileged bridged networking and self-contained runtime
The macOS directory now contains the native application layer, including a Swift/AppKit lifecycle, a pinned QEMU ARM64 runtime with HVF and VirGL, and a privileged bridged networking helper. The app bundles a self-contained QEMU runtime (commit c3d48b7) with checksum-pinned dependencies and custom patches for Cocoa, immersive mode, and audio continuity. It introduces a new start menu allowing users to configure CPU, memory, and disk capacity, and lets them choose the VM's data location. A new bridged networking system uses a signed XPC daemon (socket\_vmnet v1.2.2) to manage host interfaces, with automatic Wi-Fi compatibility and adapter reconnection. The app also handles persistent disk management, including safe growth and migration of older disk formats, and integrates with macOS privacy permissions for camera, microphone, and folders.
macos · high confidence
New audio input management, screensaver, and background switcher utilities
This change introduces three new shell scripts to the guest environment. The \omarchy-audio-input-set-default\ script manages default audio input sources, specifically ensuring that application recordings are moved correctly while preserving the internal source output required for the QEMU HDA microphone to function. The \omarchy-screensaver\ script runs ASCII art animations using \ttfx\, handling terminal resize synchronization and input-based exit logic. Finally, \omarchy-theme-bg-switcher\ provides a menu for selecting background images, prioritizing the currently active theme's seeded wallpaper.
guest/native-overlay/usr/bin · high confidence
New factory guest build and integration scripts for ARM64
The guest/scripts directory now contains a complete set of new build and configuration scripts for the ARM64 (aarch64) factory guest profile. These scripts automate the materialization of the Omarchy source tree, apply verified backports with SHA-256 integrity checks, and configure the root filesystem with native Mac integrations including Touch ID for sudo and 1Password, battery mirroring, clipboard sharing, and audio bridge services. The toolchain also handles fetching pinned upstream sources, finalizing the image with security policies and systemd units, and packaging the final disk image, ensuring the guest is provisioned with specific ARM64 packages like Hyprland and Voxtype while maintaining supply-chain authenticity.
guest/scripts · high confidence
New guest utilities for clock recovery, Ghostty, Vivaldi, and native authentication
This update adds several new scripts to the guest environment. A new clock-recovery script automatically corrects the guest's system time if it drifts after the host Mac sleeps. Signed ARM64 installers are provided for Ghostty (with a VirGL rendering fallback) and Vivaldi, both of which verify package signatures and checksums before installation. Additionally, a native authentication broker and related agents are introduced to support Touch ID-based sudo and 1Password unlock operations within the guest.
guest/native-overlay/usr/local · high confidence
New guest-side integration scripts for native macOS features
This change introduces a suite of new executable scripts in /usr/local/bin that bridge macOS capabilities into the Omarchy guest environment. These include omarchy-native-audio-bridge to mirror Mac audio endpoints via PipeWire, omarchy-native-battery-bridge to expose the Mac battery status as a guest power supply, omarchy-native-camera-bridge to provide the Mac camera as a V4L2 device, and omarchy-native-clipboard-bridge for two-way clipboard sharing. Additional scripts handle Mac folder sharing via virtio-9p (omarchy-native-mac-share), display synchronization and scaling (omarchy-native-display-sync), cursor visibility adjustments for VirGL (omarchy-native-cursor-restore), and automatic time zone synchronization (try-omarchy-timezone). The set also includes try-omarchy-locale for early locale configuration, try-omarchy-touch-id for sudo authentication, omarchy-native-settings for opening Mac settings, and helper scripts for architecture-specific package refusal (omarchy-pkg-refuse-aarch64-unavailable) and a Kitty wrapper to force software rendering in VirGL guests.
guest/native-overlay/usr/local/bin · high confidence
New initcpio hook to export boot assets via 9p share
A new initcpio hook (\try-omarchy-boot-export\) and its installation script have been added to the guest native overlay. When the kernel command line includes \tryomarchy.export\_boot=1\, the system will copy the installed kernel image, initramfs, and build specification to a 9p share mounted at \/run/try-omarchy-boot-export\. This allows the host launcher to access these boot assets, facilitating features like preserving older VM disks across app updates.
guest/native-overlay/usr/lib/initcpio · high confidence
New systemd services for host-guest integration features
Added systemd units to enable several host-guest integration capabilities: mirroring the macOS battery status into the guest, sharing a Mac folder via virtio-9p, recovering the guest clock after host sleep, synchronizing the guest timezone with the Mac host, setting the guest locale from the host UI, enabling Touch ID unlock for 1Password, and migrating Alacritty to hardware acceleration.
guest/native-overlay/usr/lib/systemd/system · high confidence
Removals
Removal of Cloudflare Worker entry point
The Cloudflare Worker entry point file (worker/index.ts) has been removed from the codebase. This file previously handled image optimization requests via the /\_vinext/image path and routed other requests through the application handler, applying specific Cross-Origin isolation headers. Its removal indicates that the worker-based serving logic for these functions is no longer present in this location.
worker · high confidence
Removal of database scaffolding and example code
The project has removed the default database configuration files and the D1 example implementation. Specifically, the main \db/index.ts\ and \db/schema.ts\ files, which previously provided a basic Drizzle ORM setup and an empty schema placeholder, have been deleted. Additionally, the \examples/d1/db/schema.ts\ file, which contained a sample 'notes' table definition for Cloudflare D1, has been removed. Users no longer have access to these out-of-the-box database structures or the example code for integrating Drizzle with D1.
db, examples · high confidence
Removed browser-based demo launcher component
The \DemoLauncher\ component, which previously allowed users to launch a disposable, client-side Omarchy virtual machine directly in the browser with capability checks for WebAssembly and Threads, has been removed from the application.
app/components · high confidence
Removed notes API route from D1 example
The notes API route (app/api/notes/route.ts) has been removed from the D1 example application. This eliminates the ability to create or retrieve notes via the API within this specific demo, as the file containing the GET and POST handlers for the notes table is no longer present.
examples/d1 · high confidence
Removed the browser-based Omarchy demo and ChatGPT authentication
The app no longer includes the disposable browser-based virtual machine demo or the ChatGPT authentication flow. The root page, global styles, layout, and the \chatgpt-auth.ts\ module have been deleted, removing the ability to try Omarchy directly in the browser via this interface.
app · high confidence
Architecture
Project migrated from Next.js/Vite web starter to native macOS app build system
The repository has been restructured to support a native Apple Silicon macOS application that runs an ARM64 virtual machine, replacing the previous Next.js/Vite web starter setup. This change removes web-specific configuration files (including \next.config.ts\, \vite.config.ts\, \eslint.config.mjs\, \tsconfig.json\, and \drizzle.config.ts\) and introduces a new \Makefile\ to manage the build pipeline for the guest image, QEMU runtime, and the native Swift app. The project now relies on a \macos/\ directory for the launcher and runtime patches, and \guest/\ for the virtual machine image, with documentation updated in \README.md\, \CONTRIBUTING.md\, and \AGENTS.md\ to reflect the new native workflow and build requirements.
(repo-wide) · high confidence
Behavioural changes
Automated app version stamping and build caching
The build process now automatically stamps the macOS app version using Git release tags (e.g., v1.2.3) and commit counts, ensuring the app bundle reflects the exact source state. Additionally, a new build cache system tracks file hashes and environment details to skip expensive rebuilds when inputs have not changed, significantly speeding up development iterations.
scripts · high confidence
Enhanced Mac integration: timezone sync, audio stability, and input handling
The guest experience now includes automatic timezone synchronization with the host Mac via a new desktop entry, improved audio stability for the emulated HDA device by raising the PipeWire quantum to 4096 to prevent dropouts, and refined input handling that maps Mac ISO keyboard geometry and forwards trackpad pinch gestures through a dedicated virtio touchpad device.
guest/native-overlay/usr/share · high confidence
Guard systemd units against missing binaries in trimmed guests
Added override configurations for the Bluetooth agent (bt-agent) and Fcitx5 input method (fcitx5) user services to prevent restart loops when their binaries are absent in trimmed guest environments. The bt-agent unit now checks for /usr/bin/bt-agent before starting, and the fcitx5 unit checks for /usr/bin/fcitx5, ensuring clean skipping instead of flooding the journal with execution errors. Additionally, a configuration for the omarchy-provision-owner service was added to remove the autologin-once service file after provisioning, ensuring the direct Omarchy login remains active on native VMs where the X11 greeter does not render through VirGL.
guest/native-overlay/etc/systemd · high confidence
Guest VM configuration updates for font rendering, boot, and memory
The guest VM environment now includes specific configuration overlays to improve compatibility and user experience. A new fontconfig rule ensures Traditional Chinese (zh-TW/zh-hant) text renders correctly using Noto Sans/Serif CJK TC faces. The initramfs build is adjusted to use uncompressed cpio format for better inspection and compatibility with the launcher, while explicitly loading necessary VirtIO modules. Additionally, the zram swap generator is configured to use the lzo-rle compression algorithm to match the available kernel backend, preventing setup warnings.
guest/factory-overlay/etc · high confidence
Honor user terminal preference via xdg-terminal-exec
The guest environment now respects the user's preferred terminal emulator when launching new terminal windows. A new \xdg-terminal-exec\ script reads the user's configuration from \\~/.config/xdg-terminals.list\ to determine which terminal to use, supporting Alacritty, Foot, Ghostty, and Kitty. Additionally, a new environment configuration file ensures that native applications run on Wayland and configures fcitx5 input method support for XWayland clients.
guest/factory-overlay/usr · high confidence
Improved ARM64 guest stability and new app support
This update enhances the ARM64 guest experience by adding support for installing 1Password and Ghostty (with a VirGL rendering fallback), while explicitly blocking installation of x86\_64-only applications like Battle.net, Dropbox, GeForce NOW, and Lutris to prevent confusing failures. It also fixes false kernel reboot prompts on ARM by correctly detecting Arch Linux ARM kernel updates, clarifies free-space error messages during updates for VM users, and adds a US International with dead keys keyboard layout option. Additionally, it introduces Vivaldi as a supported browser for installation, removal, and default selection, and improves the notification UI with a hover-revealed close button and privacy protection that hides notifications during screensaver or lock screen states.
guest/patches/omarchy · high confidence
Improved guest display sync, input method support, and package management for ARM QEMU
This update enhances the guest experience on ARM QEMU by enabling native display synchronization and cursor handling via a new Hyprland monitor configuration that respects host EDID data. It also adds support for the Chewing input method within fcitx5 and enables Wayland IME in Chromium for better text input. Additionally, a new pacman hook ensures the correct ARM-specific package repository configuration is restored before package refreshes, fixing potential installation issues.
guest/fragments · high confidence
Test coverage
Added comprehensive test suite for macOS VM components; Added tests for app version stamping, build caching, and icon packaging; Expanded test coverage for OmarchyVMHelper; Expanded test coverage for guest configuration and migration logic.
Dependencies
Removed Node.js site-creator-vinext-starter project and added macOS Swift package
This change removes the Node.js-based 'site-creator-vinext-starter' project, including its package.json and package-lock.json files, which previously managed dependencies like React 19.2.6, Vite 8.0.13, and Wrangler 4.92.0. Simultaneously, it introduces a new Swift Package Manager manifest (Package.swift) for the 'OmarchyVMHelper' executable, targeting macOS 15.0 and Swift 5 language mode, establishing the build structure for the native macOS VM helper component.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 54 → 44 (-10.4)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 86 → 84 (-2.7)
- Architecture 97 → 99 (+1.6)
- Maturity 64 → 64 (-0.5)
- Readiness 33 → 32 (-1.6)
- Security 82 → 81 (-1.0)
- Event-Driven 70 → 37 (-33.3)
- Performance 64 (new)
Resolved (6)
- Documentation: no installation or build instructions (README.md)
- Duplicated block (10 lines × 2) (macos/Sources/OmarchyVMHelper/StartMenuWindow.swift)
- Duplicated block (3–5 lines × 3) (macos/Sources/OmarchyVMHelper/PortForwardingEditor.swift)
- Hotspot: macos/Sources/OmarchyVMHelper/QMPConnection.swift (macos/Sources/OmarchyVMHelper/QMPConnection.swift)
- Hotspot: macos/Sources/OmarchyVMHelper/StorageLocation.swift (macos/Sources/OmarchyVMHelper/StorageLocation.swift)
- write-builder-pacman-conf.load_abi_pins (cognitive 21) (guest/scripts/write-builder-pacman-conf.py)
New (42)
- Coverage not measured — Swift suite
- Dependency hygiene PARTLY measured — SwiftPM pinning read, dependency currency NOT established
- Documentation: written for insiders (docs/mac-keyboard.md)
- Duplicated block (15–18 lines × 2) (macos/Sources/OmarchyVMHelper/StartMenuWindow.swift)
- Duplicated block (3–5 lines × 4) (macos/Sources/OmarchyVMHelper/AppReleaseWindow.swift)
- Duplicated block (5 lines × 2) (guest/scripts/write-guest-manifest.py)
- Duplicated block (6 lines × 2) (macos/Sources/OmarchyVMHelper/NetworkEditor.swift)
- Duplicated block (7 lines × 2) (guest/scripts/verify-background-switcher-override.py)
- Duplicated block (7 lines × 2) (macos/Sources/OmarchyVMHelper/NativeBatteryBridge.swift)
- Duplicated block (9 lines × 2) (macos/Sources/OmarchyVMHelper/StartMenuWindow.swift)
- GuestIntegrationBridge.tick (cognitive 19) (macos/Sources/OmarchyVMHelper/GuestIntegrationStatus.swift)
- Hotspot: guest/scripts/install-touch-id-menu-entry.py (guest/scripts/install-touch-id-menu-entry.py)
- Hotspot: guest/scripts/write-builder-pacman-conf.py (guest/scripts/write-builder-pacman-conf.py)
- Medium: security finding (details withheld)
- Members sharing a duplicated core (4 members, 50+ identical tokens) (macos/Sources/OmarchyVMHelper/AppReleaseWindow.swift)
- MethodTooLong: VMApplicationController.prepareStartMenu (macos/Sources/OmarchyVMHelper/VMApplicationController.swift)
- NativeTimeZoneBridge.run (cognitive 20) (macos/Sources/OmarchyVMHelper/NativeTimeZoneBridge.swift)
- NetworkEditor.update (cognitive 16) (macos/Sources/OmarchyVMHelper/NetworkEditor.swift)
- NetworkEditor.update (cyclomatic 17) (macos/Sources/OmarchyVMHelper/NetworkEditor.swift)
- Off-boarding risk: anonymized user #1
- …and 22 more
Changes since last survey
- 50 commits — 30 feature/other, 20 fixes
By area
- macos/Tests — 12 commits
- (root) — 10 commits
- macos/Sources — 9 commits
- guest/native-overlay — 7 commits
- guest/scripts — 3 commits
- guest/tests — 3 commits
- guest/patches — 2 commits
- docs/architecture.md — 1 commit
- guest/README.md — 1 commit
- guest/packages.lock.json — 1 commit
- macos/build-qemu-gpu-runtime.sh — 1 commit
Notable commits
- fix: Experimental host USB passthrough, plus two build fixes (#236)
- fix: Fix ARM64 1Password installation with renamed desktop entries (#233)
- fix: Fix stale iconless Alacritty entry in Apps (#248)
- fix: [fix] Announce the VM ready only once its QMP monitor answers (#229)
- fix: [fix] Enable accelerated Alacritty on macOS 26+ (#176)
- fix: [fix] False kernel reboot prompts on ARM guests (#219)
- fix: [fix] Keep Launch visible and group Reset below settings (#187)
- fix: [fix] Map Mac ISO keyboard geometry through the bundled helper (#190)
- fix: [fix] Preserve HDA playback audio across graphics-related stalls (#254)
- fix: [fix] Preserve bridged MAC addresses across VM upgrades (#209)
- fix: [fix] Read the saved root from /sysroot during boot export (#237)
- fix: fix(guest): add us-acentos keyboard layout option (#195)
- fix: fix(macos): stamp app version from git release tag (#223)
- fix: fix: allow TCP forwarding restart after connection teardown (#269)
- fix: fix: bound Hyprland build parallelism by available memory (#271)
- fix: fix: configure guest lock screen authentication (#272)
- fix: fix: hold hyprland-guiutils with the compatible graphics stack (#268)
- fix: fix: recover guest clock after host sleep (#184)
- fix: fix: repair package holds in existing guests (#185)
- fix: fix: translate injected keyboard text in Cocoa (#273)
- …and 30 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
omacom/try-omarchy was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 1 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit e1a0dbe9820a8f7554ac3b930c2f13e1f41b25a1 — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.