OpenScribe Privacy Policy
Last updated: November 10, 2026
This Privacy Policy explains how OpenScribe (https://scribe.akyonlabs.com), operated by Akyon Labs, collects, uses, stores, and shares information when you sign in, connect Google Calendar, capture meetings with the macOS app or Chrome extension, and use OpenScribe workspace features. It supplements the umbrella Akyon Labs Privacy Policy with product-specific details for OpenScribe.
1. Account sign-in and access
OpenScribe is a private, owner-scoped meeting workspace.
- Google Sign-In scopes: When you sign in to the OpenScribe web application or macOS companion (
POST /api/collections/users/auth-with-oauth2), OpenScribe requests only the non-sensitive OpenID Connect scopesopenid,email, andprofile. - Administrator allowlist: Sign-in is restricted to verified Google accounts listed in the server's
OPENSCRIBE_ADMIN_EMAILconfiguration. If an email address is not on the allowlist, OpenScribe rejects sign-in and prevents new account creation. Existing account records are not automatically deleted when access is removed. - Account data stored: For authorized users, OpenScribe stores your user ID, email address, display name, and avatar URL in the PocketBase
userscollection. - macOS session storage: In the native macOS app, your PocketBase session token is held in memory by default (
rememberSignIn = false). It is written to the macOS login Keychain (com.akyonlabs.openscribe) only if you explicitly enable Remember sign-in on this Mac.
2. Google Calendar integration
Connecting Google Calendar is optional and is initiated only when an authenticated user clicks Connect Google Calendar (POST /api/openscribe/calendar/connect).
Scope requested and read-only boundary
- OpenScribe requests
https://www.googleapis.com/auth/calendar.readonlyalongsideopenid,email, andprofileusing OAuth 2.0 Authorization Code flow with PKCE (S256). - OpenScribe uses
calendar.readonlyto list events from the connected calendar. The default is your primary calendar, and a connection can specify another calendar you can access. - OpenScribe never creates, modifies, or deletes Google Calendar events, invitations, or calendar settings.
Calendar data accessed and stored
When you connect a Google Calendar account or trigger a calendar sync (GET /api/openscribe/calendar/events?sync=true, which queries a bounded window defaulting to 7 days in the past through 14 days in the future), OpenScribe processes the following fields:
- Connected account record (
calendar_accounts): Your Google account subject ID (google_sub), email address, display name, connected calendar ID, granted OAuth scopes, sync status, last sync timestamp, and encrypted OAuth token payload. - Token encryption at rest: OAuth access and refresh tokens are serialized and encrypted at rest in SQLite using AES-256-GCM with a random 12-byte nonce (
encrypted_token), keyed byOPENSCRIBE_TOKEN_ENCRYPTION_KEY(or a SHA-256 key derived from the server's secret configuration). Plaintext OAuth tokens are never returned by API endpoints. - Event display fields: Event ID (
id), status (cancelled events are skipped), title (summary), start and end times (start,end), meeting join URLs (hangoutLink,htmlLink, and videoconferenceData.entryPoints), and attendee list (email,displayName,responseStatus,self). - Derived workspace context persisted during sync:
- Recurring meeting series (
meeting_series): If an event belongs to a recurring series (recurringEventId), OpenScribe stores the series identifier and title under your user account so recurring meetings can share longitudinal context. - Reference links (
meeting_notes): Non-conferencing HTTP(S) links found in recurring eventdescriptionfields are saved as owner-scoped link notes (provenance = "calendar_description",ingested_status = "url_only") to surface relevant agendas or documents before a call. - Participant profiles (
people_profilesandknowledge_entities): Attendee email addresses and display names are matched by email address into your owner-scoped people directory so you can view participant context before and across meetings. OpenScribe never merges people records by display name alone.
- Recurring meeting series (
3. Meeting capture and storage
When you record or import a meeting using the OpenScribe macOS app, Chrome Meet companion extension, or web workspace:
- Local-first macOS capture: Audio tracks (
microphone,system, and per-participant streams where available), packet timing logs, transcript JSONL files, notes, attachments, and screenshots are written locally on your Mac under~/Library/Application Support/OpenScribe/recordings/<sessionId>/. - Workspace synchronization: When signed in, meeting metadata, participant records, transcript segments, user notes, uploaded attachments or screenshots, and extracted knowledge items (entities, details, evidence links, tasks, tags, and suggestions) are synced to your owner-scoped records in the OpenScribe PocketBase SQLite database.
- Financial data guardrail: OpenScribe enforces a code-level guardrail (
CheckNoFinancialDataandsanitizePersonMetadata) that blocks storing salary, income, tax, bank statement, or contract rate fields in people profiles and knowledge records.
4. External AI, transcription and search
OpenScribe does not sell your personal data or Google user data, and does not use your data for advertising.
When you use live transcription, meeting AI features or intelligent search, OpenScribe sends bounded data to the services configured for your workspace. Enabled workflows may also run automatically after a meeting ends:
- Speech-to-Text (ASR) providers: Depending on the selected transcription provider, live or recorded meeting audio is streamed to ElevenLabs (
scribe_v2_realtime), OpenAI (gpt-4o-mini-transcribe,gpt-4o-transcribe,gpt-live-transcribe), Google Gemini (models/gemini-3.5-transcribe-live,models/gemini-2.5-flash-native-audio-latest), or a configured OpenAI-compatible STT endpoint to produce transcript segments. - Meeting intelligence providers: When you generate meeting summaries, action items, Q&A answers, tags, or people and project knowledge updates, OpenScribe sends bounded prompts to the configured OpenAI, Anthropic, or Google Gemini model. Prompts may include meeting titles, participant names and emails, transcript segments, user notes, attachment text or OCR output, selected meeting screenshots, and recurring series summaries.
- Typed search candidate scoring: When
TYPESAFE_API_KEYis configured on the server,GET /api/openscribe/search/suggestionssends your search query string and up to 30 owner-scoped candidate labels and subtitles (person names, emails, and short briefs, project names and briefs, tag names and descriptions, and connected calendar account emails and display names, never raw transcripts or audio) to Typesafe System One (https://api.typesafe.ai/v1/systemone, modeljev-1.14.0) to rank navigation matches. - User-authorized MCP clients: If you explicitly authorize an external Model Context Protocol (MCP) client (such as Claude, ChatGPT, Codex, or Cursor) through OpenScribe's OAuth 2.1 + PKCE flow (
/api/openscribe/mcp), that client can access the owner-scoped data permitted by the scopes you approve until its grant expires or is revoked.
Each external AI or transcription provider processes data sent to its API under the workspace administrator's account and that provider's respective API data-handling terms.
5. Google API Services User Data Policy (Limited Use)
OpenScribe's use and transfer to any other app of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements:
- Google Calendar data accessed via
https://www.googleapis.com/auth/calendar.readonlyis used only to display your upcoming and recent meetings, link recurring meeting series, surface event description links, match meeting attendees to your owner-scoped workspace records, and support user-requested meeting preparation and intelligence workflows. - OpenScribe does not transfer Google user data to third parties except as necessary to provide these user-facing workspace features (such as the administrator-configured AI, search, and hosting providers described in Section 4), to comply with applicable law, or with your explicit authorization (such as an OAuth 2.1 MCP grant you approve).
- OpenScribe never uses or transfers Google user data for serving advertisements, creditworthiness checks, or data brokerage.
6. Retention, disconnection and deletion
You control your connected accounts and workspace artifacts through the following mechanisms:
- Disconnect a Google Calendar account:
- In the OpenScribe web app (Calendar or Settings), you can disconnect any linked Google account at any time (
DELETE /api/openscribe/calendar/accounts/{id}). - Disconnecting immediately deletes the
calendar_accountsrow, its encrypted OAuth tokens (encrypted_token), and linkedmeeting_seriesrecords (CascadeDelete: true) from the OpenScribe database. - You can also revoke OpenScribe's access at any time from your Google Account Permissions page.
- Disconnecting a calendar account stops all future calendar syncs for that account, and retains any
meetingsorpeople_profilesalready created in your workspace unless deleted separately.
- In the OpenScribe web app (Calendar or Settings), you can disconnect any linked Google account at any time (
- Delete workspace notes, attachments, tags, knowledge items, and MCP grants:
- You can delete individual notes (
DELETE /api/openscribe/notes/{noteId}), attachments (DELETE /api/openscribe/attachments/{attachmentId}), tags (DELETE /api/openscribe/tags/{id}), knowledge details (DELETE /api/openscribe/knowledge/details/{detailId}), knowledge tasks (DELETE /api/openscribe/knowledge/tasks/{taskId}), and external MCP OAuth grants (DELETE /api/openscribe/oauth/grants/{id}) directly from the web application.
- You can delete individual notes (
- Delete local macOS recordings and Keychain credentials:
- On macOS, you can delete any local recording bundle at any time by removing its folder under
~/Library/Application Support/OpenScribe/recordings/<sessionId>/. - You can clear saved macOS sign-in credentials by signing out in the macOS app or removing the
com.akyonlabs.openscribeentry in macOS Keychain Access.
- On macOS, you can delete any local recording bundle at any time by removing its folder under
- Full meeting or account deletion:
- Synced
meetings,people_profiles, and user account records are retained until explicitly deleted. Removing sign-in access does not automatically erase those records. Server backups and data already processed by external providers have separate retention schedules. - To request deletion of specific synced meetings, people profiles, or your entire OpenScribe workspace account, contact your workspace administrator or email Akyon Labs support at
fatihcagatayakyon@gmail.com.
- Synced
7. Contact
For questions about this Privacy Policy, Google OAuth data access, or data deletion requests, contact:
- Email:
fatihcagatayakyon@gmail.com - Organization: Akyon Labs (
https://akyonlabs.com/privacy/) - Application: OpenScribe (
https://scribe.akyonlabs.com/docs/privacy/)