Nudge (the Chrome extension and its local relay). Last updated 2026-10-31.
Everything stays on your computer. The extension has no accounts, no analytics, no remote servers, and sends nothing over the internet.
Claude Code hooks send small JSON payloads (the event name, your project folder name, and the text of Claude's question, permission request, or final message) to a relay process running on your machine at 127.0.0.1. The relay forwards them over a local WebSocket to the extension, which draws a mascot and a speech bubble on the tab you are viewing.
None. The extension does not collect, transmit, sell, or share any personal data, browsing history, or page content.
The content script renders the mascot inside a closed shadow root. It does not read, modify, or transmit the content of any web page.
<all_urls> and scripting: draw the mascot on whichever tab is active.storage: settings and the recent-events list.alarms: keep the local relay connection alive.notifications: fallback system notification on pages where content scripts cannot run.The only network connection is to 127.0.0.1 on your own machine. The relay rejects connections from web pages and accepts only the extension or local command-line tools.
The local relay listens only on 127.0.0.1. Because any program or user account on the computer can reach that address, Nudge also uses a per-install secret: setup writes 32 random bytes to ~/.claude-nudge/secret, readable only by your account, and shows it as a connection code. The hooks read it from that file; the extension stores the copy you paste in its local storage on this browser profile (not synced) and sends it with every request. Without it the relay refuses everything except a health check, so no other program can read your Claude messages, answer a permission prompt, or switch apps on your behalf. The code never leaves your computer.
Pairing is opt-in. None of this happens unless you click "Pair a phone" in the extension or run npx nudge-mascot pair. The free, browser-only mode is unchanged: nothing leaves your machine.
Once you pair, the local relay also sends each nudge to the Nudge hosted relay, which runs on Cloudflare, and the hosted relay passes it to your phone.
What the hosted relay stores:
Decisions you make on the phone are forwarded to your laptop, where Claude Code applies them.
Push notifications go through Expo's push service, which hands them to Apple (iPhone) or Google (Android). A push carries the notification text: the title, the project folder name, and the start of the message. Expo, Apple, and Google handle that text to deliver it.
Retention: events and decisions are deleted after 7 days, or sooner once 50 newer events have replaced them. An unused pair code is deleted after 10 minutes.
To delete everything: click Unpair in the extension (or run npx nudge-mascot unpair). That revokes every paired phone and deletes their push tokens from the hosted relay. "Clear all recent nudges" in the app deletes the event list right away; otherwise events expire after 7 days.
None. The extension does not use third-party services, SDKs, or trackers. Claude Code is a product of Anthropic; this extension is an independent project and is not affiliated with or endorsed by Anthropic.
Changes to this policy are published at this URL and in the project repository.
Open an issue at github.com/JayroldSoriano/nudge-mascot.