Scribio is a local-first macOS app. Your meeting audio, transcripts, voice profile, and face embeddings are processed and stored entirely on your Mac. Nothing audio-related is ever transmitted off your device. The only data that may leave your Mac is (a) optional encrypted sync to your own iCloud account between your own devices, and (b) participant identity metadata fetched from Zoom or Microsoft 365 if you explicitly opt in to those integrations.
| Data | Where it lives | Why |
|---|---|---|
| Meeting audio recordings | Local disk (sandboxed app container) | Source for transcription |
| Transcripts (text + speaker labels + timestamps) | Local SQLite database (GRDB) | The product |
| Voice profile embeddings (256-dim vectors) | Local database, encrypted at rest with keys in macOS Keychain (Secure Enclave) | Speaker identification across meetings |
| Face embeddings (512-dim vectors from camera frames) | Local database, AES-GCM encrypted at rest, key in Secure Enclave. Raw video frames are discarded immediately after embedding extraction. | Speaker identification when a camera is on |
| Calendar attendee names + emails | Local database | Speaker name suggestions for calendar-linked meetings (read via the macOS Calendar permission) |
| Contact identifiers | Local database (only the CNContact.identifier reference, never the name/email/phone/photo) | iOS-only feature for matching meeting participants to your contacts (deferred from v1) |
If you have iCloud enabled on your Mac, Scribio uses Apple's CloudKit service to sync transcripts, summaries, tasks, and meeting metadata between your own Macs and (in a future iOS phase) your iPhones / iPads. This sync is end-to-end encrypted by Apple, runs only between your own Apple-ID-linked devices, and never reaches Scribio's servers (we don't have any). Face embeddings are never synced — biometric data stays device-local.
If you connect Scribio to your Zoom account, Scribio fetches the
post-meeting participant roster (display name, email, role) from
GET /past_meetings/{meetingID}/participants via Zoom's REST API.
The audio of the meeting is never sent to Zoom. We send Zoom only
the meeting ID, our OAuth credential, and request the roster. Zoom's privacy
policy applies to that exchange:
https://zoom.us/privacy.
Same shape as the Zoom integration but for Microsoft Teams: post-meeting
attendance reports are fetched via
GET /v1.0/users/{userID}/onlineMeetings/{meetingID}/attendanceReports/{reportID}.
Audio never leaves your device. Microsoft's privacy terms apply to the metadata
exchange: https://privacy.microsoft.com/.
Scribio runs all language-model inference on-device by default (MLX-Swift, Apple Silicon ANE/GPU). If you opt into an external AI service (e.g. Anthropic Claude, OpenAI), only the prompt content you choose to send is transmitted, and only to the service you authorise. The default setting keeps everything on-device.
If you opt into crash reporting, Scribio transmits scrubbed crash logs over HTTPS. Logs are stripped of transcript text, speaker names, audio file paths, and other PII before transmission. Default: off.
Voice and face embeddings are special categories of personal data under EU/UK GDPR and "biometric information" under California CCPA. Scribio handles them as follows:
kSecAttrAccessibleWhenUnlockedThisDeviceOnly).biometric_consent_log table for GDPR records-of-processing-activity compliance.Because Scribio stores your data on your own device, most data-subject rights (access, rectification, deletion, portability) are exercised directly through the Scribio app:
For questions about your data or to request deletion of any data we may have received via crash reporting (if you opted in), email sacco66@gmail.com.
Scribio is not directed to children under 13 (US) or 16 (EU/UK). We do not knowingly process personal data of children. If you believe a child has provided personal information to Scribio, contact us and we will assist with deletion.
Material changes to this policy will be reflected in the "Last updated" date at the top and announced in the Scribio app's release notes. Continued use of Scribio after the effective date of a change constitutes acceptance.
Giovanni Sacco · Scribio · sacco66@gmail.com