Phone Sync

Your music lives on your Mac. Phone Sync puts a copy in your pocket without ever handing it to a cloud. Pair an Android phone once, pick what you want with you, and Bòcan serves it over your own Wi-Fi: tracks, artwork, lyrics, playlists, and downloaded podcast episodes.

What it does

Choosing what syncs

A sync profile decides what travels: everything, or just the playlists you choose, with downloaded podcast episodes as an optional extra. A live size estimate shows the total before the phone starts pulling, so you know whether it fits before you leave the house.

Pairing

Pairing takes about ten seconds and happens exactly once per phone:

  1. On the Mac, open Settings > Phone Sync and click Pair a Phone. A six-digit code appears.
  2. On the phone, pick your Mac from the list and type the code.
  3. The Mac asks "Pair with this phone?" Click Pair, and you're done.

Paired phones show up in the same settings pane, and a Revoke button sits next to each one. Revoking blocks the phone at the connection layer the very next time it tries to talk to the Mac.

How pairing keeps you safe

The six-digit code is a verification code, not a secret. It is derived from the cryptographic identities of both devices on this exact connection, so it proves the phone in your hand is the phone the Mac is talking to, with nothing in between. Someone who glances at the code learns nothing useful; it is worthless on any other connection and expires with the pairing window.

The final confirm on the Mac is deliberate. Typing the code is the phone proving itself; clicking Pair is you, at the keyboard, granting trust. No device can ever pair itself to your library without a human clicking that button.

After pairing, every connection uses mutual TLS with pinned certificates in both directions. The Mac only answers phones it has paired, the phone only trusts the Mac it paired with, and an unknown device is refused before a single byte of your library moves.

The Android companion

The other half is Bòcan for Android, a native Kotlin app built around the same idea: your files, your network, no cloud. Both sides implement the same open sync protocol, so the wire format is documented, versioned, and testable.