Requirements
macOS version
Both the source Mac and destination Mac must be running macOS 14 Sonoma or later.
shft supports migration between different macOS versions as long as both are 14.0+. For example, migrating from macOS 14.3 to macOS 15.1 is supported.
Network
shft uses direct device-to-device connections. No internet access is required for the migration itself. Internet is only needed if you configure shft.logMigrationsToEndpoint to POST logs to a remote server.
Ports and protocols
| Protocol | Port | Direction | Purpose |
|---|---|---|---|
| Bonjour (mDNS) | 5353 UDP | Bidirectional | Device discovery |
| shft transfer | 47810 TCP | Bidirectional | Data transfer (TLS-encrypted) |
Firewall rules
If your network uses a host-based firewall (including the built-in macOS firewall), ensure the following:
- Allow incoming connections for the shft application on TCP port 47810
- Allow mDNS on UDP port 5353 (required for Bonjour device discovery)
- Both Macs must be on the same network segment (same VLAN/subnet). Bonjour does not traverse routers or VLANs unless an mDNS gateway is configured.
If using a third-party firewall solution (e.g., Jamf Connect, CrowdStrike), add shft to the application allowlist.
Network segmentation
shft relies on Bonjour for device discovery. Bonjour uses multicast DNS, which is confined to a single network segment by default. If your source and destination Macs are on different VLANs:
- Move both Macs to the same VLAN temporarily, or
- Use a Thunderbolt cable (no network infrastructure required), or
- Use a direct Ethernet crossover cable between the two Macs
Thunderbolt
Thunderbolt provides the fastest transfer speeds and requires no network infrastructure.
Requirements
- A Thunderbolt 3 or Thunderbolt 4 cable (USB-C connector on both ends)
- Both Macs must have Thunderbolt ports (all Apple Silicon Macs and most Intel Macs from 2016+)
- Thunderbolt Bridge must be enabled on both Macs — it is enabled by default on macOS. Verify in System Settings → Network → Thunderbolt Bridge.
USB-C cables that are not Thunderbolt-rated will not create a Thunderbolt Bridge connection. The cable must be a genuine Thunderbolt cable (typically marked with the Thunderbolt ⚡ symbol).
Thunderbolt Bridge verification
To verify Thunderbolt Bridge is active:
- Connect the two Macs with a Thunderbolt cable
- Open System Settings → Network on either Mac
- Look for Thunderbolt Bridge with a self-assigned IP (169.254.x.x)
- shft will automatically detect and prefer the Thunderbolt connection
MDM
shft is configured via a macOS configuration profile (.mobileconfig) deployed through your MDM solution. No MDM agent is required beyond the standard MDM enrolment.
Supported MDM platforms
- Jamf Pro / Jamf School
- Kandji
- Mosyle Business / Mosyle Fuse
- Microsoft Intune
- Any MDM that supports custom configuration profiles
See MDM deployment and the per-platform guides (Jamf, Kandji, Mosyle, Intune) for instructions.
Profile delivery
The configuration profile must target the user level (not device level) so it can be read by the app via UserDefaults. See Configuration profile reference for details.
Disk space
The destination Mac must have at least as much free disk space as the total size of the data being migrated. shft checks available disk space before starting and will stop immediately with a clear error if space runs out mid-transfer.
Recommendation: Ensure the destination Mac has 10–20% more free space than the estimated transfer size to account for filesystem overhead and any data the user creates between the size estimate and the actual transfer.
Hardware
No special hardware is required beyond the Mac itself. shft runs on:
- All Apple Silicon Macs (M1 and later)
- Intel Macs from 2016 onwards (with macOS 14 support)
FileVault
shft works with FileVault enabled on both source and destination Macs. Since shft reads files as the logged-in user, the disk must be unlocked (which it is when a user is logged in). FileVault does not interfere with the transfer.