Privacy Policy
Effective March 3, 2026
Mirage ("we", "our", "the app") is a window and desktop streaming application developed by Ethan Lipnik. This policy describes what information Mirage collects, how it is used, and the choices you have.
Streaming Data
Screen content, audio, and input events are streamed directly between your devices over your local network or an encrypted peer-to-peer connection. Mirage does not route streaming data through external servers, and no screen content is stored or recorded by the app at any point.
When encryption is enabled, all video, audio, and input payloads are encrypted in transit using per-session key derivation with AES-256-GCM.
iCloud
Mirage uses Apple's CloudKit to enable automatic device discovery and trust between devices signed in to the same iCloud account. The following data may be stored in your private iCloud container:
- Device identifiers and host names for discovery
- Identity keys for establishing trust between your devices
- Hardware metadata hints used for device icons
This data is stored in your personal iCloud account and is governed by Apple's iCloud privacy policies. You can remove it at any time from within the app or through iCloud settings.
Subscriptions
Mirage Pro subscriptions are processed through the App Store and managed via RevenueCat. RevenueCat receives:
- A pseudonymous correlation identifier (one-way hash of CloudKit record ID when available, otherwise a one-way hash of a local Mirage device identifier)
- Subscription status and purchase history
- Non-personally-identifiable correlation metadata (build identifiers, hashed device keys)
We do not receive or store your payment details. All billing is handled by Apple.
Crash Reporting
Mirage uses Sentry for crash and error reporting. The level of diagnostic data sent is configurable:
- None: no diagnostics are sent
- Crashes Only: only crash reports are sent
- All Errors: crashes and non-fatal errors are sent
When enabled, crash reports may include device model, OS version, app version, crash stack traces, curated breadcrumbs, and the same pseudonymous correlation identifier used by analytics and subscriptions. Raw iCloud record identifiers and raw message payloads are not forwarded. Nightly builds default to "All Errors" to help improve pre-release quality.
Analytics
Mirage uses PostHog US Cloud for privacy-preserving usage analytics. When Anonymous Analytics is enabled, Mirage sends feature usage events such as connection attempts/outcomes, stream start/stop outcomes, and session-duration signals (for example remote streaming duration), using the pseudonymous correlation identifier as PostHog's distinct ID. Analytics data is used to understand adoption, identify stuck points, and prioritize development.
Data We Do Not Collect
- We do not collect, transmit, or store the contents of your screen
- We do not track your location
- We do not sell, share, or monetize your personal data
- We do not use advertising SDKs or behavioral tracking
Third-Party Services
Mirage integrates the following third-party services, each with their own privacy policies:
Your Choices
You can control the diagnostic data Mirage sends by adjusting the diagnostics setting within the app. You can remove your iCloud discovery data from within the app or by managing your iCloud storage through System Settings. Subscription management is available through the App Store.
Children's Privacy
Mirage is not directed at children under the age of 13. We do not knowingly collect information from children.
Changes to This Policy
We may update this privacy policy from time to time. Material changes will be communicated through the app or this page.
Contact
If you have questions about this privacy policy, please contact [email protected].