iCloud sync
iCloud sync makes your saved sessions follow you from Mac to Mac. Save on your work laptop, restore on your desktop. Everything stays in your private CloudKit database — nothing is public, nothing is indexable.
Turn sync on
Section titled “Turn sync on”TabControl app → Settings → iCloud Sync → Enable iCloud Sync
The first time you enable sync, TabControl:
- Checks that you’re signed in to iCloud (System Settings → Apple ID).
- Requests permission to use the TabControl CloudKit container.
- Uploads your existing local sessions to your private cloud database.
- Starts listening for changes from your other Macs.
The first upload can take a minute or two if you have hundreds of saved sessions. Subsequent syncs push only what’s changed.
What gets synced
Section titled “What gets synced”Every field TabControl stores about a session gets mirrored to iCloud, with one notable exception:
Synced:
- Session names, timestamps, tab counts, window counts.
- The full snapshot of every captured window and tab (titles, URLs, pinned/active state).
- Categories and tags.
- Lock status, soft-delete state.
Not synced:
- AI provider API keys — they live in macOS Keychain, which doesn’t cross devices via iCloud.
- Local preferences that are per-device by nature, like the precise tab suspend timings you’ve set on this Mac.
Sync status
Section titled “Sync status”The sync tab shows one of four states:
- Ready — sync is on, everything is up to date.
- Syncing — TabControl is pushing or pulling changes.
- Error — something’s wrong. Typical causes: signed out of iCloud, iCloud Drive disabled in System Settings, no network.
- Idle — sync is enabled but hasn’t run recently. It’ll run on the next save.
You can also trigger a manual sync with Sync now.
Conflict resolution
Section titled “Conflict resolution”When the same session is changed on two Macs while they’re both offline, TabControl uses a last-write-wins strategy based on the session’s cloudModifiedAt timestamp. The edit with the later timestamp wins when both come back online.
In practice:
- Rename on Mac A, delete on Mac B — whichever was later is the final state. If the delete was later, the session moves to trash on both Macs and can still be recovered.
- Add tag on Mac A, add tag on Mac B — both tags survive. Tags merge, not overwrite.
- Edit the category on both — last category wins.
For the handful of fields where last-write-wins feels wrong (tags, most obviously), TabControl does a field-level merge rather than replacing the whole record.
What happens if I turn sync off?
Section titled “What happens if I turn sync off?”Disabling sync stops TabControl from pushing new changes or pulling changes from other Macs. Your local database stays put — sessions don’t disappear.
If you want to remove data from iCloud, toggling sync off isn’t enough. You’d need to:
- Turn sync off on every Mac.
- Delete the TabControl data from iCloud via System Settings → Apple ID → iCloud → Manage Account Storage → TabControl → Delete data.
What happens if I sign out of iCloud?
Section titled “What happens if I sign out of iCloud?”Sessions on the Mac you signed out from stay local. They stop syncing. If you sign back in later, TabControl reconciles — local sessions get pushed, anything on iCloud that isn’t local gets pulled, and conflicts use the last-write-wins rule.
Disk usage
Section titled “Disk usage”CloudKit counts toward your iCloud storage (the same pool as iCloud Photos, iCloud Drive, etc.). The TabControl database is tiny — a few megabytes even with thousands of sessions. It’s not going to be the thing pushing you over your free tier.
- Privacy and data — everything that does and doesn’t leave your Mac.