Setup guide

Everything from the first pairing to using your phone as a Mac speaker away from home, plus fixes for the problems people actually hit.

In short

  1. Install the Mac app (macOS 14+) and the Android app (Android 8.0+).
  2. Press Start on the Mac and allow the one permission macOS asks for.
  3. Tap Scan pairing QR on the phone and scan the code on the Mac's Pairing tab.

Plug in a USB cable for the lowest latency; Wi-Fi works with no extra setup.

1. Install

Get both apps from the download page: the macOS app sends, the Android app plays. You need macOS 14 Sonoma or later and Android 8.0 or later.

2. Pair and play

  1. On the Mac: open Tethertone and press Start, either in the menu bar or in the window. Allow the permission macOS asks for.
  2. On the phone: open Tethertone and tap Scan pairing QR.
  3. On the Mac: click Open Tethertone… in the menu bar and go to the Pairing tab. Point the phone at the QR code. Show large QR opens a bigger copy.
  4. Play anything on the Mac. The phone shows Streaming over Wi-Fi or over USB.

That's the whole setup. The phone remembers the Mac, so next time you only press Start. Without a camera, tap Enter address manually on the phone, or open the pairing link (Copy pairing link on the Mac) on the phone.

Capture methods

Choose in the Mac window under Overview › Capture method.

FeatureScreen RecordingBlackHole
InstallNothingBlackHole 2ch
PermissionScreen & System Audio RecordingMicrophone
Menu bar indicatorScreen-recording indicatorMicrophone indicator
Mac speakersKeep workingSilent unless Hear it on this Mac too is on

Screen Recording is the default because it works with nothing installed. It never reads an image. ScreenCaptureKit just has no audio-only mode.

Setting up BlackHole

BlackHole is a free virtual audio device: whatever you send to it can be read back as an input.

  1. Install it:
brew install blackhole-2ch
  1. In System Settings › Sound › Output, choose BlackHole 2ch.
  2. In Tethertone, set Capture method to BlackHole and pick BlackHole 2ch as the input device.
  3. To keep hearing audio on the Mac, turn on Audio › Hear it on this Mac too and pick your speakers. That saves building a Multi-Output Device in Audio MIDI Setup.

Keep BlackHole at 48 kHz in Audio MIDI Setup. If you change its rate while streaming, press Stop and Start so the phone is told the new rate.

USB connection

USB gives the lowest latency and is immune to Wi-Fi congestion. You need USB debugging enabled on the phone and adb on the Mac:

brew install android-platform-tools

Plug in the phone and accept Allow USB debugging?. With Network › Offer the USB path on (the default), Tethertone runs adb reverse by itself whenever a phone appears. It also puts the cable first in the QR code. The phone keeps Wi-Fi as a fallback, so you can unplug at any time.

Tuning latency

Most of the delay is the phone's jitter buffer: audio held back to absorb network hiccups. Set it with the slider on the phone's home screen, while disconnected.

  • USB: try 40–60 ms.
  • Good Wi-Fi: the 90 ms default is a safe start.
  • Busy Wi-Fi or VPN: 150 ms or more, and choose a larger Packet size on the Mac under Network.

Watch the underruns counter on the phone. If it climbs, raise the buffer.

Away from home

A phone on mobile data can't reach a Mac on a home network directly: both sit behind NAT, and neither has an address the other can dial. What works:

RouteSetupNotes
Mesh VPN (Tailscale, ZeroTier)Install on both devicesEncrypted, and works anywhere. Its address appears in the QR code on its own.
Tunnel (ngrok, cloudflared)Enter the hostname under Network › Reaching this Mac from anywhereExposes the port publicly. The token gates it, but audio is unencrypted.

The stream is uncompressed: about 1.5 Mbit/s, or roughly 690 MB per hour. Mind your mobile data plan.

Troubleshooting

Permission error, but the toggle is on

macOS ties permissions to the app's signature, and an update can leave a stale grant that shows as allowed. In System Settings › Privacy & Security, switch Tethertone off and on again. If that fails, reset it and press Start again:

tccutil reset ScreenCapture dev.tethertone.mac
tccutil reset Microphone dev.tethertone.mac

The phone scans but never connects

Look at the Mac's Overview › Activity card. If nothing arrives there, the phone's packets aren't reaching the Mac. The devices are on different networks, or the Wi-Fi blocks device-to-device traffic, which is common on guest and office networks. Use the USB cable, and check the macOS firewall allows Tethertone.

Level meter shows silence

With BlackHole, the Mac's output must go into BlackHole and Tethertone's input must be BlackHole. With Screen Recording, make sure something is actually playing.

Audio stutters

Prefer USB, raise the jitter buffer, and choose a larger packet size on the Mac. If the phone's Clock drift card says rate control is unavailable, turn off Prefer low-latency audio path in the phone's Settings.

Playback stops with the screen off

Some phone makers stop background apps aggressively. Exempt Tethertone from battery optimisation. dontkillmyapp.com has instructions for each manufacturer.

Still stuck? Open an issue with your macOS and Android versions, the phone model and what the Activity card shows.