Last updated · 2026-05-17

swesee Privacy Policy

Every claim below maps to a specific, enforceable property of our shipped code — not to aspiration.

This policy describes what swesee does with your data. The macOS companion app (Swesee.app) and the shared wire-protocol package (swesee-core) are open source under MIT — the public artifacts you'd need to audit anything network-side that runs on your Mac. The iOS app itself ships as a closed-source App Store binary; what it does on the wire is fully described by the open swesee-core protocol.

What swesee is

swesee is an iOS app that connects to Swesee.app, a free macOS companion you install on your own Mac. The two pieces talk to each other over your local Wi-Fi network. swesee is a second screen for files and git status — nothing more.

Data we collect

None. swesee has no accounts, no analytics, no crash reporters, no advertising SDKs, and no telemetry of any kind.

We enforce this by shipping zero third-party SDKs that phone home. Our complete package dependency list, declared in project.yml and SweseeService/project.yml:

  • swesee-core — our own open-source wire-protocol types (no network code of its own).
  • swift-markdown — Apple's offline Markdown parser, used to render commit messages and README files on-device. Makes no network calls.
  • swift-snapshot-testing — test-only; never shipped in release builds.

We enforce the absence of analytics by greppable code: zero references to GoogleAnalytics, Firebase, Segment, Mixpanel, Amplitude, Crashlytics, Sentry, Bugsnag, Datadog, NewRelic, Heap, or PostHog appear anywhere in our source. Our App Store Privacy Nutrition Label declares "Data Not Collected" and our PrivacyInfo.xcprivacy declares NSPrivacyCollectedDataTypes as an empty array — the only API category we declare access to is NSPrivacyAccessedAPICategoryUserDefaults (reason CA92.1), used to remember in-app preferences such as your appearance setting on your own device.

Network connections swesee makes

swesee makes no outbound connections to any remote server. Every network operation is scoped to your local Wi-Fi network.

We enforce this by writing no HTTP client code. URLSession and URLRequest do not appear anywhere in the iOS app, the macOS service, or the shared wire-protocol package. The only network code path uses Apple's Network framework:

  • On iOS, an NWBrowser discovers Bonjour services of type _swesee._tcp on the local network.
  • On the Mac, an NWListener advertises the same Bonjour service type and accepts TCP connections from your iPhone or iPad.

Bonjour broadcasts stay on the link — they do not cross your router to the public internet. There are no analytics endpoints, no crash-report uploads, no third-party APIs, and no remote configuration fetches.

How we authenticate your devices on the LAN

Bonjour discovery alone is not authentication: anyone on your Wi-Fi can see that Swesee.app is running. To use the service, a device must complete a pairing handshake first.

We enforce the pairing boundary on the Mac side, before any file or git request is honored:

  • On a new connection, the macOS service starts in an unauthenticated state. Until a valid HandshakeRequest arrives, every other request frame is dropped and the TCP connection is closed.
  • A new device must present a six-digit code that the user reads off the menu-bar popover on the Mac. The code is one-time, time-limited, and consumed atomically; replay attempts fail.
  • On a successful pairing, the Mac mints a per-device token and stores it on disk at ~/.swesee/trusted-devices.json with file mode 0600 (owner-only). Future reconnects from that device present the token instead of a code.
  • The user can revoke a device at any time from the macOS menu-bar popover. Revocation deletes the device's token from the trust store; the next connect attempt from that device gets .invalidToken and must re-pair.

This handshake is implemented in MessageHandler.swift and TrustStore.swift in the macOS service; you can audit it directly in the open-source repo.

Tracking and advertising identifiers

swesee does not track you across apps or websites, does not request the App Tracking Transparency prompt, and does not read the device IDFA.

We enforce this with our privacy manifest and with grep-checkable source. PrivacyInfo.xcprivacy declares NSPrivacyTracking as false and NSPrivacyTrackingDomains as an empty array. The strings AdSupport, ATTrackingManager, and advertisingIdentifier do not appear anywhere in our source.

What stays on your devices

File contents, git history, and diff bytes travel from your Mac across your Wi-Fi network to your iPhone or iPad, are rendered on screen, and are not stored remotely. The iOS app caches recently-viewed data in memory for the duration of the session; the macOS service reads files on demand and does not maintain a copy of your repository contents.

The only data either side persists to disk is the pairing trust store: on the Mac, the per-device token list at ~/.swesee/trusted-devices.json (mode 0600); on iOS, your own device's token stored in the system Keychain so it survives reinstalls of the app.

Children

swesee is rated 4+. There is no advertising, no in-app purchases in v1.0, and no user accounts. We enforce this by importing no StoreKit framework, shipping no sign-in or sign-up surfaces, and collecting no information from anyone — child or adult. swesee is not directed at children, but because it collects nothing it raises no children's-privacy concern under COPPA or comparable laws.

Your rights under GDPR, CCPA / CPRA, VCDPA, CPA, CTDPA, UCPA, and TDPSA

These frameworks grant you rights to access, correct, delete, port, and restrict the personal data a service holds about you, and to opt out of its sale or sharing. Because swesee collects no personal data, there is nothing to access, correct, delete, port, restrict, sell, or share. We honor Global Privacy Control signals trivially: we never sold or shared anything to begin with, and there is no covered data category we could opt you back into.

If you believe we hold data about you despite the above, email support@swesee.com and we will respond within 30 days.

Third parties

We do not share your data with third parties because we do not collect your data. We use no third-party analytics, no crash-reporting service, no advertising network, no marketing platform, and no email service for in-app communication. Apple's App Store handles app distribution and TestFlight invitations under Apple's privacy policy; we receive only the aggregate, anonymized App Analytics metrics that Apple shows every developer (downloads, crashes attributed by Apple's own systems, and similar) and we cannot identify individual users from them.

Contact

Email support@swesee.com.

Changes

We will update this policy if our practices change. The "Last updated" date at the top of this page will reflect the current revision; the "Last reviewed" date below records the date of our most recent claim-by-claim audit against the shipped code.

Last reviewed: 2026-05-17