ninxsoft/Mist
63.0
Adequate · 30 September 2026
7.6k
lines of production code
Swift
primary language
2
measurements over time
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.