Skip to content
CAI
Software that uses CAICheck a score

insidegui/VirtualBuddy

57.3

Adequate · 27 September 2026

28.8k

lines of production code

Swift

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

VirtualBuddy is a macOS application for creating, managing, and running virtual machines for both macOS and Linux guests. It provides a comprehensive interface for configuring hardware, storage, and networking, while supporting deep linking for external automation and secure host-guest communication via the VirtualBuddyGuest helper. The system handles VM lifecycle management, including state saving, UTM import, and software catalog-based installation, with built-in support for managed enterprise environments.

How it got here

2022 — VirtualCore architecture and UI overhaul

34 changes.

This period established the foundational VirtualCore framework for VM management and introduced a comprehensive new SwiftUI-based UI system. Key developments included a complete redesign of the library, installation wizard, and configuration interfaces, alongside the implementation of host-guest communication via VirtualWormhole and state persistence features.

18 changes.

This period focused on introducing the VirtualBuddyGuest application, including its dashboard, login-at-login management, and shared folder capabilities. It also established a secure deep linking framework to allow external apps to control virtual machines, alongside significant UI overhauls for the installer and settings interface.

2026 — VirtualInstallation service and restore mechanism

4 changes.

This period focused on implementing a dedicated XPC service for virtual machine installations and introducing a custom restore backend leveraging Apple's MobileDevice SPI. The work also established build-time safeguards for legacy guest support and added comprehensive test coverage for disk resizing, session management, and managed device preferences.

Features

Added VirtualBuddyGuestHelper launch-at-login component

A new helper application, VirtualBuddyGuestHelper, has been added to support registering the guest app as a login item. This component includes the necessary macOS app structure (storyboard, assets, entitlements) and a delegate class to manage the launch-at-login behavior, allowing the guest application to start automatically with the user session.

VirtualBuddyGuestHelper · high confidence

Added VirtualUI preview support and Objective-C compatibility constants

This change introduces two new definition files to the VirtualUI module. PreviewSupport-VirtualUI.swift adds a debug-only preview instance for VirtualMachineSessionUI, enabling developers to preview the session UI in SwiftUI canvases. VirtualUIConstants.swift establishes a logging subsystem name and provides an Objective-C compatible wrapper (\_VirtualUIConstantsObjC) along with a Bundle extension for resource access, ensuring interoperability with legacy Objective-C codebases.

VirtualUI/Source/Definitions · high confidence

Added entitlements for USB passthrough, audio input, and optional networking

The app now includes specific macOS entitlements to enable new capabilities. Users can now use USB passthrough for virtual machines and access audio input devices. A separate configuration includes the com.apple.vm.networking entitlement, allowing virtual machines to access the network when built with that specific profile.

VirtualBuddy/Config/Entitlements · high confidence

Blur hash decoding capability added to VirtualUI

The VirtualUI component now includes a native implementation for decoding BlurHash strings into images. This change introduces the \BlurHashDecoding.swift\ file, which provides extensions for SwiftUI \Image\ and \NSImage\ to render blur hashes directly, including a fallback placeholder image for invalid or missing data. This enables the UI to display compressed, low-resolution placeholder images that match the color palette of the actual content, improving perceived loading performance.

VirtualUI/Source/Components/BlurHash · high confidence

Initial VirtualCore library with VM import, guest support, and configuration models

This change introduces the VirtualCore framework, establishing the foundational architecture for virtual machine management. It adds support for importing virtual machines from UTM, including the conversion of UTM configurations into VirtualBuddy's native models. The library implements the Guest Additions disk image generation and installation logic, ensuring the VirtualBuddyGuest app is correctly mounted and updated. It also defines the core configuration models for VM hardware (CPU, memory, storage, network, USB), provisioning settings, and shared folders, along with validation logic to check host and guest compatibility. Additionally, it includes utilities for logging, preview support for SwiftUI, and blur hash handling for VM thumbnails.

VirtualCore · high confidence

Introduce custom virtual machine restore mechanism for VirtualInstallation

VirtualInstallation now implements a dedicated restore backend that directly invokes Apple's MobileDevice SPI (AMRestorableDeviceRestore) to handle device restoration. This change adds a new \DeviceRestoreDriver\ and \AppleMobileDeviceRestoreBackend\ to manage the restore lifecycle, including waiting for the device, configuring detailed logging (global, device, host, serial), and parsing progress updates into \DeviceRestoreState\ objects. It also introduces a test backend (\TestDeviceRestoreBackend\) and associated test resources to simulate restore progress and failures, enabling better reliability and observability for virtual machine installations.

VirtualInstallation · high confidence

Introduce secure deep linking to control virtual machines

VirtualBuddy now supports deep links for managing virtual machines, allowing external apps to open, boot, or stop VMs via specific URL schemes (e.g., \x-virtualbuddy://open?name=...\). This feature includes a new security framework that requires user authorization via a system-style dialog before granting access, ensuring that only trusted applications can interact with the virtualization engine.

VirtualBuddy/Automation · high confidence

Introduce vctool command-line utility for catalog management and image processing

VirtualBuddy now includes a new command-line tool, vctool, accessible via the main app executable or as a standalone symlink. This utility provides subcommands for managing the software catalog (adding groups and restore images, migrating from legacy v1 catalogs, and resolving compatibility for specific host environments), inspecting IPSW files to extract build manifests, and generating or decoding blur hashes for catalog graphics. It also includes a command to check the installed MobileDevice framework version.

VirtualBuddy/CommandLine · high confidence

Adds the DeepLinkSecurity framework, which intercepts incoming deep link requests via Apple Events and enforces security by authenticating the requesting client application. The system validates the client's code signature using macOS Security frameworks, checks for existing user authorization decisions, and prompts the user via a configurable UI (DeepLinkAuthUI) if the client is undetermined. Authorization decisions are persisted securely in the Keychain using signed responses to prevent tampering, while client metadata and management data are stored in UserDefaults. This ensures that only authorized applications can trigger deep links in the host app.

DeepLinkSecurity · high confidence

Introduction of VirtualUI framework with status item support

A new VirtualUI framework has been added to the project, providing a dedicated location for UI components to facilitate SwiftUI previews. The framework exposes versioning information and imports public headers for extending NSStatusItem and NSApplication (specifically for menu bar management), establishing the infrastructure for status item integration in the guest application.

VirtualUI · high confidence

New RemoteImage component with caching and blur-hash support

A new SwiftUI view, RemoteImage, has been introduced to handle remote image loading. It displays a blur hash placeholder while the image downloads, falling back to a generic rectangle if no hash is provided. The component includes a dedicated loader that caches images in both memory and the local disk cache to improve performance and reduce network usage.

VirtualUI/Source/Components/RemoteImage · high confidence

New SwiftUI status item infrastructure and UI components

This change introduces the foundational components for a new macOS menu bar status item implementation. It adds a suite of SwiftUI views and AppKit bridges, including \StatusItemButton\ and \StatusItemButtonLook\ for rendering the menu bar icon with dynamic sizing and highlight states, \StatusBarPanelChrome\ for the floating panel's visual styling, and \StatusBarContentPanel\ to manage the panel's window behavior. Supporting infrastructure includes \VUIAppKitViewControllerHost\ for embedding AppKit controllers in SwiftUI, \ScreenChangeModifier\ to handle multi-display layout adjustments, and Objective-C extensions (\NSStatusItem+\, \NSApplication+MenuBar\) to access private APIs for menu bar highlighting and visibility control.

VirtualUI/Source/Components/SwiftUI Status Item/Components · high confidence

New UI component library and Liquid Glass compatibility layer

This update introduces a suite of new UI components in VirtualUI/Source/Components, including a backwards-compatible Liquid Glass support layer (AirGlassEffect, AirMaterial, AirVisualEffect) that enables glass-style visuals on macOS 26+ with fallbacks for older versions, a custom keyboard navigation modifier for improved macOS 14+ focus handling, a backported ContentUnavailableView for consistent empty states, and a new LogConsole component for displaying and filtering system logs. It also adds utility views like DecentFormView for aligned form layouts, EqualWidthHStack for uniform button sizing, and CALayer extensions for asset loading and resizing.

VirtualUI/Source/Components · high confidence

New VM configuration sections for display, hardware, input, network, sound, USB, guest apps, and provisioning

The VM configuration UI now includes dedicated, collapsible sections for Display, Hardware, Keyboard, Pointing Device, Network, Sound, USB Devices, Guest App, and Provisioning. Users can adjust display presets and automatic reconfiguration, set CPU and memory, choose keyboard and pointing device types (with support checks for legacy macOS), configure network interfaces (NAT or bridged, with organization restrictions), toggle sound and microphone input, and manage USB passthrough (with host and guest support validation). The Guest App section allows enabling the VirtualBuddy Guest App and selecting legacy versions for older macOS guests, while the Provisioning section lets users set up automatic macOS account creation, login, and SSH access on first boot, with clear error messaging when features are unsupported.

VirtualUI/Source/VM Configuration/Sections · high confidence

New VM session UI components and state management controls

This change introduces a suite of new SwiftUI components for the VirtualUI session interface, including a new VM view wrapper (SwiftUIVMView) that supports DFU mode display, automatic display reconfiguration, and event delivery masking. It adds a new SavedStatePicker for selecting saved VM states, VirtualMachineStateControls for managing save/restore/pause/stop actions with a new progress overlay, and VirtualMachineUserControls for toggling mouse and keyboard capture. Additionally, it includes utility components like ContinuousProgressIndicator, MaskProgressView, and NumberDisplayMode for formatting numbers in hex or decimal.

VirtualUI/Source/Session/Components · high confidence

New guest dashboard with connection status, shared folder management, and defaults import

The VirtualBuddyGuest app now includes a new dashboard interface that displays the connection state to the host (showing a green/red indicator for connected/disconnected status). Users can manage shared folders, including revealing them in Finder and viewing mount errors, with logic to check if folders are already mounted before attempting to mount. Additionally, the dashboard provides a 'Launch At Login' toggle and, when enabled via the ENABLE\_USERDEFAULTS\_SYNC flag, a 'Defaults Import' feature that allows importing application settings from the host via the wormhole service.

VirtualBuddyGuest/Dashboard · high confidence

New host-guest communication service with clipboard, notifications, desktop picture, and defaults sync

VirtualWormhole introduces a new application integration layer over VMBridge (Virtio socket port 51780) that enables several host-guest features. Clipboard sharing is now supported with host-first synchronization, revision-based conflict resolution, and optional relay between multiple guests (controlled by WHDisablePayloadPropagation). The host can receive desktop picture updates from the guest as HEIC thumbnails, and the guest can observe host Darwin and distributed notifications. Additionally, a user defaults import/export service allows syncing settings for specific apps (Terminal, Dock, Finder) with automatic restart handling, gated behind the ENABLE\_USERDEFAULTS\_SYNC feature flag.

VirtualWormhole · high confidence

New installation wizard with guest type and method selection

The installation process now begins with a Guest Type Picker, allowing users to choose between macOS and Linux virtual machines. This is followed by an Install Method step where users can select how to obtain the installer (remote options, local file, or manual URL), and includes dedicated views for downloading the restore image and monitoring installation progress.

VirtualUI/Source/Installer/Steps · high confidence

New installer UI components and authentication handling

The installation experience now includes dedicated SwiftUI components for the wizard steps, such as input fields for the virtual machine name and custom restore image URL, along with a new installation console view for displaying logs. A new AuthenticatingWebView component handles web-based authentication during the process, and the wizard title styling has been updated to match the new design.

VirtualUI/Source/Installer/Components · high confidence

New reusable status item manager component

A new \StatusItemManager\ class has been introduced in the VirtualUI SwiftUI components to standardize the creation and lifecycle management of menu bar status items. This component allows developers to configure status items with custom identifiers, behaviors (such as allowing removal from the menu bar), and autosave names for user preferences. It supports both standard button labels and custom SwiftUI views for the status item icon, while automatically handling panel visibility toggling, highlighting states, and occlusion detection (e.g., when hidden by third-party tools like Bartender). This infrastructure provides a consistent foundation for integrating status items across different parts of the application, such as the guest app.

VirtualUI/Source/Components/SwiftUI Status Item · high confidence

Removals

Removal of SwiftUIVMView component

The SwiftUIVMView file, which previously wrapped the VMViewController to display the virtual machine's VZVirtualMachineView within a SwiftUI context, has been removed from the codebase.

VirtualBuddy/Session/Components · high confidence

Removal of VirtualMachineSessionView

The VirtualMachineSessionView component, which previously managed the VM session UI including state-based rendering (idle, running, paused), toolbar controls (pause, resume, stop, force stop, window reset), and the circular start button style, has been deleted from the codebase.

VirtualBuddy/Session · high confidence

Removal of legacy VM session configuration view

The \VMSessionConfigurationView\ file, which previously provided a basic SwiftUI form for toggling boot-in-recovery mode and capturing system keyboard shortcuts, has been removed from the codebase. This change eliminates the standalone configuration interface in favor of the updated, more comprehensive configuration UI and validation logic introduced in the surrounding commits.

VirtualBuddy/Session/Configuration · high confidence

Removed legacy LibraryView implementation

The \LibraryView.swift\ file, which previously managed the virtual machine library list and session navigation, has been deleted. This removes the old SwiftUI view structure that handled VM selection, toolbar actions for starting/stopping VMs, and the transition between the library list and the active VM session view.

VirtualBuddy/Library · high confidence

Architecture

New build configuration system for VirtualBuddy

The project introduces a structured set of Xcode configuration files (xcconfig) to manage build settings, replacing ad-hoc configurations. This system defines distinct build schemes including Debug, Release, Managed, Dev\_Release, and Beta variants, each with specific code signing entitlements and provisioning profiles. It sets the macOS deployment target to 14.0, enables Sparkle for automatic updates via compile-time flags, and configures specific app icons for development and beta releases. Additionally, it establishes runpath search paths for the main app, frameworks, CLI tools, and XPC services, and defines bundle ID prefixes to support custom branding or internal builds.

VirtualBuddy/Config · high confidence

Behavioural changes

1 commit (0 fixes) modifying VirtualUI/Resources

A change to existing behaviour in VirtualUI/Resources — 1 commit, 1 file.

VirtualUI/Resources · low confidence · unverified

Added Xcode Cloud workspace configuration

The project now includes a workspace configuration file (contents.xcworkspacedata) to support Xcode Cloud builds. Additionally, the previous entitlements file has been replaced by an IDE workspace checks plist (IDEWorkspaceChecks.plist) containing the IDEDidComputeMac32BitWarning setting, indicating a shift in how workspace-level checks are managed for the build environment.

VirtualBuddy.xcodeproj/project.xcworkspace · medium confidence

Adoption of Liquid Glass visual style for configuration UI

The configuration interface now features a new 'Liquid Glass' aesthetic, applying translucent materials, refined shadows, and subtle highlights to grouping containers and input controls. This visual update introduces a more modern, layered look for settings panels, with specific styling for primary and secondary control groups to enhance visual hierarchy and depth.

VirtualUI/Source/Building Blocks · high confidence

Centralized session management and improved window behavior

The application now uses a centralized VirtualMachineSessionUIManager to handle virtual machine sessions, allowing existing sessions to be updated when opening a file or URL while the VM is not running. This change introduces new window management features, including automatic sizing to fit the display when no saved frame exists, persistent 'Lock Proportions' settings, and toolbar commands to resize the window to point or pixel accuracy or fit the screen. Additionally, the session UI now handles deep links for booting VMs that are already open but shut down, and improves the guest menu bar visibility by using a transparent title bar during non-running states.

VirtualUI/Source/Session · high confidence

Enforced legacy guest support and new managed preference controls

This change introduces build-time safeguards and tooling to support legacy guest operating systems and managed device configurations. A new script prevents raising the VirtualBuddyGuest deployment target without first creating a corresponding legacy archive in data/LegacyGuestApp, ensuring older guest OS versions remain available for managed builds. Additionally, a Swift utility is added to generate and sign restricted configuration profiles that disable specific features (shared folders, guest apps, USB passthrough, bridged networking, and microphone input) for managed environments.

Scripts · high confidence

Guest app now registers itself as a login item

The VirtualBuddyGuest application now manages its own launch-at-login status directly, replacing the previous separate helper utility. This change ensures the guest app starts automatically with macOS and includes logic to clean up the legacy helper registration for a smoother user experience.

VirtualBuddyGuest/Dashboard/Support · high confidence

Integrated Sparkle for software updates and unified app entry point

VirtualBuddy now uses the Sparkle framework to handle application updates, allowing users to check for updates via the menu bar and configure automatic update checks in the Settings window. The app's launch process has been consolidated into a single entry point that detects whether it is running as the main GUI application or as a command-line tool, enabling shared logic for both modes. Additionally, legacy Objective-C runtime overrides and bridging headers have been removed to simplify the bootstrap code.

VirtualBuddy/Bootstrap · high confidence

Introduction of VirtualInstallationService XPC service and CI build configuration

A new XPC service named VirtualInstallationService has been added to handle virtual machine installation tasks, featuring an Info.plist configuration for multiple instances and a Swift entry point that bootstraps an NSXPC listener to expose the VirtualInstallationServiceProtocol. Additionally, a CI pre-build script has been introduced to automatically write the CURRENT\_PROJECT\_VERSION from the CI\_BUILD\_NUMBER environment variable into the project's configuration file during Xcode Cloud builds.

_VirtualInstallationService, ci\scripts · high confidence

New SwiftUI window hosting infrastructure with frame restoration and macOS 26 crash workaround

The VirtualUI window management layer has been refactored to use a new \HostingWindowController\ and \OpenCocoaWindowAction\ system, allowing SwiftUI views to be presented in native macOS windows with improved lifecycle management. This change introduces automatic frame save and restoration for VM windows, ensuring they reopen in their previous positions and sizes. It also includes a specific workaround for a crash in macOS 26 when toggling full-screen mode on windows with toolbars, and adds support for custom animation behaviors and confirm-before-close callbacks.

VirtualUI/Source/Components/HostingWindowController · high confidence

New VM configuration UI with validation and context-aware saving

The VM configuration interface has been replaced with a new SwiftUI-based sheet that organizes settings into collapsible sections (General, Provisioning, Storage, USB, Display, etc.). The UI now validates settings before allowing the user to save, displaying specific error messages if the configuration is unsupported. It also distinguishes between pre-install and post-install contexts: in pre-install mode, changes are auto-saved with a debounce, while post-install requires explicit confirmation. The view also integrates a template picker to copy configurations from existing VMs and respects feature support states (e.g., disabling USB passthrough or guest app options if the restore image doesn't support them).

VirtualUI/Source/VM Configuration · high confidence

New Xcode schemes for development, beta, and guest testing

The project now includes dedicated Xcode schemes to streamline different build and testing workflows. A new 'VirtualBuddy (Dev Release)' scheme targets the app with specific debug flags, while 'VirtualBuddy (Managed - Beta)' and 'VirtualBuddy (Managed)' schemes introduce beta and managed build configurations with extensive command-line arguments for simulating installation states, catalog fetches, and UI conditions. Additionally, new schemes are defined for supporting frameworks and tools, including DeepLinkSecurity, VirtualBuddyGuest (with panel display and packet logging enabled by default), VirtualCore, VirtualInstallation, VirtualInstallationService, VirtualUI, VirtualWormhole, and the vctool command-line utility.

VirtualBuddy.xcodeproj/xcshareddata/xcschemes · high confidence

New assets for first-launch experience and guest type selection

Added a suite of new asset catalog resources to support the updated UI, including a Core Animation archive for the first-launch experience, variable blur effects for the bottom bar, and a full-bleed blur hash placeholder. The update also introduces a new 'GuestSymbol' icon, a thumbnail placeholder image, and a dedicated namespace for guest type icons (Linux and Mac), alongside mono-status icons (Happy/Sad) and a new color set for the status item panel chrome border.

VirtualUI/Resources/VirtualUI.xcassets · high confidence

New collapsible configuration sections and managed preference restrictions

The VM configuration interface now groups settings into collapsible sections that are collapsed by default, displaying a summary header for each to reduce visual clutter. Additionally, a new banner component detects and displays restrictions imposed by organizational managed preferences, alerting users when features like USB passthrough are blocked by system policies.

VirtualUI/Source/VM Configuration/Components · high confidence

New library view with first-launch experience and improved storage handling

The VirtualBuddy library interface has been redesigned to present a modern grid of virtual machines and handle various library states more gracefully. Users will now see a dedicated first-launch experience when the library is empty, guiding them to create their first VM. The view also provides clear error messages and actionable buttons if the library volume is not mounted or the directory is missing, improving the experience for libraries stored on removable or external storage. Additionally, the UI now supports displaying system background thumbnails for VMs and includes a new button in the toolbar to quickly start the installation wizard.

VirtualUI/Source/Library · high confidence

New restore image selection interface with catalog-aware grouping and download management

The installer now uses a dedicated RestoreImageSelectionStep that presents available macOS restore images grouped by channel, preserving the order defined in the remote catalog. Users can refresh the list via a toolbar button or Command+R, and the UI includes a placeholder loading state to improve perceived performance. The controller tracks locally downloaded images, allowing users to delete them directly from the interface, and integrates with the installation view model to update the background blur hash based on the selected group.

VirtualUI/Source/Installer/Steps/Restore Image Selection · high confidence

Redesigned first launch experience and enhanced library item interactions

The library view now features a new first-launch screen with an animated background and a styled 'Create Virtual Machine' button. Library items have been restyled with improved shadow and border effects, and support inline renaming (disabled while a VM is booted) and a context menu offering Configure, Duplicate, Rename, and Move to Trash actions. Thumbnails now display the guest's desktop picture when available, and interrupted VM installations can be restored upon launch.

VirtualUI/Source/Library/Components · high confidence

Redesigned restore image selection with catalog grouping and installation progress display

The Restore Image Selection step now features a new UI layout that organizes available operating systems into selectable catalog groups (CatalogGroupPicker) and displays detailed restore images in a browser (RestoreImageBrowser) with support for copying download links and build numbers. A new full-bleed background component (BlurHashFullBleedBackground) provides visual context using blur hashes or custom images, respecting accessibility settings like reduced transparency. During the download and installation phases, the installer now displays real-time progress within a simulated virtual display (VirtualDisplayView) using a Core Animation-based progress bar (VirtualBuddyMonoProgressView) to maintain high performance, replacing the previous implementation.

VirtualUI/Source/Installer/Steps/Restore Image Selection/Components · high confidence

Redesigned settings interface with new Automation and Managed Preferences sections

The settings window has been modernized to use a NavigationSplitView layout, introducing three distinct tabs: General, Virtualization, and Automation. The new Automation tab allows users to manage deep-link permissions for apps that control VirtualBuddy, while the Virtualization tab now includes a section to view and export managed preferences documentation for device management. The General tab features a reusable file-path control for the library directory and updated beta update management. Supporting components like a vertical labeled content style and a settings footer with expandable help text have been added to improve the overall settings UI consistency.

VirtualUI/Source/Settings · high confidence

Redesigned shared folder management and added Rosetta sharing for Linux guests

The Sharing configuration section has been rebuilt with a new UI that allows users to enable/disable individual shared folders, toggle read-only status, and manage folder lists via a streamlined GroupedList component. For Linux virtual machines, a new toggle is available to enable Rosetta sharing, accompanied by specific warnings and markdown-formatted notices regarding support status. The view also integrates with managed preferences to display organizational restrictions and refreshes the shared folder list automatically when host volumes are mounted or unmounted.

VirtualUI/Source/VM Configuration/Sections/Sharing · high confidence

Redesigned storage configuration with managed disk image support and resizing

The storage configuration section has been refactored to introduce a new \ManagedDiskImageEditor\ and \StorageConfigurationView\, allowing users to create and manage virtual disk images directly within the application. This change enables editing disk names for new managed disks, supports resizing existing boot and extra disk images (up to 8 terabytes) with a confirmation dialog, and provides options to configure devices as read-only or external USB mass storage. The UI now distinguishes between managed VirtualBuddy disk images and custom image files, streamlining the process of adding and configuring storage devices in virtual machine settings.

VirtualUI/Source/VM Configuration/Sections/Storage · high confidence

Refactored configuration controls with new reusable SwiftUI components

The configuration controls in the virtual machine settings have been refactored to use a new set of reusable SwiftUI building blocks. This introduces an \EphemeralTextField\ component that handles inline editing, validation, and focus management, along with supporting components like \NumericPropertyControl\ for numeric inputs with sliders and \PropertyControl\ for consistent label styling. A shared focus environment (\SharedFocusEnvironment\) has been added to coordinate unfocusing fields across the UI, improving the consistency and maintainability of the settings interface.

VirtualUI/Source/Building Blocks/Configuration Controls · high confidence

Refactored installation wizard state management and added Linux ISO support

The installation wizard's state logic has been consolidated into a new \VMInstallData\ struct, which now centrally manages the guest type, install method selection, and restore image resolution. This refactoring introduces support for installing Linux virtual machines from local ISO files, allowing users to select a local file or provide a custom remote URL (including HTTP) for the install image. The wizard now persists its progress via \installRestoreData\ on the VM metadata, enabling interrupted installations to be resumed when the user attempts to launch the VM. Additionally, the UI validates custom URLs against allowed schemes (http, https, ftp) and updates the background hash based on the resolved restore image group.

VirtualUI/Source/Installer · high confidence

Refined VM session configuration options and UI styling

The VM session configuration view now presents a self-sizing grouped form with a new Liquid Glass visual style. It conditionally displays specific boot options: the 'Boot on install drive' toggle is now visible only for Linux guests with an install image, while 'Boot in recovery mode' and 'Boot in DFU mode' are restricted to macOS guests (with DFU mode limited to debug builds). A picker for saved state restoration is shown for VMs that support it, and the 'Boot in recovery mode' and 'Boot in DFU mode' toggles are mutually exclusive.

VirtualUI/Source/Session/Configuration · high confidence

Unified v2 software catalog format for macOS and Linux

The software catalog has been updated to a unified v2 format that standardizes how macOS and Linux guest operating systems are defined and selected. This change introduces a consistent structure for release channels (such as Release, Developer Beta, and LTS), declares specific guest features like file sharing, trackpad support, and USB passthrough with their minimum version requirements, and includes device support instructions for newer macOS versions. Users will see a more structured selection interface where supported features and host requirements are explicitly declared for each operating system group, including new entries for macOS Golden Gate (27.0) and Linux distributions like Debian, Fedora, and Kali.

data · high confidence

VirtualBuddy adds state saving, UTM import, and deep linking support

VirtualBuddy now supports saving and restoring application state via the new .vbst file format, allowing users to resume their work exactly where they left off. The app can also import virtual machines from other apps, specifically supporting the .utm format used by UTM, expanding compatibility with existing VM assets. Additionally, a custom URL scheme (virtualbuddy://) has been registered to enable deep linking, and the app now allows HTTP connections for custom IPSW URLs to improve flexibility in fetching firmware.

VirtualBuddy · high confidence

VirtualBuddyGuest app launch, update, and status integration

The VirtualBuddyGuest application now manages its own lifecycle and presence on the host. It automatically installs itself into /Applications when launched from a disk image, using CDHash and version checks to decide when to update. On launch, it connects to the host, mounts shared folders, and registers a menu bar status item to display the guest dashboard and connection state. The app also supports launching at login and handles graceful termination by notifying the host before shutting down.

VirtualBuddyGuest · high confidence

Test coverage

Added test coverage for disk resizing, guest app support, session management, and managed preferences

This update adds comprehensive test suites to the VirtualWormholeTests module to validate core virtualization behaviors. DiskResizeSupportTests and VBDiskResizerTests verify that virtual machine disk images can be resized correctly, including handling pending resize states, preserving recovery partitions during GPT growth, and ignoring corrupt headers. GuestAppSupportTests ensure that guest tools and shared folders are enabled or restricted based on the macOS host version and legacy app catalogs. GuestSessionTests cover the host-to-guest communication channel, validating clipboard relay logic, handling of oversized data via file transfers, and state synchronization during reconnections. Finally, ManagedDevicePreferencesTests and ManagedSharedFoldersTests confirm that system administrator policies (managed preferences) correctly restrict or disable features like bridged networking, microphone input, and shared folder access without corrupting the underlying VM configuration.

VirtualWormholeTests · high confidence

Dependencies

Migrated Xcode project to JSON format and updated dependencies

The VirtualBuddy Xcode project has been converted from the legacy XML-based project.pbxproj format to the modern JSON format (project.xcproj). This change also updates several package dependencies, including Sparkle (up to 2.9.4), BuddyKit (up to 1.6.1), and SwiftUI Introspect (to 27.0.0-beta.1), while adding new dependencies like ManagedPreferencesKit and VMBridge.

VirtualBuddy.xcodeproj · high confidence

Updated Swift Package Manager dependencies

The project's Swift Package Manager dependencies have been updated, including Sparkle to version 2.9.4, swiftui-introspect to 27.0.0-beta.1, and swift-argument-parser to 1.5.1. New dependencies added include BuddyKit (1.9.4), libfragmentzip (1.0.0), ManagedPreferencesKit (1.0.0), URLQueryItemCoder (1.0.0), and USBIDKit (1.1.0), while VMBridge continues to track the main branch.

(dependencies) · high confidence

Housekeeping

Added default breakpoint configuration file; Initial project documentation and repository setup.

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

Score

  • CAI 43 → 57 (+14.1)
  • Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 93 (-7.3)
  • Architecture 97 (new)
  • Maturity 46 → 54 (+8.0)
  • Readiness 17 → 36 (+19.1)
  • Security 95 → 100 (+5.0)
  • Domain Modelling 100 (new)

Resolved (10)

  • Dimension evaluation failed
  • No automated tests
  • No exposed public API
  • No tests found
  • Secret: generic-api-key (VirtualBuddy/Automation/DeepLinkHandler.swift)
  • Test reliability not included
  • The README mentions Apple Silicon support but does not state which versions of macOS 12 and later it supports. (README.md)
  • early-stage repository — too little history to judge knowledge freshness
  • single-commit history — no usable git history window to measure hotspots
  • single-maintainer — knowledge-concentration (bus factor) risk

New (73)

  • Boundary-crossing change coupling: ConfigurationModels+Validation.swift ↔ VMConfigurationView.swift (VirtualCore/Source/Models/Configuration/ConfigurationModels+Validation.swift)
  • ClassTooLong: VMInstallationViewModel (VirtualUI/Source/Installer/VMInstallationViewModel.swift)
  • DeepLinkSentinel.authenticate (cognitive 18) (DeepLinkSecurity/Source/DeepLinkSentinel.swift)
  • Duplicated block (13–15 lines × 2) (VirtualInstallation/Source/XPC/VirtualInstallationClient.swift)
  • Duplicated block (13–17 lines × 2) (VirtualCore/Source/Virtualization/VMInstance.swift)
  • Duplicated block (14 lines × 2) (VirtualCore/Source/Restore/Installation/VirtualInstallationRestoreBackend.swift)
  • Duplicated block (5 lines × 2) (DeepLinkSecurity/Source/Models/Extensions/DeepLinkClient+Crypto.swift)
  • Duplicated block (5 lines × 2) (VirtualUI/Source/VM Configuration/Components/GroupedList.swift)
  • Duplicated block (6 lines × 2) (VirtualUI/Source/VM Configuration/Sections/Sharing/SharedFoldersManagementView.swift)
  • Duplicated block (7 lines × 2) (VirtualCore/Source/Restore Images/VBAPIClient.swift)
  • Duplicated block (7 lines × 2) (VirtualUI/Source/Components/SwiftUI Status Item/StatusItemManager.swift)
  • Duplicated block (8 lines × 2) (VirtualUI/Source/VM Configuration/Sections/USBDevicesConfigurationView.swift)
  • Duplicated block (9 lines × 2) (VirtualCore/Source/Virtualization/VMLibraryController.swift)
  • FileTooLong: Configuration/ConfigurationModels.swift (VirtualCore/Source/Models/Configuration/ConfigurationModels.swift)
  • FileTooLong: Installer/VMInstallationViewModel.swift (VirtualUI/Source/Installer/VMInstallationViewModel.swift)
  • Floating branch dependency: vmbridge
  • GPTLayoutAdjuster.perform (cognitive 33) (VirtualCore/Source/Utilities/VBDiskResizer.swift)
  • GPTLayoutAdjuster.perform (cyclomatic 34) (VirtualCore/Source/Utilities/VBDiskResizer.swift)
  • GuestAdditionsDiskImage.computeImageSizeInMB (cognitive 16) (VirtualCore/Source/GuestSupport/GuestAdditionsDiskImage.swift)
  • GuestAppConfigurationView.body (cognitive 17) (VirtualUI/Source/VM Configuration/Sections/GuestAppConfigurationView.swift)
  • …and 53 more

Changes since last survey

  • 23 commits — 20 feature/other, 3 fixes

By area

  • data/ipsws_v2.json — 11 commits
  • VirtualCore/Source — 4 commits
  • VirtualUI/Source — 3 commits
  • (root) — 1 commit
  • VirtualBuddy.xcodeproj/project.pbxproj — 1 commit
  • VirtualBuddy/Automation — 1 commit
  • VirtualWormhole/Source — 1 commit
  • data/linux_v2.json — 1 commit

Notable commits

  • fix: Fix Linux catalog missing mandatory legacyGuestAppVersions key (#749)
  • fix: Fix boot deep link not working when VM window already open (#756)
  • fix: Fix configuration sheet performance issue caused by provisioning settings hashable conformance (#753)
  • change: Add macOS 26.6.2 (#739)
  • change: Add macOS 26.6.2 for real (#748)
  • change: Add macOS 27.0 RC (#762)
  • change: Add macOS 27.0 beta 5 (#740)
  • change: Add macOS 27.0 beta 6 (#746)
  • change: Add macOS 27.0 beta 7 (#750)
  • change: Add macOS 27.0 beta 8 (#759)
  • change: Add macOS 27.2 beta 1 (#769)
  • change: Add macOS 27.2 beta 2 (#770)
  • change: Adopt JSON format for Xcode project
  • change: Convert macOS 27.0 RC to stable (#764)
  • change: Handle boot deep-link for session that's already open but shut down (#758)
  • change: Homebrew install info + minor improvements for README.md (#771)
  • change: Implement initial support for USB passthrough on macOS 27 (#752)
  • change: Implement support for managed preferences (#765)
  • change: Improve USB device UI (#754)
  • change: Mouse/keyboard toggles in toolbar (#757)
  • …and 3 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

insidegui/VirtualBuddy 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 27 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit b74b2da438774f7aea8a2b465db5f00a1eeb1e6a — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-d00c643c3f66.