Tapproval

Approve Claude Code prompts from your Apple Watch

Claude Code stops and asks before it runs a command, edits a file or answers a question for you. If you are away from the keyboard, the session waits. This guide puts those prompts on your Apple Watch, so one tap on the wrist answers them and the session carries on.

It takes about five minutes. You need an Apple Watch on watchOS 10 or later, and Claude Code on a Mac or a Linux computer. Everything below is free to set up, there is no account to create, and your first 100 answers cost nothing; after that, $5 once unlocks the app for good.

1. Install the watch app

Get Tapproval on the App Store. It is not yet available in the EU; the TestFlight beta works everywhere, and in the beta the unlock is free.

2. Add the helper to Claude Code

The watch needs a small bridge on the computer, called Tapproval Base. It is open source and uses only Python's standard library. Type these two lines into Claude Code itself:

/plugin marketplace add marcobelini/tapproval-helper
/plugin install tapproval-helper@tapproval

Or just ask Claude Code in plain words:

Install the Tapproval plugin from marcobelini/tapproval-helper

The plugin registers a PermissionRequest hook, which is how Claude Code hands a prompt to the watch, and starts the relay with every session. How that hook works is explained on its own page.

3. Restart Claude Code

Quit Claude Code and run claude again. The helper starts when a session begins, so the session you installed it from cannot start it.

4. Open Tapproval on the watch

Open the app once while the watch and the computer are on the same Wi-Fi. It finds the computer by itself and pairs automatically. From then on it also knows how to reach the computer when you are away: through a private travel address.

What arrives on the wrist

Nothing is approved for you. By default every prompt waits for a person. If you do not answer on the watch, the ordinary prompt is still there in Claude Code, exactly as it would be without Tapproval.

If the watch cannot find the computer

Open Settings on the watch and tap the status card at the top, which opens Connection: every route gets a tick or a reason. On the computer, one command says what the helper sees and the one next step:

python3 ~/.tapproval/ClaudeRiskClassifier.py --status

Its Connection block names the relay, the iCloud route, whether the away address answers from the internet, anything the helper has noticed, and where its log is (~/.tapproval-relay.log). The same notices appear on the watch's Connection screen.

What you seeWhyWhat to do
Computer: Not seen on this Wi-Fi, away from homeExpected. The watch looks for your computer on the network it is on.Nothing. Away from home, cards travel by the away address or your iCloud.
Computer red at home, or Found it, no answerWatch and computer on different networks, or a VPN on the iPhone that is half connected.Join the same Wi-Fi, or turn the iPhone's VPN off or fully on.
Tailscale: No answerA watch app usually cannot use the iPhone's Tailscale connection.Nothing; the other routes carry the cards.
Away address: No answer or Old addressThe address changed (the computer restarted) or its connection dropped. The helper notices within five minutes and opens a new one.Wait a minute or two: the new address reaches the watch through your iCloud. If it stays red, run --status.
Approvals onlyCards arrive through iCloud, but sessions need a direct link.Join the computer's Wi-Fi, or turn off the iPhone's VPN.
Helper: older than the version this app expectsThe helper on the computer has not updated yet.Start Claude Code once; it updates itself.
A red notice from Your computer, such as The iCloud route is offThe helper found something wrong and says what, in its own words.Follow the sentence; --status repeats it as the next step.

For a second watch, tell Claude Code Open Tapproval pairing and open the app within ten minutes.

With your iPhone off

Tapproval keeps working. Without its iPhone, Apple lets a watch reach the internet but not your home network, so the watch uses its private travel address, on Wi-Fi or cellular. From helper 1.1.29 that address survives updates and restarts of the helper, and if its connection drops the helper opens a new one by itself. After your Mac itself restarts, the address changes, and the watch learns the new one through your iCloud.

Two buzzes for one prompt

If you also use Claude's Remote Control, the Claude app on your iPhone sends its own "permission needed" notification, and the watch shows that one too. Since Claude Code 2.1.278 it does so even for a prompt that has already been answered (claude-code#96126). To keep only Tapproval's card, type /config in Claude Code and turn off Push when actions required. The cost: if the watch cannot be reached, the phone no longer tells you a prompt is waiting.

Removing it

Tell Claude Code Uninstall Tapproval Base. It restores your settings, keeps a backup, and leaves nothing running. Delete the app from the watch like any other.

Get Tapproval on the App Store