Privacy Policy
The short version: Secret Store collects nothing about you — no analytics, no telemetry, no tracking, no account. There is no Secret Store server. Your secrets are stored in Apple’s iCloud Keychain, where they are end-to-end encrypted by Apple and synced only between your own devices. We never see them, and the app has no network access of its own, so it cannot transmit anything anywhere.
If that’s enough for you, you’re done. The rest of this page explains the specifics.
What we don’t do
Secret Store does NOT:
- Collect personal information of any kind
- Track usage, behavior, sessions, or feature engagement
- Send telemetry, analytics, diagnostics, or beacons to any server
- Use third-party analytics services (no Google Analytics, no Mixpanel, no Amplitude, no Firebase, no Segment, no Sentry, no anything)
- Include advertising SDKs, ads, sponsored content, or affiliate links
- Sell, share, or rent any data — we have none to sell
- Require an account, login, registration, or email address
- Operate a Secret Store server, API, or upload endpoint of any kind
- Fingerprint your device, network, or hardware
This isn’t a “best effort” promise. The Secret Store app has no network entitlement at all (see “App Sandbox and permissions” below), so the operating system itself prevents it from making network connections — there is no channel through which it could phone home. You can verify this independently; see “Verifying these claims.”
Your secrets and where they live
The secrets you save — API keys, recovery codes, private notes, SSH keys, GPG keys, and the like — are stored as items in Apple’s iCloud Keychain, the same end-to-end encrypted keychain that holds your Safari passwords.
- End-to-end encrypted by Apple. Each item is encrypted on your device before it is stored or synced. Apple’s iCloud Keychain provides the encryption and the key management. The encrypted data is the only form that ever leaves your device.
- Zero vendor cryptography. Secret Store does not implement, wrap, or layer its own encryption over your secrets, and it does not derive or hold any keys. The entire confidentiality guarantee belongs to Apple’s iCloud Keychain — there is no homegrown scheme to trust.
- We never see them. Because there is no Secret Store account and no Secret Store server, your secrets never pass through any system we operate. They move directly between your own devices via Apple’s infrastructure.
- You control them. Deleting a secret in the app removes the underlying keychain item; that deletion syncs to your other devices like any other change.
Secret Store’s keychain items live in a dedicated keychain access group (com.coreydaley.secretstore) and are not readable by other apps.
iCloud Keychain sync (handled by Apple)
Sync is performed by Apple’s iCloud Keychain, not by Secret Store. It applies to your devices signed into the same Apple Account with iCloud Keychain enabled.
- The sync channel, its encryption, and its servers are Apple’s. Your use of it is governed by Apple’s Privacy Policy and your iCloud terms.
- If you turn iCloud Keychain off for your Apple Account, items remain on the local device and do not sync.
- Secret Store has no visibility into and no control over this transport beyond writing and reading its own keychain items.
What stays on your device
A small amount of non-secret app state is stored locally so the app works correctly, in Secret Store’s sandbox container (~/Library/Containers/com.coreydaley.secretstore/):
- Your preferences — your crash-reporting choice (whether Secret Store scans for local crash reports) and a marker so a given crash is only ever offered once, plus standard macOS window state. Stored in standard app preferences; never transmitted.
- Diagnostics shown in-app — the Diagnostics window displays local status such as when your secrets last changed and any quarantined/orphaned items. This is read on demand and shown to you only; nothing is sent anywhere.
Secret Store never writes your secret values to logs. Decoded secret values are treated as non-printable and do not appear in the unified log, in print/NSLog output, or anywhere on disk outside the keychain.
The privacy lock
Secret Store can hide secret values behind a lock when the app moves to the background, when your screen locks or sleeps, after an inactivity timer, or on demand. Unlocking uses your device’s biometry or passcode (via the system LAContext authentication prompt) — Secret Store never sees or stores that biometry or passcode.
This lock is a privacy screen: it keeps values from being shown on screen or captured in window thumbnails. The cryptographic protection of the stored data is provided separately by iCloud Keychain and your device passcode/biometry.
App Sandbox and macOS permissions
Secret Store runs under Apple’s App Sandbox with Hardened Runtime enabled, and requests the least privilege it can:
com.apple.security.app-sandbox— full sandbox enabledkeychain-access-groups— access to its own keychain group only, so it can store and read your secrets in iCloud Keychaincom.apple.security.files.user-selected.read-only— read-only access to a single file you explicitly pick, used only when you import a secret value from a file. This grants no ambient filesystem access.
Secret Store has NO entitlement for:
- Outgoing or incoming network connections (the OS prevents it from making network requests)
- Camera, microphone, contacts, calendar, photos, or location
- Bluetooth, USB, or hardware devices
- Apple Events / scripting other apps
Apple Privacy Manifest
Secret Store ships an Apple Privacy Manifest (PrivacyInfo.xcprivacy) that declares:
- No tracking (
NSPrivacyTracking= false) and no tracking domains - No collected data types — the app collects nothing
- No Required Reason API usage declared, and no third-party SDKs (so no third-party privacy declarations apply)
Third-party services and SDKs
Secret Store uses no third-party services and bundles no third-party analytics, advertising, or telemetry SDKs. It is built on Apple’s own frameworks (SwiftUI, the Security framework / Keychain Services, Local Authentication) plus the app’s own first-party Swift code. There are no cloud-storage integrations beyond Apple’s iCloud Keychain, no authentication providers, and no remote configuration or feature-flag services. Purchases and any receipt validation are handled by Apple’s App Store, not by us.
Marketing website (secretstore.app)
This website uses Cloudflare Web Analytics — a privacy-preserving analytics service that uses no cookies, collects no personally identifiable information, and does not track you across other sites (GDPR/CCPA compliant without a consent banner). You can block the static.cloudflareinsights.com domain in your browser to opt out of the aggregate counts; nothing on the site depends on it.
The website sets no tracking cookies, runs no other analytics, and shares no data with third parties.
Children’s privacy
Secret Store is not directed at children under 13 and does not knowingly collect any information from any user, regardless of age. The “no data collection” stance applies universally.
Your rights under GDPR, CCPA, and similar regulations
Because Secret Store collects, stores, and transmits no personal data about you, requests under GDPR, CCPA, and similar regulations (access, deletion, portability) are straightforward: we hold nothing about you to access, delete, or port. Your secrets are under your own control inside your iCloud Keychain — you can view or delete them in the app at any time, and changes sync across your devices.
Changes to this policy
If this policy changes, the change will be reflected here with an updated “Last updated” date below, and any material change to what Secret Store collects, stores, or transmits will also be noted in the app’s release notes.
Verifying these claims
You don’t have to take our word for the no-network claim:
- Open Activity Monitor → Network while using Secret Store — it should show no network traffic from normal use.
- Use a third-party network monitor such as Little Snitch or LuLu to watch for outbound connection attempts. Secret Store makes none.
- Inspect the app’s entitlements:
codesign -d --entitlements - /Applications/SecretStore.app— there is nocom.apple.security.network.client(or…network.server) entry, so the system refuses network connections regardless of what’s in the binary. The entitlements are the binding constraint; everything else is corroboration.
If you find any network activity from Secret Store that contradicts this policy, email corey@secretstore.app and we’ll treat it as a P0 bug.
Contact
Privacy questions, concerns, or correction requests:
- Email: corey@secretstore.app — please prefix the subject with “Privacy:” so it routes correctly
- Postal contact available upon request for jurisdictions that require it
The developer is Corey Daley, operating as an individual Apple Developer (not a corporate entity). Responses are best-effort and typically arrive within a few business days.
Effective date: 2026-06-15 Last updated: 2026-06-15
This policy was written by hand to be as clear as possible. If anything here is unclear, that’s a bug — let us know.