Skip to content
CAI
Software that uses CAICheck a score

XcodesOrg/xcodes

58.1

Adequate · 30 September 2026

3.1k

lines of production code

Swift

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a command-line tool for managing Apple development environments on macOS, enabling users to install, select, and uninstall Xcode versions and iOS simulators. It handles the complete lifecycle of these tools, including downloading archives, authenticating with Apple IDs via two-factor authentication, and configuring shell environments. The application provides a structured interface for listing available releases and managing runtime installations, with a focus on reliability and disk efficiency.

Features

Added Xcode project schemes and workspace configuration

The \.swiftpm\ directory now includes generated Xcode workspace and scheme files (including \xcodes.xcscheme\ and \xcodes-Package.xcscheme\) that define build, test, and launch configurations for the \xcodes\, \XcodesKit\, \AppleAPI\, and \Unxip\ targets. This enables developers to open and run the project directly in Xcode, with the main \xcodes\ scheme pre-configured with a sample command-line argument for installing visionOS runtimes.

.swiftpm · high confidence

Project initialization and documentation overhaul

The repository has been initialized with core documentation and build infrastructure. A new \.swift-version\ file sets the language version to 5.3. A \Makefile\ is added to handle building, signing, zipping, and notarizing releases, including a workaround for a Swift compiler bug. The \README\ is significantly expanded to cover installation (Homebrew, Mint, source), usage (install, select, uninstall, shell completions), and development instructions. Supporting documentation files (\CONTRIBUTING.md\, \DECISIONS.md\, \XCODE\_VERSION.md\, \nextstep.md\) are added to explain project decisions, contribution guidelines, and the \.xcode-version\ standard. Build scripts (\notarize.sh\, \release.sh\) and an updated \.gitignore\ are also included.

(repo-wide) · high confidence

Behavioural changes

CLI framework migration to Swift Argument Parser

The xcodes command-line interface has been rewritten to use the Swift Argument Parser library, replacing the previous Guaka-based implementation. This change introduces structured subcommands (such as Download, Install, List, and Select) with built-in help text, argument completion, and standardized error handling. Users will notice a more consistent command structure, improved error messages, and the ability to configure global options like color output and data sources directly from the CLI.

Sources/xcodes · high confidence

Refactor XcodesKit to use dependency injection and restore interactive two-factor authentication

The XcodesKit library has been refactored to use a lightweight dependency injection pattern via the \Environment\ and \Current\ globals, allowing shell, file, network, and logging operations to be mocked for testing. This change restores the interactive two-factor authentication flow for Apple ID sign-in, which was previously broken in version 2.x, by implementing the \TwoFactorAuthentication\ module to handle trusted-device and SMS codes. Additionally, the codebase now supports downloading and installing iOS simulators (runtimes) via the \RuntimeInstaller\ and \RuntimeList\ classes, and introduces a \Downloader\ abstraction that defaults to \aria2\ for faster downloads when available, falling back to \urlSession\. Configuration storage and application support file paths have also been standardized to use the new \Configuration\ and \Path\ extensions.

Sources/XcodesKit · high confidence

Unxip tool now supports APFS compression for output files

The Unxip utility has been updated to re-enable APFS compression on its output. The implementation uses LZFSE with 64K block sizes and writes the necessary \com.apple.decmpfs\ extended attributes to ensure the resulting files are stored in a compressed format on APFS volumes, potentially reducing disk usage for extracted archives.

Sources/Unxip · high confidence

Test coverage

Added comprehensive test suite for XcodesKit core logic and infrastructure; Added test fixtures for Xcode installation and runtime listing; Cleanup of legacy Linux test infrastructure and disabled example test.

Dependencies

Major dependency overhaul and Swift 6 migration

The project has migrated to Swift tools version 6.0 and updated its dependency graph significantly. The command-line argument parsing library Guaka has been replaced with Apple's swift-argument-parser (v1.1.4), and the PromiseKit async library has been removed in favor of native concurrency or other implementations. Several dependencies have been updated or added, including Path.swift (v1.6.0), SwiftSoup (v2.0.0), Rainbow (v3.2.0), KeychainAccess (v3.2.1), and LegibleError (v1.0.6). New dependencies introduced include XcodesKit (v1.1.0), XcodesLoginKit, and the xcodereleases/data package. The package now explicitly targets macOS 13 and iOS 17, and introduces a new XcodesCLIKit target that bundles many of these utilities.

(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 65 → 58 (-7.1)
  • Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 96 → 96 (-0.1)
  • Architecture 91 → 95 (+3.7)
  • Maturity 57 → 57 (+0.0)
  • Readiness 72 → 47 (-24.9)
  • Security 60 → 65 (+5.4)

Resolved (2)

  • Documentation: no architecture or design documentation (README.md)
  • Off-boarding risk: anonymized user #1

New (10)

  • ConcurrentStream.results (cognitive 17) (Sources/Unxip/Unxip.swift)
  • Coverage not measured — Swift suite
  • Floating branch dependency: xcodesloginkit
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • Off the main sequence: Unxip
  • Off-boarding risk: anonymized user #1
  • Outdated: swift-argument-parser
  • Outdated: swiftsoup
  • Outdated: version

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

Survey your own repository

XcodesOrg/xcodes 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 a5b72c81a5b722f52aa97d179706df8d4d5540b0 — 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.