# Xcode Sync

Xcode fleet sync: signed archives, compatibility, install, selection, first launch.

- Repository: https://github.com/steipete/agent-scripts (7431 stars)
- Category: Mobile
- License: MIT
- Last updated: 2026-10-30
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add steipete/agent-scripts --skill xcode-sync -g -a claude-code -y`
Codex: `npx skills add steipete/agent-scripts --skill xcode-sync -g -a codex -y`
Cursor: `npx skills add steipete/agent-scripts --skill xcode-sync -g -a cursor -y`
Gemini CLI: `npx skills add steipete/agent-scripts --skill xcode-sync -g -a gemini-cli -y`

## Description

Xcode fleet sync: signed archives, compatibility, install, selection, first launch.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Xcode Sync

Synchronize exact Xcode builds across Peter's supported Macs. Use `$remote-mac` for fleet topology and SSH rules.

## Inventory

1. Read `~/Projects/manager/computers.yaml`; use live `tailscale status --json` for reachability/IPs.
2. Exclude handed-off and unknown hosts. Verify `hostname`, user, macOS, architecture, and hardware UUID before writes.
3. Deduplicate Tailscale nodes by hardware UUID; one Mac may have multiple live node records.
4. Run `scripts/xcode-host-inventory.sh` locally or remotely:

```bash
skills/xcode-sync/scripts/xcode-host-inventory.sh
ssh -o RequestTTY=no -o RemoteCommand=none HOST 'bash -s' \
  < skills/xcode-sync/scripts/xcode-host-inventory.sh
```

Treat unreachable hosts as pending, not synchronized. Try live Tailscale IP, Tailscale SSH, then mDNS/LAN only when network topology permits.

## Simulator hygiene

Every fleet Mac must pass the simulator-hygiene audit, including worker Macs where the correct result is `not-applicable` because Xcode and `simctl` are absent. Apple CoreSimulator's own classifications are authoritative: remove runtime images reported by `simctl runtime delete --outdated --dry-run` or `--unusable --dry-run`, plus simulator devices attached to unavailable runtimes. Do not classify a runtime as stale from its version number alone; stable and beta Xcodes can legitimately need different runtime generations on the same Mac.

Run the dependency-light audit locally or stream it to a remote Mac:

```bash
skills/xcode-sync/scripts/xcode-simulator-hygiene.sh
ssh -o RequestTTY=no -o RemoteCommand=none HOST 'bash -s' \
  < skills/xcode-sync/scripts/xcode-simulator-hygiene.sh
```

The rest: https://github.com/steipete/agent-scripts/blob/HEAD/skills/xcode-sync/SKILL.md
