Support
Getting Robje working
Robje is a remote control for Claude Code sessions that already exist on your Mac. Nearly every problem comes down to one of the three things it depends on not being in place yet.
What the app needs
The iPhone app does nothing on its own. Three things have to be true before it has anything to connect to:
- The Mac companion app, running in your menu bar. Download it here: a free, notarized .dmg.
- Claude Code running in tmux. You should already be
running
claudefrom a terminal, inside tmux, on a project you trust. The app attaches to those sessions; it doesn't create them. - A Tailscale connection between the devices. The Mac needs the Tailscale app, signed into your tailnet. On the phone, either install the Tailscale app or turn on the iPhone app's built-in Tailscale node (beta) in Settings; both count. This is the only network path the app uses. Without a tailnet, nothing connects.
The requirements section on the home page walks through each one.
Common problems
Pairing fails, or the QR code won't scan
Work through these in order:
- Make sure the Mac companion app is running. The QR code comes from its menu-bar icon, not from this website.
- Check that both devices are on the same tailnet: open Tailscale on the phone and the Mac and confirm each can see the other in its device list, signed into the same account.
- If the phone uses the built-in Tailscale node (beta) instead of the Tailscale app, check its status in the app's Settings. It should show as running with a tailnet IP, and it appears in the Tailscale admin console as its own device, separate from any Tailscale-app node. If it won't come up, sign it in again with a fresh auth key, or fall back to installing the Tailscale app on the phone.
- If the camera view never appears, the app may have been denied camera access. Turn it on in Settings > Apps > Robje.
- Scanning a laptop screen works best a hand-width away, with the phone steady. Bump the Mac's screen brightness if it's struggling in a dim room.
- If a previous pairing went stale, tap Unpair in the app's Settings and scan a fresh code.
Connected, but no sessions are showing
The app lists the claude processes running inside
tmux panes on your Mac — nothing else. If the list is empty:
- Confirm Claude Code is actually running inside
tmux. A
claudein a plain terminal window won't appear. - Sessions started with
--dangerously-skip-permissionsare deliberately excluded from voice control — they show as announce-only. That's a safety feature, not a bug. - Restart the Mac menu-bar app if sessions were started before it launched and haven't been picked up.
No audio — the app doesn't hear me, or doesn't speak
- If it doesn't hear you: check Settings > Apps > Robje and make sure Microphone and Speech Recognition are both allowed.
- If it doesn't speak: check that "Read responses aloud" is on in the app's Settings, and that the phone's ring/silent switch and volume aren't muting media audio.
- If you've selected ElevenLabs as the voice or transcription provider, it needs your own valid API key with remaining quota. Switching the provider back to System in Settings is the quickest way to rule ElevenLabs out.
- On a Bluetooth headset, iOS occasionally routes audio somewhere unexpected — use the audio route button in the app to pick the output explicitly.
It was working, then the connection dropped
The link runs over Tailscale, so it lives and dies with the tailnet. Check that Tailscale is still connected on both ends: the Tailscale app on the Mac, and on the phone either the Tailscale app or the built-in node's status in the app's Settings. VPN toggles, sleep, and network switches are the usual suspects. The app reconnects on its own once the tailnet is back; a pending Claude Code permission prompt just waits, answerable from the Mac keyboard the whole time.
Still stuck?
Email works. Include what you were doing, what you expected, and what happened instead.
robin@foursuitstudio.com