rn-watch-connect is a library for communicating with your companion watchOS app from your Expo and React Native app. It's built for Expo, with the Expo Modules API, on top of Apple's WatchConnectivity.
Why rn-watch-connect
Docs made for AI agents
Point your coding agent at /llms.txt, a short index of every page, or /llms-full.txt for all the docs in one file. Every page also has a plain Markdown version, and each code example is type-checked against the library, so the code an agent copies matches the real types.
Built for Expo
Written with the Expo Modules API for Expo SDK 57. Listen to events with Expo's own useEvent and useEventListener.
Promise-based
await sendMessage(...) resolves with the Watch's Reply, and rejects when it fails.
Reply in one call
An incoming Message that asks for a Reply comes with its own reply() function, and the first reply wins.
Errors you can switch on
Every failure has a stable code, such as ERR_WATCH_NOT_REACHABLE, typed as WatchConnectErrorCode, including WatchConnectivity's own errors.
Transfers with a clear ending
Each User Info and File Transfer gets exactly one finish event: delivered, failed or cancelled. Both can be listed and cancelled.
Received files handled safely
Files from the Watch land in your temporary directory, never overwrite each other, and a file that couldn't be kept is reported instead of lost silently.
Status you can read right away
isWatchReachable, isWatchPaired and the other status values are plain properties, and their events fire only on a real change.