This Privacy Policy explains how Claude Code Notifier handles your data. Claude Code Notifier is made up of the phone apps for iOS and Android, ccn (a command line tool for macOS, Linux and Windows), the optional Mac menu bar app, our relay server, and this website. Together we call them "the Apps". They are provided by TouchTap Ltd ("we", "us", "our"). We want to be clear about what data is collected, how it is used, and who it may be shared with.
ccn or the Mac app) sends a notification through our relay server to the phones you have paired. A notification can include the project's name and folder path, Claude's message or the question it is asking, and, for a permission prompt, the command or file involved. The server deletes notifications within 48 hours. We do not sell your data or use it for advertising.
01Overview of the Apps
Claude Code Notifier consists of:
ccn on a Mac, and can also show Mac notifications and send webhooks.02Data We Collect
2.1ccn (Command Line Tool)
Claude Code runs ccn at seven points in a session (session start, each prompt you submit, before each tool use, permission requests, permission notifications, when Claude stops, and session end) and hands it details of that moment: the session ID, the working folder, the tool Claude wants to use and its input, the prompt you typed, Claude's last message, and any question Claude is asking. ccn keeps the following on your computer, in ~/.config/ccn/ (%APPDATA%\ccn\ on Windows):
config.toml), and when it last checked for an updateRemember the pairing and your preferencescredentials), or in the system keychain if you choose itAuthenticate with the relay serverccn.log, kept under 1 MB)Troubleshooting~/.claude/settings.json, plus a one-time backup of that fileLet Claude Code run ccnccn sends our relay server: when it registers, this computer's random ID, its token, its name (by default the computer's hostname; you can choose another name), its operating system, the ccn version and the features it supports; and, for each notification, the data listed in 2.4. Every request to our server also carries the ccn version and the computer's language (one of the 17 languages the Apps support, taken from the operating system or from CCN_LANG), so that the server can answer in your language. To decide whether to wait for your phone, ccn checks how long the keyboard and mouse have been idle. That check happens on your computer and the result is never sent. ccn pair sends the anonymous setup events described in 2.5; its hooks send no analytics.
ccn's hooks are installed when you install it, before any phone is paired. Until you pair a phone, ccn shows notifications on the computer itself and sends nothing about your sessions to our server; if the computer has already been registered, it asks our server whether a phone has paired each time a Claude Code session starts. After about ten notifications on the computer it may suggest pairing a phone, in a single line in the terminal; ccn config set pair_nudges off turns that off.
Once a day, when a Claude Code session starts, ccn checks for a new version in the background. It asks our server for the number of the newest release, sending only its own version and the computer's language, and no identifier. If there is a newer version and ccn was installed with the install script from this website or with npx, it downloads the release and its checksum file from GitHub, verifies the checksum and replaces its own program file; GitHub sees that download like any other (see 5.6). A copy installed with Homebrew, npm, Scoop or winget is never replaced; ccn only prints the command to run. Turn the check off with ccn config set auto_update off or by setting CCN_NO_AUTO_UPDATE=1. Whether an update succeeded or failed is reported as an anonymous setup event (2.5).
2.2Mac Application (Optional)
The Mac menu bar app collects and stores the following data locally on your Mac:
When paired with a phone, the Mac app sends our relay server its random ID, a token, the Mac's name, and the notification data listed in 2.4.
2.3iOS and Android Apps
The phone apps collect and store:
ccnThe phone apps can use the camera to scan the QR code that a computer shows (from ccn pair or the Mac app). The image is processed on the phone and is neither stored nor sent.
2.4Relay Server
Our relay server stores:
ccn or Mac app), version, the features it supports, and when it was registered and last seenDeleted, with the computer's settings and pairings, when the computer has not connected for 60 daysccn config set: which notifications to send, quiet hours, sound, and how long to wait for the phoneUntil changed, with the computer recordccn and the install scripts, described in 2.560 daysIf a phone or computer is not used for 60 days, the server deletes its records and its pairings. To use it again, you will need to pair it again.
The relay server does not store your IP address. Our hosting provider, Cloudflare, processes it to deliver each request and tells us which country a request comes from. We record that country when a pairing code is rejected, to spot misuse, and with analytics events and crash reports (see 2.5), including the setup events from ccn, and delete those records after 60 days.
2.5Analytics
The phone apps send anonymous product events to our own server. Events carry no device identifier, and the server does not store IP addresses with them. Each batch includes only the platform, app version and build, operating system version, device model, country, language, access state, and build type. Events describe how the app is used: for example, that the app was opened, the paywall was viewed or a plan was chosen, the outcome of a purchase, onboarding steps, whether notification permission was granted, which kind of computer you chose to set up (macOS, Linux or Windows), that a pairing code was shown or an install command was copied, that pairing finished (with the kind of computer and its operating system), and that you answered a notification (with the kind of prompt only). Events never contain project names, commands, prompts, or Claude's messages.
The iOS app sends anonymous crash and hang reports to our own server, so we can find and fix crashes. Apple’s MetricKit framework supplies them. A report holds the app version and build, the operating system version, the device model, the country, and technical details of the fault: the error type and signal, and the stack as code module names and offsets. It holds no name, account, device identifier, IP address or notification content, and the server does not store the IP address. Reports are deleted after 60 days. The phone apps use no third-party analytics or crash-reporting service, and the Android app does not send crash reports to our server.
ccn pair and the install scripts on this website send a few anonymous setup events to our own server, so we can see where installing or pairing fails: that an install started, finished or failed (and at which step), that pairing started, finished or failed (with a short reason, such as an expired code), how ccn was installed (install script, Homebrew or npm), the ccn version, and the operating system and processor type. ccn also reports whether an automatic update succeeded or failed, with the version before and after. They carry no identifier, no computer name and nothing from your Claude Code sessions. The server adds the country the request came from and the computer's language, as it does for the phone apps' events, and does not store the IP address. Set CCN_NO_ANALYTICS=1 or DO_NOT_TRACK=1 to turn them off.
This website uses Umami, a privacy-focused analytics service that does not use cookies. It counts page views and clicks on download and install buttons, including which operating system's install command was shown or copied. On the licence page it counts clicks on Buy (with the plan), that a key was looked up or a replacement link asked for, and that a new key was shown; never the key, your email or the checkout's ID.
ccn unlock, ccn activate and ccn deactivate send the same kind of anonymous setup events as ccn pair: that a purchase was started (with the plan) and whether the browser opened, that the computer was licensed (by checkout or by key) or why activation failed, and that a licence was removed. Once a day, a Claude Code session start asks our server whether this computer has a licence; nothing about the session is sent.
03How We Use Your Data
Your data is used only to provide and improve the Apps:
- Notification Delivery: To alert you when Claude Code finishes or needs your attention
- Remote Response: To pass your answers from the phone back to Claude Code on your computer
- Pairing: To connect your computers and phones with a short-lived code
- Computer Settings: To let you change a computer's settings from your phone
- Session Tracking: To show session history and statistics (Mac app)
- Webhook Forwarding: To send notifications to external services you configure, such as Slack or Discord (Mac app)
- In-App Purchase Verification: To confirm subscriptions and lifetime purchases (phone apps), and to keep financial records
- Product Improvement: To count, in aggregate, how the apps are used and how pricing tests perform
- Security: To detect misuse of pairing codes and the relay server
- Crash Fixing: To find and fix crashes and hangs in the iOS app
- Reminders and Notices: To remind you to finish setup, to tell you if a payment fails or a trial is cancelled, and to show lock-screen cards
- Updates: To tell
ccnand the Mac app whether a newer version exists - Feedback: To read what you tell us and improve the apps
04Data Storage and Security
4.1Local Storage (ccn)
- Files: Kept in
~/.config/ccn/(%APPDATA%\ccn\on Windows). On macOS and Linux the configuration and credentials files can be read only by your user account - Credentials: Stored in a private file by default, or in the macOS Keychain, Windows Credential Manager or Linux Secret Service if you set
credential_storetokeychain - Data Retention: Session files are deleted when a session ends, or after 7 days without use.
ccn uninstalldeletes everythingccnkeeps
4.2Local Storage (Mac App)
- Session Data: Stored in a local database on your Mac
- Preferences: Stored in UserDefaults (standard macOS preferences storage)
- Cloud Credentials: Stored securely in the macOS Keychain
- Data Retention: Session history is automatically deleted after a configurable period (default: 30 days)
4.3Local Storage (iOS/Android)
- Notification History: Stored in the app's private storage on your phone
- Device Identifier: Stored in the iOS Keychain, or in encrypted storage on Android. iOS can keep Keychain items after an app is deleted, so reinstalling may reuse the same identifier
- Preferences: Stored in UserDefaults (iOS) or DataStore (Android)
- Data Retention: Notification history stays until you clear it or delete the app
4.4Cloud Storage
- Infrastructure: The relay server runs on Cloudflare Workers, with data stored in Cloudflare D1 (SQLite) and Durable Objects
- Encryption: All communication with the server uses TLS encryption (HTTPS/WSS)
- Geographic Location: Data may be processed in Cloudflare data centres worldwide
- Notification Expiry: A cleanup job runs every day and deletes notifications, with your answers to them, that are more than 24 hours old, so none is kept longer than 48 hours. While a computer is waiting for your answer, a copy of the answer is also held for up to 1 hour
- Inactive Records: The same daily job deletes phones and computers that have not been used for 60 days, with their pairings and settings, and revoked pairings 60 days after they were revoked. Purchase records are deleted 6 years after their date
05Third-Party Services
The Apps use the following third-party services:
- Used by
- iOS app, relay server
- Purpose
- Process subscriptions and one-time purchases, and send us notices about them
- Data Shared with Apple
- The purchase, with the device identifier as its account token. If you turn on “Help with refund requests” in the app and then ask Apple for a refund, we also tell Apple that the purchase was delivered, whether you set up the app and used it (a computer paired with your phone since the purchase), and whether we think the refund should be granted. We do this only with your consent, which you can withdraw in Settings at any time, and keep a copy of each answer for 60 days
- Data Received
- Purchase verification, subscription status, dates, price, currency and storefront country
- Note
- Payment information is handled entirely by Apple. We do not receive or store your payment details.
- Used by
- Android app, relay server
- Purpose
- Process subscriptions and one-time purchases, and send us notices about them
- Data Shared with Google
- The purchase, with the device identifier as its obfuscated account ID. For a link that a computer showed, the single-use pairing token passes through Google Play as the install referrer
- Data Received
- Purchase verification, purchase tokens, subscription status and dates
- Note
- Payment information is handled entirely by Google. We do not receive or store your payment details.
- Used by
- iOS app, relay server
- Purpose
- Deliver notifications and silent updates to iPhones and iPads
- Data Shared with Apple
- Push token; notification title and text (up to 200 characters); project name; prompt text (up to 500 characters); tool name and input summary; answer options; notification IDs. Project folder paths are not sent. For lock-screen cards: the card’s content (project name and a short summary)
- Used by
- Android app, relay server
- Purpose
- Deliver notifications and silent updates to Android phones with Firebase Cloud Messaging (FCM)
- Data Shared with Google
- Push token and the same notification data as for APNs; Firebase installation ID
- Used by
- Relay server, this website
- Purpose
- Host the relay server and this website, and store the server data described in 2.4
- Data Processed
- All data sent to the relay server, and standard request data such as IP addresses. Cloudflare Email Service also sends the licence emails: your key, and links to replace it
- Used by
ccnand the Mac app- Purpose
- Release files are hosted on GitHub. The install scripts on this website download
ccnfrom GitHub and check its checksum, andccndownloads its own updates from GitHub in the same way (see 2.1). You can also install with Homebrew or npm - Data Shared
- Standard request data (IP address, user agent) with the service you download from. Homebrew and npm have their own analytics and policies
- Used by
- Mac app
- Purpose
- Check for and deliver Mac app updates
- Data Shared
- Standard HTTP request data (IP address, user agent) when the app reads this website's update feed and downloads from GitHub
- Note
- Sparkle is open-source software built into the app, not a service; it sends nothing to its developers
- Used by
- This website
- Purpose
- Count page views and button clicks, without cookies
- Data Processed
- Page address, referrer, browser, device type and country
- Used by
- Mac app (set up by you)
- Purpose
- Forward notifications to external services
- Supported Services
- Slack, Discord, or any custom HTTP endpoint
- Data Shared
- Notification content including project names, paths, messages, and timestamps
- Note
- Webhooks are entirely optional and configured by you. Data is only sent to services you explicitly configure.
ccndoes not send webhooks.
- Used by
- Licences bought on this website or with
ccn unlock - Purpose
- Sell licences as merchant of record: take the payment, charge tax, send receipts and handle renewals, cancellations and refunds
- Data Shared with Lemon Squeezy
- What you enter at checkout goes to Lemon Squeezy, not to us: your name, email, billing address and payment details. We send it only a random checkout ID, so the purchase can find the page or terminal waiting for it
- Data Received
- Your email address and name (we keep only the email), the plan, order, subscription and refund status, amounts, currency and tax. We never receive your card details
06Data Sharing
We share your data only in the following circumstances:
- Between Your Devices: Notifications pass between your computers and the phones paired with them through our relay server. A paired phone can see each computer's name, kind, operating system and settings
- With Push Notification Providers: Apple (APNs) and Google (FCM) receive notification content to deliver it to your phone
- With App Stores for Purchases: Apple and Google process subscriptions and one-time purchases; they receive transaction data, and we do not receive your payment information
- With Lemon Squeezy for Licences: Lemon Squeezy sells licences bought on our website; you give your payment details to it directly, and we receive the order and your email address
- With Our Service Providers: Cloudflare hosts the relay server and this website, and Umami counts website visits
- With Your Configured Webhooks: If you set up webhooks in the Mac app, notification data is sent to those endpoints
- Legal Requirements: We may disclose data if required by law or to protect our legal rights
We do not sell, rent, or trade your personal data to third parties.
07Your Rights and Choices
7.1Data Access and Deletion
- View Your Data: Notification history is shown in the phone apps;
ccn config showshows a computer's settings; session history is shown in the Mac app - Unpair: Revoke a pairing from the phone, with
ccn devices, or in the Mac app. The phone stops receiving that computer's notifications straight away. The server marks the pairing as revoked, deletes its notifications on the usual schedule, within 48 hours, and deletes the pairing 60 days later - Remove ccn:
ccn uninstallremoves its hooks from Claude Code's settings, revokes every pairing, and deletes its credentials and local files - Delete Local Data: Deleting a phone app or the Mac app removes the data it stored on that device (except, on iOS, the device identifier in the Keychain; see 4.3)
- Delete Server Data: Do it yourself whenever you like. In a phone app, open Settings and choose Delete my data; on a computer, run
ccn forget. Each removes that phone or computer, its pairings and its queued notifications from our server straight away. Anything you leave is deleted automatically once it has not been used for 60 days. This also removes its feedback, usage counts, billing-notice records, lock-screen cards and pairing-failure records - Erase a Licence: On claudecodenotifier.com/licence, enter your key and choose Erase my licence. This ends the licence for good, stops an annual plan renewing, and removes your email address, the key and the computer names from our records. If you have lost the key, get a replacement through the link we email you first. Purchase records (amounts, tax, dates and Lemon Squeezy order IDs) are kept for 6 years because the law requires it, and Lemon Squeezy keeps its own records as merchant of record, so ask it to erase what it holds
- Data Retention Settings: Choose how long the Mac app keeps session history in its settings
7.2Opt-Out Options
- Choose What Is Sent: For each computer, turn off notifications for finished turns, permission requests or questions, or set quiet hours, from the phone or with
ccn config set - Notification Permission: If you turn off notifications for the app on your phone, the server records that and stops sending it visible notifications. Silent updates, such as pairing confirmation, still arrive
- Stop Using the Relay: Unpair every phone to stop sending data to the relay server. The Mac app can still show Mac notifications without it
- Webhooks: Remove webhook configurations in the Mac app to stop forwarding data to external services
- Auto-Updates: Turn off automatic update checks in the Mac app's settings, or for
ccnwithccn config set auto_update offorCCN_NO_AUTO_UPDATE=1 - Pairing Suggestions:
ccn config set pair_nudges offstopsccnsuggesting that you pair a phone
7.3Your Legal Rights
TouchTap Ltd is the controller of the personal data described in this policy. Depending on where you live, including in the UK and the European Union, you may have the right to access, correct or delete your personal data, to object to or restrict how we use it, and to receive a copy of it. You can use most of these rights yourself, without asking us, as described in 7.1. To use them another way, email [email protected]. Because there are no accounts, we may ask for details, such as the names of your computers and phones, to find your records. You also have the right to complain to a data protection authority; in the UK this is the Information Commissioner's Office (ico.org.uk).
7.4Data Portability
The Apps do not currently offer a data export feature. Data stored on your devices can be seen in the Apps, and ccn's files are plain text.
08Information About Project Paths and Commands
ccn and the Mac app may include:
- Full file system paths to your projects (e.g.,
/Users/yourname/Projects/secret-project) - Tool names and summarised inputs (e.g., file paths being read or shell commands being run)
- Claude's last message, plans and questions, and the start of your prompt
- Your computer's name, which is its hostname unless you choose another
This information is sent to our relay server, and a shorter version to Apple or Google to deliver the notification. If you work with sensitive or confidential projects, consider whether phone notifications are appropriate, and which kinds of notification to turn on for each computer.
09Children's Privacy
The Apps are not directed at children under 13 years of age. We do not knowingly collect personal information from children. If you believe we have inadvertently collected data from a child, please contact us to have it removed.
10International Data Transfers
Our relay server runs on Cloudflare's global network, and Apple and Google deliver notifications from their own infrastructure. Your data may be processed in data centres outside your country of residence. Where the law requires safeguards for these transfers, we rely on the ones those providers put in place, such as the EU–US Data Privacy Framework and standard contractual clauses.
11Changes to This Privacy Policy
We may update this Privacy Policy as the Apps evolve. Material changes will be communicated through the Apps or on this page. The "Last updated" date at the top indicates when the policy was last revised. Translations are provided for convenience; if a translation differs from the English version, the English version prevails.
12Contact Us
If you have questions, concerns, or requests regarding this Privacy Policy or your data, please contact us: