Skip to content
CAI
Software that uses CAICheck a score

ninxsoft/Mist

63.0

Adequate · 30 September 2026

7.6k

lines of production code

Swift

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Mist is a macOS utility application designed to manage the download, creation, and installation of macOS firmwares and bootable installers. It provides a SwiftUI-based interface for browsing Apple's software update catalogs, downloading assets with checksum verification, and generating various output formats such as disk images, ISOs, and packages. The system utilizes a privileged helper tool to perform system-level operations, including writing to external drives and managing file attributes, while supporting features like download caching, code signing, and automatic application updates.

Features

Add shared infrastructure for helper tool command execution

This change introduces the foundational shared components required to communicate with the Mist helper tool. It adds data models for command requests (including types like remove, installer, and kill) and responses, along with parsers for the helper's Info.plist and launchd configuration. A new ShellExecutor class enables the execution of shell commands with custom environments and directory contexts, and an XPC route extension defines the communication channel for sending these commands to the helper service.

Shared · high confidence

Added uninstall script for Mist application

A new shell script (Scripts/uninstall.sh) has been added to the repository to allow users to cleanly remove the Mist application. When executed as root, the script unloads the privileged helper tool (com.ninxsoft.mist.helper) via launchctl and removes the application bundle, the helper's launch daemon plist, and the helper tool binary from their respective system directories.

Scripts · high confidence

Initial Xcode project workspace and scheme configuration

The Xcode project workspace and shared scheme files have been added, establishing the build and run configurations for the Mist app, the MistHelperTool, and the MistTests target. This includes defining build actions, launch settings, and test execution parameters within the project structure.

Mist.xcodeproj/xcshareddata · high confidence

Initial project structure and source file registration

The Mist Xcode project has been initialized with the core application structure, registering essential Swift source files such as MistApp.swift, ContentView.swift, and supporting modules like Firmware.swift, Installer.swift, and various extensions. The project configuration includes the primary application bundle (Mist.app), asset catalogs, and links to key frameworks including Yams and Sparkle, establishing the foundational build environment for the macOS application.

Mist.xcodeproj · high confidence

Initial release of Mist macOS download manager

This change introduces the core user interface for the Mist application, adding the main ContentView that allows users to browse and filter macOS firmwares and bootable installers. It includes HeaderView for switching between firmware and installer types, FooterView with toggles for betas and compatibility plus an export feature for lists in CSV, JSON, plist, or YAML formats, and LogView for viewing and exporting application logs. The initial commit also adds supporting views like EmptyCollectionView and ExportListView to complete the basic browsing and management experience.

Mist/Views · high confidence

Initial release of Mist v0.40 with macOS Golden Gate support

Mist, a Mac utility for downloading macOS Firmwares and Installers, is now available at version 0.40. This release adds support for macOS Golden Gate 27 and updates the app icon to reflect its new appearances. It also bumps the Sparkle dependency to 2.9.4 and Yams to 6.2.2. The repository includes configuration for Swift 6.3.1, AutoPkg recipes for DMG and package distribution, and a privileged helper tool plist for system-level operations.

(repo-wide) · high confidence

Initial release of Mist: macOS installer management app

This commit introduces the Mist application, a SwiftUI-based tool for managing macOS installers. It provides a menu bar interface with commands to check for updates via Sparkle, refresh the installer list, and view logs. The app features a settings view for customizing the application icon, supports privileged helper tool installation for system-level operations, and includes notification handling for update success or failure states. The initial commit also configures the app's Info.plist with necessary URL schemes and Sparkle update feed settings.

Mist · high confidence

Introduction of MistHelperTool privileged helper

A new privileged helper tool (MistHelperTool) has been added to the Mist application. This helper runs as a launchd Mach service and communicates with the main app via XPC to execute commands with elevated privileges. Specifically, it allows the main application to remove files, modify file attributes (such as setting ownership to a specific user and the wheel group), and terminate background processes, thereby enabling the app to perform system-level operations that require root access.

MistHelperTool · high confidence

New Activity view for monitoring installation progress

The Mist application now includes a dedicated Activity view that provides real-time feedback during firmware or installer downloads and installations. This interface displays a header with image, name, version, and build details (including a beta ribbon), a scrollable list of task groups with status indicators, and progress bars showing percentage and byte counts. Users can monitor the process, receive alerts for errors or cancellations, and choose to show the installed file in Finder upon completion.

Mist/Views/Activity · high confidence

New Settings interface with customizable output formats and caching

The application now features a comprehensive Settings window organized into tabs for General, Firmwares, Installers, Applications, Disk Images, ISOs, Packages, and About. Users can configure filename templates for all generated output types (Applications, Disk Images, ISOs, Packages) and toggle optional code-signing for Disk Images and Packages using available Developer ID identities. The Installers tab introduces a caching system that allows users to enable download caching, select a custom cache directory, and manually remove cached installer entries to manage disk space. General settings include controls for the privileged helper tool installation, notification preferences, retry logic for downloads, automatic app update checks via Sparkle, and the ability to change the application icon.

Mist/Views/Settings · high confidence

New UI component library for Mist views

This change introduces a suite of new SwiftUI components in the Mist/Views/Components directory to support the application's interface. Key additions include CodesigningPickerView for selecting code-signing identities, DynamicTextView for formatted text input, FloatingAlert for non-intrusive notifications, and TextRibbon for displaying status badges (such as 'BETA'). Supporting utilities like ScaledImage, ScaledSystemImage, PathControl, TextFieldStepperView, and custom button/divider styles are also added to standardize the visual language and interaction patterns across the app.

Mist/Views/Components · high confidence

New extension utilities for Mist

This change introduces a suite of new Swift extensions in the Mist/Extensions directory to support core application functionality. It adds file size and SHA1 hashing capabilities (URL+Extension, FileManager+Extension), helper methods for formatting byte sizes and hexadecimal strings (Double+Extension, UInt64+Extension, UInt32+Extension, UInt8+Extension, \[UInt8\]+Extension), and CSV/JSON/YAML serialization helpers for firmware and installer data (Dictionary+Extension, Sequence+Extension). It also includes UI support via a custom button style (ButtonStyle+Extension) and a window resizability fix for macOS Ventura and later (Scene+Extension), alongside constants and identifiers for notifications and app configuration (String+Extension, UNNotificationAction+Extension, UNNotificationCategory+Extension, AuthorizationError+Extension).

Mist/Extensions · high confidence

New helper utilities for macOS installer and disk image workflows

The Mist/Helpers directory now includes a comprehensive set of Swift utility structs to manage the lifecycle of macOS installers and disk images. These new components handle file system operations (DirectoryCreator, DirectoryRemover, FileCopier, FileMover), disk image management (DiskImageCreator, DiskImageMounter, DiskImageUnmounter, ISOConverter), and installer creation (InstallerCreator, InstallMediaCreator, PackageCreator). The update also introduces a DownloadManager for resilient downloads with retry logic, a Validator for checksum verification, a Codesigner for signing artifacts, and a LogManager for unified logging. Additionally, it adds a SparkleUpdater for application updates and a PrivilegedHelperTool helper to verify the installation state of the privileged helper tool.

Mist/Helpers · high confidence

New installer export options and bootable installer creation UI

The Mist List view now supports exporting macOS installers as Applications, Disk Images, ISOs, or Packages, with ISO availability automatically restricted on Apple Silicon for macOS Catalina and older. A new volume selection dialog allows users to create bootable macOS installers directly to external drives, including specific guidance on required volume formatting and data erasure.

Mist/Views/List · high confidence

Architecture

Mist model layer refactored into new data structures

The Mist/Model directory has been completely rewritten with new Swift source files defining the application's core data models. This includes structured enums for macOS versions (CatalogType, AppIcon), hardware architecture, and download/export types, alongside new structs for parsing Apple software update catalogs (Catalog, Installer, Firmware) and managing internal task states (MistTask, MistTaskState). The change also introduces dedicated model files for logging (LogEntry, LogLevel), error handling (MistError), and hardware detection (Hardware), replacing the previous implementation with a more explicit and type-safe data layer.

Mist/Model · high confidence

Behavioural changes

New refresh view with improved firmware update handling

The application now displays a dedicated refresh interface that shows the status of firmware and installer updates. This view includes a warning state for when the Firmwares API is temporarily unavailable, allowing users to retry later. It also fixes broken HTTP URLs by automatically upgrading them to HTTPS, ensuring reliable connectivity when retrieving firmware data.

Mist/Views/Refresh · high confidence

Test coverage

Added initial test suite for Mist

Added a new test file (MistTests.swift) containing a basic placeholder test to establish the testing infrastructure for the Mist project.

MistTests · high confidence

Dependencies

Initial commit of Mist model package definition

This change introduces the initial version of the Mist model package, defining the \Package.swift\ file which establishes the \Package\ struct for decoding package metadata (URL, size, integrity data) and provides helper methods for filename extraction and dictionary conversion.

(dependencies) · medium 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

Score

  • CAI 65 → 63 (-1.7)
  • Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 95 → 95 (-0.6)
  • Architecture 100 → 100 (+0.0)
  • Maturity 53 → 53 (+0.0)
  • Readiness 63 → 60 (-3.0)
  • Security 75 → 75 (+0.0)

Resolved (1)

  • Documentation: no contributor guidance (README.md)

New (15)

  • Dependency hygiene PARTLY measured — SwiftPM pinning read, dependency currency NOT established
  • Duplicated block (11–12 lines × 2) (Mist/Extensions/Dictionary+Extension.swift)
  • Duplicated block (12 lines × 2) (Mist/Model/Firmware.swift)
  • Duplicated block (14 lines × 2) (Mist/Views/List/ListRowFirmware.swift)
  • Duplicated block (5 lines × 2) (Mist/Extensions/Dictionary+Extension.swift)
  • Duplicated block (6 lines × 2) (Mist/Views/ContentView.swift)
  • Duplicated block (7 lines × 2) (Mist/Views/List/ListRowFirmware.swift)
  • Duplicated block (7 lines × 3) (Mist/Views/List/ListRowFirmware.swift)
  • Duplicated block (8 lines × 2) (Mist/Model/Firmware.swift)
  • Duplicated block (9 lines × 2) (Mist/Extensions/Dictionary+Extension.swift)
  • Duplicated block (9 lines × 2) (Mist/Model/Firmware.swift)
  • Duplicated block (9 lines × 2) (Mist/Model/Firmware.swift)
  • Edited copy of a member (33 corresponding lines) (Mist/Extensions/Dictionary+Extension.swift)
  • Installer.name (cognitive 18) (Mist/Model/Installer.swift)
  • Installer.name (cyclomatic 18) (Mist/Model/Installer.swift)

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

ninxsoft/Mist 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 30 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 aed0e49a307d7630a139f8876a9b2651be79f4b8 — 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-cb25ca4feafa.