claude-watch-relay
v0.1.4
Published
Mac relay server for Claude Watch Remote — bridges Claude Code CLI prompts to iPhone/Apple Watch
Maintainers
Readme
claude-watch-relay
Mac relay server for Claude Watch Remote — bridges Claude Code CLI prompts to your iPhone and Apple Watch via WebSocket.
How it works
Claude Code (PTY) ←→ claude-watch-relay (WebSocket + Bonjour) ←→ iPhone ←→ Apple WatchThe relay wraps claude in a PTY, detects interactive prompts (permissions, file access, y/n), and broadcasts them over WebSocket to the Claude Watch Remote iOS app.
Install
npm install -g claude-watch-relayRequires macOS and Node.js 18+. Xcode Command Line Tools needed for native module build (
xcode-select --install).
Usage
# Instead of running `claude` directly:
claude-watch-relay
# Pass arguments to Claude Code:
claude-watch-relay --help
claude-watch-relay "fix the bug in auth.ts"On startup, the relay prints a 6-digit pairing code. Enter this code in the Claude Watch Remote iPhone app to pair.
Configuration
| Environment Variable | Default | Description |
|---------------------|---------|-------------|
| RELAY_PORT | 19876 | WebSocket server port |
How the iPhone/Watch finds your Mac
The relay advertises itself via Bonjour (mDNS) as _claude-watch._tcp. The iPhone app auto-discovers Macs on the local network — no manual IP entry needed.
Protocol
WebSocket JSON messages:
| Direction | Type | Fields |
|-----------|------|--------|
| Client → Relay | pair | code |
| Relay → Client | pair_result | success, message |
| Relay → Client | prompt | prompt: { id, type, text, detail, options, timestamp } |
| Client → Relay | response | promptId, answer |
| Client → Relay | voice_command | text |
| Relay → Client | voice_ack | text, timestamp |
| Relay → Client | prompt_resolved | promptId, answer |
| Relay → Client | terminal_output | data |
| Relay → Client | terminal_exit | exitCode |
License
MIT
