NotiSync ← Back to home

Privacy Policy

Last updated: August 24, 2026 · Applies to the NotiSync Android app (net.extrawdw.apps.notisync), iOS app (net.extrawdw.apps.NotiSync), desktop daemon and command-line tools, relay services, and this website.

The short version

  • Your private feature content is end-to-end encrypted. This includes notification details, Run commands and terminal output, Seal commit payloads, SSH signing requests, and Screen Sharing pixels and control traffic sent between trusted devices.
  • The service still handles delivery metadata. The relay sees device identifiers, message identifiers and types, timing, sizes, routes, push tokens, integrity results, and operational events. A relayed screen session also exposes connection and frame metadata, but not screen pixels or control contents.
  • Most history stays on your devices. App choices, trust state, notification history, Run history/logs, Seal review records, SSH key state, and diagnostics are stored locally as described below.
  • There is no NotiSync account. No sign-up, email, or password is required, and we do not build an advertising profile about you.
  • Some integrations are optional. The iPhone ANCS bridge, Screen Sharing, Shizuku, OpenKeychain, and the desktop Run tool's OpenAI-compatible analysis are used only when you enable or invoke them.
  • We do not sell your data. NotiSync has no ads, advertising SDKs, or Firebase Analytics. Crash and performance diagnostics are used to improve reliability; Android provides an in-app switch to disable them.

1. Who we are

NotiSync ("NotiSync", "we", "us") is developed and operated by Extrawdw. It connects devices you explicitly trust to mirror notifications and, when enabled, provide Screen Sharing, remote command monitoring, OpenPGP commit approval, and SSH-agent signing. This policy explains what the Android, iOS, and desktop software, our relay services, and this website process and why.

If you have any questions, contact us at privacy@extrawdw.net.

2. How NotiSync is built (and why it matters for privacy)

NotiSync follows a "clients are authoritative, the server is a courier" design. Your devices decide which peers to trust and encrypt private feature payloads for those peers before transmission. The relay forwards ciphertext and coordinates push or WebSocket delivery, but it cannot decrypt the private payload.

On iOS, the app and its Notification Service Extension decrypt NotiSync notifications locally before showing them. Screen Sharing first attempts a direct local connection; if you choose the broker relay, the screen stream remains end-to-end encrypted while the broker handles the connection and visible frame metadata described in Section 4.

When the optional iPhone bridge is enabled in the Android app, your Android device acts as the bridge: it pairs with your iPhone over Bluetooth, receives ANCS notification attributes from iOS, and then either shows those notifications locally or sends selected ones through the same end-to-end-encrypted NotiSync pipeline. The native iOS app is not required on that iPhone for ANCS mirroring; install it when you also want the iPhone or iPad to receive mirrored NotiSync notifications, sync dismissals, or manage filters.

3. Information the app processes

a. Notification content

On Android, NotiSync reads notifications posted on your device using notification-listener access, which you grant explicitly. This can include the app name/package, title and text, channel or conversation names, sender names, message history, action buttons and reply fields, call/media/progress state, and attached icons or images.

If you enable the iPhone bridge, your Android device can pair with your iPhone over Bluetooth ANCS and receive iOS notification attributes. This can include the iOS app bundle ID and display name, notification title, subtitle, message text, notification date, category, and event state such as added or removed.

On iOS, NotiSync receives messages sent by your trusted devices. Those messages may contain the source app, app label/package or iOS bundle ID, title, body, subtitle, channel or conversation details, sender names, device-origin details, action definitions, and private assets such as icons, avatars, or images. The iOS app does not read unrelated notifications already on your iPhone or iPad.

Notification details are encrypted on the source device and decrypted only on trusted destination devices. Inline replies, action selections, taps, and dismissals are also sent end-to-end encrypted to the source device, which performs the requested action when supported.

b. Your app selections

You choose which installed Android apps are mirrored. To show you a list, the app reads the labels and icons of apps on your device. Your selections and settings are stored locally on your device. When an enabled app posts a mirrored notification, the source app name/package is included only inside the end-to-end-encrypted notification body.

For the iPhone bridge, iOS does not provide a full app list in advance. NotiSync records iPhone apps as they post notifications over ANCS, then lets you turn mirroring on for the iPhone apps you choose. The discovered iOS bundle IDs, display names, last-seen times, and your per-app choices are stored locally on your Android device.

On iOS, NotiSync stores your display/filter choices for trusted source devices, apps, and Android notification channels. These choices are stored locally and may be sent end-to-end encrypted to the trusted source device so that it can stop or resume sending matching notifications to your iOS device. The relay server cannot read these filter rules.

c. iPhone app icons and Apple lookup

To show recognizable icons for iOS-origin notifications, NotiSync may fetch public app artwork from Apple's App Store / iTunes Lookup API and artwork CDN. The lookup uses the iOS app's bundle ID, and it does not send notification titles, messages, senders, or images to Apple. The returned public icon artwork is cached locally on your device.

For Android-origin notifications displayed on iOS, NotiSync may fetch the encrypted private launcher icon or image asset from the relay server, decrypt it locally, verify its hash, and cache it locally. Some common icons are bundled with the app or drawn as generic placeholders.

d. Device identity and pairing data

Each installation has a cryptographic identity. We use:

NotiSync identity and transport private keys are generated and kept locally. Android uses Android Keystore and encrypted app-private storage; iOS uses the Secure Enclave or Keychain where available. Desktop private key material is stored in owner-only local files, but NotiSync does not itself encrypt those files at rest, so operating-system account security and disk encryption matter. Only public keys and derived identifiers are shared for pairing and routing.

If you use the iPhone bridge, Android's Bluetooth and Companion Device pairing systems handle the local association with your iPhone. NotiSync may keep the paired iPhone's display name and a hashed, internal origin identifier so bridged iPhone notifications can be grouped and dismissed correctly. That iPhone origin information is not sent to the relay server in readable form.

On iOS, QR pairing uses the camera only while the scanner is open. You can also paste or open a pairing link. Pairing material contains public keys, your chosen device name, and verification information; it does not contain private keys. If you start Experience Mode, your pairing link is sent to the relay server so a demo peer can be connected.

e. Push delivery tokens and routing

To wake your devices when a notification arrives, NotiSync uses platform push services: Firebase Cloud Messaging (FCM) on Android and Apple Push Notification service (APNs) on iOS. This requires a push token issued by Google or Apple for your device, which is relayed through our server as a signed "route claim" so messages can be delivered.

To route a message, the service necessarily sees delivery metadata such as sender and destination client IDs, message IDs and types, route identifiers, APNs or FCM route tokens, urgency, timing, ciphertext size, and random private-asset IDs. It does not see private payload fields such as notification text, Run output, commit payloads, SSH sign data, screen pixels, or asset decryption keys.

f. Advanced features

Screen Sharing. A shared Android device captures and hardware-encodes its screen through the Shizuku integration. Trusted Android, iPhone, iPad, and supported desktop viewers can receive the video and send control input. Session requests contain identifiers, connection candidates, capabilities, codec and quality choices, and short-lived keying material. These requests are end-to-end encrypted. Direct connections use your local network; broker-relayed video and control remain end-to-end encrypted. NotiSync does not record the session, request microphone access, or transmit device audio.

Run. When you invoke the desktop nsrun tool, it sends a trusted Android device the command arguments, absolute working directory, terminal output, prompts, progress, timestamps, exit status, failures, and any generated summary. Responses and signals sent back to the running computer are encrypted in the same way. The desktop also writes private local Run logs. If you explicitly configure and invoke nsrun --llm, selected command context is sent to the OpenAI-compatible endpoint you configured; details appear in Section 6.

Seal. A Seal request sends a trusted Android device the byte-exact Git commit payload, its hash, requested OpenPGP key ID, working directory, and requester/device context. NotiSync does not send the repository's file contents or diff unless they are themselves present in the commit message or headers. After you approve, OpenKeychain signs the payload and returns a detached signature. NotiSync does not receive the OpenPGP private key.

SSH Agent. The desktop agent receives an end-to-end-encrypted inventory of public SSH keys and sends a selected trusted Android device the data to sign, requested algorithm, selected public key, and available process and SSH-destination context such as executable, working directory, host, username, and host-key fingerprint. Android returns only the signature. Private keys remain on Android unless you explicitly create an exportable key and authorize exporting or sending a copy. Non-exportable Android Keystore keys cannot be exported.

g. Local history, configuration, and diagnostics

Depending on platform and features used, NotiSync stores trust and pairing state, keys, routes and delivery state, filters, notification display maps, iOS inbox and activity history, Run history and raw desktop logs, Seal review results, SSH keys/public-key inventory, remembered approvals, known hosts, and SSH audit records. These records stay local unless this policy says they are sent to a trusted peer or service.

The apps and desktop tools also show or write operational diagnostics such as client/key identifiers, transport and route state, capabilities, request outcomes, errors, and key-rotation state. Desktop service logs can include message IDs, short client IDs, local app identifiers, and delivery outcomes, but are not automatically uploaded to us.

h. Website visits

This website is a static GitHub Pages site. It sets no tracking cookies and includes no advertising or analytics scripts. GitHub Pages, Cloudflare, and other network providers may process standard request information such as IP address, user agent, requested URL, and request time. The homepage requests the Material Symbols font stylesheet and font files from Google Fonts, so Google receives standard web-request information when those resources load. Store providers receive information only if you follow their links.

i. Crash, performance, integrity, and operational diagnostics

The Android and iOS apps include Firebase Crashlytics and Firebase Performance Monitoring. They can process device/app identifiers, device model, OS and app versions, stack traces, app state near a crash, startup/rendering measurements, and normalized relay-request timing. NotiSync's custom diagnostic fields are designed not to include private feature content, source apps, senders, or trusted-device identifiers. We use this data for reliability, not advertising or profiling. Android provides an in-app switch to disable this collection; the current iOS app enables it by default.

The broker verifies app integrity and records operational events needed to prevent abuse and diagnose delivery. These can include app ID, shortened or hashed client identifiers, endpoint, message or relay identifiers, outcome/rejection reason, timing, traffic size, and connection IP information visible to the hosting stack. The broker does not put decrypted feature payloads in these events.

4. What the relay server can and cannot see

The server cannot readThe server does handle (to deliver messages)
Notification source apps, titles, text, senders, conversations, actions, and filters · private icons and images · Run command arguments, working directory, terminal output, prompts, and responses · Seal commit payload, message, headers, working directory, and signature · SSH data to sign, process/destination context, and private keys · Screen Sharing pixels and control contents · private asset keys Encrypted message and asset blobs · sender and destination client IDs · message IDs, types, timing, and sizes · route identifiers and FCM/APNs push tokens · delivery urgency · random asset IDs · public key-epoch records · app-integrity results · short-lived delivery state · operational request and outcome logs · for relayed screens, relay/session identifiers, participants, channel, expiry, and frame type, sequence, fragment, and size metadata

General private messages use per-recipient HPKE (X25519) with AES-256-GCM and signed device records. Screen relay control uses a session-authenticated encrypted channel and video uses end-to-end AES-GCM records. The server handles ciphertext and the metadata listed above, not the decrypted feature content.

5. Permissions the app requests, and why

Android

iOS

6. Third-party services

NotiSync uses these services and optional integrations:

NotiSync does not include third-party advertising SDKs or Firebase Analytics, and none of the data it collects is used for advertising, ad targeting, or profiling.

7. Data retention

8. How your information is shared

We do not sell your personal information and we do not share it for advertising. Information is only ever transmitted to:

We may disclose information if required by law. What we can produce is limited to information in our custody, such as encrypted payloads, public key material, routes, app-integrity state, and operational/delivery metadata; we cannot decrypt the private feature content.

9. Security

NotiSync is designed around strong, modern cryptography:

No system is perfectly secure, but the architecture is built so that a compromise of the relay server does not expose your private feature content.

10. Your choices and control

11. Children

NotiSync is not directed to children and is not intended for use by anyone under the age of 13 (or the minimum age required in your country). We do not knowingly collect personal information from children.

12. International users

NotiSync can be used worldwide. Encrypted messages, delivery and diagnostic metadata, website requests, and optional third-party requests may be processed in countries where Google, Apple, Cloudflare, GitHub, or a provider you choose operates. Private NotiSync feature payloads remain end-to-end encrypted in transit through our relay, but content you deliberately send to OpenKeychain, Shizuku, or your configured OpenAI-compatible endpoint is processed by that selected integration under its own terms.

13. Changes to this policy

We may update this policy as the app evolves. When we make material changes, we will update the "Last updated" date above and, where appropriate, note the change in the app or on this site. Continued use of NotiSync after an update means you accept the revised policy.

14. Contact

Questions, concerns, or requests about your privacy? Email us at privacy@extrawdw.net.