Set up your Mac
Hoptail on your iPhone talks to a small program on your Mac, the Hoptail daemon. It watches your tmux sessions and the agents in them, and lets your iPhone know when one needs you. Setup takes about five minutes.
Just want to look around first? Tap Try the Demo in the app. It runs on sample data and needs no Mac.
What you need
- A Mac with Apple silicon (M1 or later), macOS 15 Sequoia or later.
- Homebrew 6 or later. Check with
brew --version. - Tailscale on your Mac and your iPhone, signed in to the same tailnet.
- Claude Code, with
claudeworking in Terminal. - tmux. Homebrew installs it for you if it’s missing.
- Hoptail on your iPhone from TestFlight (link coming soon)
Install
Open Terminal and run:
brew install hoptail-app/tap/hoptail
hoptail setup
Homebrew adds the Hoptail tap and trusts this formula because you named it in full. The daemon is signed and notarized by Apple.
hoptail setup checks that tmux, Tailscale and claude are in place, then:
- creates a TLS certificate, so your iPhone talks to your Mac over an encrypted connection;
- starts the daemon in the background and at login. macOS may show “Background Items Added”, which is expected;
- adds Hoptail’s hooks to Claude Code’s settings, so the daemon knows when an agent is waiting. Your existing hooks stay, and a backup of
settings.jsonis saved next to it.
It’s safe to run hoptail setup again at any time.
Pair your iPhone
hoptail pair
A QR code appears in Terminal. Open Hoptail on your iPhone and scan it, or scan it with the iPhone Camera. If scanning doesn’t work, tap Enter Code Manually and type the address and code shown next to the QR.
Codes last 5 minutes. If yours expires, run hoptail pair again.
Then start an agent in tmux, for example tmux new -s demo and claude, or tap New Session in the app. When the agent asks something, your iPhone will let you know.
Everyday commands
| Command | What it does |
|---|---|
hoptail status | Shows whether the daemon is running, its address and port, and paired devices |
hoptail logs | Shows the daemon’s log |
hoptail restart | Restarts the daemon |
hoptail pair | Pairs another iPhone or iPad |
hoptail version | Shows the version |
Update
brew upgrade hoptail && hoptail restart
If the app shows Update Hoptail on your Mac, run the same command. If hoptail logs says “run hoptail setup”, the hooks have changed in the new version: run hoptail setup once.
Uninstall
hoptail uninstall
brew uninstall hoptail
hoptail uninstall stops the daemon, removes it from login items and removes only Hoptail’s hooks from Claude Code’s settings. Your pairings and settings stay, in case you come back.
To remove everything, including pairings, settings and logs, use hoptail uninstall --purge instead. Then unpair in the app, or just delete the app.
If you removed Hoptail with Homebrew first
Claude Code keeps working: the leftover hook quietly does nothing. To clean up by hand:
- Stop the daemon and remove it from login items:
launchctl bootout gui/$(id -u)/dev.hoptail.daemon rm ~/Library/LaunchAgents/dev.hoptail.daemon.plist - Remove the hooks. Open
~/.claude/settings.json(or$CLAUDE_CONFIG_DIR/settings.json, if you set it) and, under"hooks", delete every entry whosecommandcontainsApplication Support/Hoptail/hook.sh. Leave other hooks as they are. To check that nothing is left:grep -n "Hoptail/hook.sh" ~/.claude/settings.json - Remove Hoptail’s data:
rm -rf ~/Library/Application\ Support/Hoptail rm -rf ~/Library/Caches/Hoptail rm -rf ~/Library/Logs/Hoptail
Troubleshooting
“Can’t find your Mac” or “Can’t reach your Mac”
- Make sure Tailscale is running and connected on both devices, with the same account or tailnet.
- On your Mac,
tailscale ip -4should print an address starting with100..hoptail statusshould show the same address. - Make sure your Mac is awake. A sleeping Mac can’t answer.
- If macOS asks whether to allow incoming connections for
hoptail, choose Allow. If you denied it earlier, turn it back on in System Settings → Network → Firewall → Options.
The port is busy
Hoptail uses port 7880. If another app holds it, hoptail setup picks the next free port and saves it; the QR code carries the port to your iPhone. If you change ports later, run hoptail pair again. To see what holds a port:
lsof -nP -iTCP:7880 -sTCP:LISTEN
macOS says the app can’t be opened or verified
The daemon is signed and notarized. On first launch, macOS checks it with Apple, so your Mac needs an internet connection the first time. If macOS still blocks it:
- update with
brew upgrade hoptail; - check the signature with
codesign -dv "$(brew --prefix)/bin/hoptail". It should name the developer; - send us the output of
spctl -a -vv -t open --context context:primary-signature "$(brew --prefix)/bin/hoptail".
Don’t turn off Gatekeeper to make Hoptail work.
No notifications
- Check that notifications for Hoptail are on in iOS Settings, and the app isn’t set to Mute.
- In Desk mode, Hoptail first waits 20 seconds for you to answer at your Mac. Try Away.
- Make sure the agent runs in tmux, and run
hoptail setupif you installed Claude Code after Hoptail.
claude not found
hoptail setup looks for claude the way your login shell finds it. Make sure claude --version works in a new Terminal window, then run hoptail setup again.
Feedback
Send feedback from TestFlight: take a screenshot in Hoptail and tap Share Beta Feedback, or email feedback@hoptail.app. If something broke, hoptail logs helps a lot. Logs can include project names and paths, so have a look before you send them.