Automic VaultAutomic Vault

brew

Install xcodes with Homebrew, MacPorts, Nix

Command-line tool to install and switch between multiple versions of Xcode. Version 2.0.2 via Homebrew; verified 2026-06-28.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install xcodes

local Homebrew formula metadata

MacPortsverified · 94%
sudo port install xcodes

MacPorts ports tree · devel/xcodes/Portfile · source: api.github.com

Linux

Nixverified · 92%
nix profile install nixpkgs#xcodes

nixpkgs package indexes · pkgs/by-name/xc/xcodes/package.nix · source: api.github.com

overview

Package summary

Command-line tool to install and switch between multiple versions of Xcode

Commands and aliases

  • xcodes

history

Project history and usage

xcodes is a Swift command-line tool for installing, listing, selecting, and removing multiple versions of Xcode. It fills the same role for Apple's IDE that language version managers fill for Ruby, Node, or Python projects.

Project history

The repository was created on 2019-02-22 and shipped its initial 0.1.0 release on 2019-03-11 as an MVP for Apple developers who needed side-by-side Xcode installs. The README documents commands for installing specific releases and prereleases, listing available versions, selecting an active Xcode, managing runtimes, and uninstalling versions.

The project began under Robots and Pencils and moved into the XcodesOrg organization on 2023-04-21. The maintainer note describes the move as a response to growth beyond a small utility used by Apple developers around the world, while keeping Matt Kiazyk as owner and maintainer.

By 2024 and 2026, xcodes had adapted to changes in Apple's tooling and distribution model: releases added support for iOS 18+ runtime downloads and SRP Apple login changes, then 2.0.x refactored the CLI onto shared XcodesKit and XcodesLoginKit packages, added architecture-aware filtering, and raised the implementation baseline to Swift 6 and macOS 13.

Adoption history

xcodes is widely adopted because Xcode versions are large, slow to install manually, and often need to be pinned per project or CI lane. The repository has thousands of GitHub stars and a long release line, and its companion Xcodes.app gives the same version-management idea a graphical macOS interface.

The .xcode-version proposal ties xcodes to a broader convention already used by xcode-install and fastlane. That file lets a repository declare the Xcode version it expects, making xcodes useful in onboarding scripts and CI environments where reproducible Apple build tooling matters.

How it is used

Common workflows include running xcodes list to discover versions, xcodes install to download and install an exact Xcode version, xcodes select to switch the active toolchain through xcode-select, and xcodes runtimes to install platform runtimes. When authentication is required for Apple downloads, xcodes stores Apple ID credentials in the macOS Keychain after prompting or reading environment variables.

Teams often add a .xcode-version file next to an Xcode project or workspace so automation can choose the expected Xcode. The README recommends committing that file for teams and CI, especially when a project depends on a specific stable Xcode release.

Why package nerds care

xcodes is significant in package-manager culture because it brings version-manager ergonomics to a toolchain Apple distributes as a huge GUI application. It makes Xcode itself scriptable: a package can select, install, and document the IDE/runtime version needed for deterministic builds.

Timeline

  • 2019-02-22: Repository created on GitHub.
  • 2019-03-11: 0.1.0 initial MVP release.
  • 2023-04-21: Xcodes projects moved from Robots and Pencils into XcodesOrg.
  • 2023-06-23: 1.4.1 release highlighted runtime download and install support.
  • 2024-10-30: 1.6.0 added Apple SRP login support and iOS 18+ runtime download support.
  • 2026-06-08: 2.0.1 refactored the CLI around shared XcodesKit/XcodesLoginKit and architecture-aware downloads.
  • 2026-06-17: 2.0.2 fixed a 2FA authentication regression.

Related projects

  • Xcodes.app is the native macOS GUI companion for the same workflow.
  • fastlane and the legacy xcode-install gem are related because they also use or recognize .xcode-version-style Xcode pinning.

security posture

Risk level: green

narrow executable package without higher-risk signals.

Risk classifier

green risk · low confidence · appliance

Why

  • narrow executable package without higher-risk signals

Signals

  • metadata:no-higher-risk-signals

Install behavior

  • No Homebrew post-install hook is recorded in formula metadata.
  • Homebrew bottle metadata is available for 2 platform targets.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

local files

Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.

Configuration files

Config paths the tool may read or write during local use.

Unix
./.xcode-version

Credential files

Credential-bearing paths to review before unattended agent runs.

macOS
macOS Keychain

executables

Installed executables

CommandKindExposureNote
xcodescliglobal executable

freshness

Version and freshness

These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.

page generated2026-07-08
manager version2.0.2
manager updated2026-06-28
local dataok
upstreamcurrent
latest detected2.0.2

https://github.com/XcodesOrg/xcodes

  • okNo freshness warnings were generated.

install metadata

Package metadata

Package keybrew:xcodes
Version2.0.2
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/xcodes
Homepagehttps://github.com/XcodesOrg/xcodes
Repositoryhttps://github.com/XcodesOrg/xcodes
Upstream docshttps://github.com/XcodesOrg/xcodes#readme
LicenseMIT
Source archivehttps://github.com/XcodesOrg/xcodes/archive/refs/tags/2.0.2.tar.gz
Last updated2026-06-28T20:59:36+01:00
Pulseupdated
Uses from macOSswift
Bottleavailable (on arm64_sequoia, arm64_tahoe)
Homebrew post-installnot defined
Servicenone declared

registry facts

Source database details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Namexcodes
Version Scheme0
Revision0
Requirements
  • macos
  • xcode
Bottle Stable Root URLhttps://ghcr.io/v2/homebrew/core
Deprecatedno
Disabledno
Keg Onlyno
URL Keys
  • stable

source database matches

Other package-manager records

Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.

Nix95%

xcodes

nix profile install nixpkgs#xcodes
  • normalized package name match
  • Matched by: Xcodes
nixpkgs package indexes · api.github.com · nixpkgs package indexes: pkgs/by-name/xc/xcodes/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
MacPorts95%

xcodes

sudo port install xcodes
  • normalized package name match
  • Matched by: Xcodes
MacPorts ports tree · api.github.com · MacPorts ports tree: devel/xcodes/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

source trail

Generated from repository data

This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.

Used sources

  • Geiger risk classifier
  • Nucleus package database
  • av.db category and tag curation
  • cross-ecosystem install command graph
  • curated configuration and credential file locations
  • curated package history
  • external package-manager database matches
  • package relationship graph
  • package version freshness
  • package-page enrichment