Send Claude Code notifications to your Apple Watch
Project description
WatchCode CLI
Send Claude Code notifications directly to your Apple Watch.
What is WatchCode?
WatchCode lets you receive notifications from Claude Code on your Apple Watch - no iPhone required. Get instant alerts for permission requests, tool usage, errors, and more.
Installation
# Install pipx if you don't have it
brew install pipx && pipx ensurepath
# Install WatchCode CLI
pipx install watchcode-cli
Quick Start
-
Install the WatchCode app on your Apple Watch (available on the App Store)
-
Get your setup code from the Watch app:
- Open WatchCode on your Watch
- Go to Settings
- Note your setup code (format: XXXX-XXXX-XXXX)
-
Configure the CLI:
watchcode setupThis will:
- Prompt for your setup code
- Install Claude Code hooks automatically
- Send a test notification to verify setup
-
Done! Claude Code will now send notifications to your Watch.
Commands
watchcode setup
Interactive setup wizard. Configures WatchCode with your setup code, installs hooks, and sends a test notification.
watchcode setup
watchcode test
Send a test notification to your Watch.
watchcode test
watchcode status
Show configuration and hook status.
watchcode status
watchcode install-hooks
Install Claude Code hooks for WatchCode (normally done during setup).
watchcode install-hooks
watchcode uninstall-hooks
Remove WatchCode hooks from Claude Code.
watchcode uninstall-hooks
watchcode flush
Manually send queued offline notifications.
watchcode flush
watchcode notify
Send notification from Claude Code hook (used internally by hooks).
# Examples (normally called by Claude Code hooks)
watchcode notify --event stop
watchcode notify --event permission_request --requires-action
watchcode notify --event notification
How It Works
WatchCode uses Claude Code's hook system to send notifications:
- Hook triggers - Claude Code calls WatchCode hooks on events (permission requests, tool usage, etc.)
- Relay server - WatchCode CLI sends notification to Cloudflare Worker relay
- APNs delivery - Relay forwards to Apple Push Notification service
- Watch receives - Your Apple Watch receives the notification instantly
Supported Events
WatchCode supports all Claude Code hook types:
- Stop - When Claude Code stops execution
- PreToolUse - Before using a tool (optional confirmation)
- PermissionRequest - When Claude needs permission (requires action)
- Notification - General notifications
- SessionStart / SessionEnd - Session lifecycle events
Offline Queue
If the relay server is unreachable, notifications are queued locally and automatically sent when connectivity is restored.
View queued notifications:
watchcode status
Manually flush queue:
watchcode flush
Configuration
WatchCode stores configuration in ~/.watchcode/:
config.json- Setup code and relay URLoffline_queue.json- Queued notifications (when offline)
Claude Code hooks are installed in ~/.claude/settings.json.
Privacy & Security
- No data collection - WatchCode only sends what's needed for notifications
- Secure relay - End-to-end encrypted via APNs
- Auth tokens - Setup codes authenticate your device (no passwords)
- Open source - Full source code available on GitHub
Troubleshooting
Notifications not appearing on Watch
- Check configuration:
watchcode status - Verify hooks are installed:
watchcode install-hooks - Test notification:
watchcode test - Check Watch is connected and WatchCode app is installed
Network errors
If you see "Network error: Notification queued", the relay server is unreachable. Notifications will be queued and sent automatically when online. Run watchcode flush to retry manually.
Invalid setup code
Setup codes are 12 alphanumeric characters (format: XXXX-XXXX-XXXX). Get your code from the WatchCode app on your Watch (Settings screen).
Links
- GitHub: https://github.com/egor-gm/WatchCode
- Issues: https://github.com/egor-gm/WatchCode/issues
- Watch App: Available on the App Store
License
MIT License - see LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file watchcode_cli-1.0.21.tar.gz.
File metadata
- Download URL: watchcode_cli-1.0.21.tar.gz
- Upload date:
- Size: 56.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac50f801b7facd073aec73c0eb4efef90fa89eb19f0df32e11bbc87eadb30e71
|
|
| MD5 |
a2efe415a981be4d7fb54736a07ca13e
|
|
| BLAKE2b-256 |
a0d586212a98706fa57b18aed21950e12c4bd537f26950d0c6261896945a62b2
|
File details
Details for the file watchcode_cli-1.0.21-py3-none-any.whl.
File metadata
- Download URL: watchcode_cli-1.0.21-py3-none-any.whl
- Upload date:
- Size: 42.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4224ed46ede6d92300349454e4dfcbcdf85a8c3689c33435d2628a8fc08a9267
|
|
| MD5 |
502338265b2659dfc7d1da3a568cdbf9
|
|
| BLAKE2b-256 |
3a021236dcb2e3e080939857b32acb88e8ab9268fa35334ec5b44bdf88e215b4
|