Skip to content
OpenScribe brand logo Docs

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 scopes openid, email, and profile.
  • Administrator allowlist: Sign-in is restricted to verified Google accounts listed in the server's OPENSCRIBE_ADMIN_EMAIL configuration. 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 users collection.
  • 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.readonly alongside openid, email, and profile using OAuth 2.0 Authorization Code flow with PKCE (S256).
  • OpenScribe uses calendar.readonly to 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:

  1. 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.
  2. 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 by OPENSCRIBE_TOKEN_ENCRYPTION_KEY (or a SHA-256 key derived from the server's secret configuration). Plaintext OAuth tokens are never returned by API endpoints.
  3. 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 video conferenceData.entryPoints), and attendee list (email, displayName, responseStatus, self).
  4. 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 event description fields 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_profiles and knowledge_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.

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 (CheckNoFinancialData and sanitizePersonMetadata) that blocks storing salary, income, tax, bank statement, or contract rate fields in people profiles and knowledge records.

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_KEY is configured on the server, GET /api/openscribe/search/suggestions sends 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, model jev-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.readonly is 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:

  1. 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_accounts row, its encrypted OAuth tokens (encrypted_token), and linked meeting_series records (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 meetings or people_profiles already created in your workspace unless deleted separately.
  2. 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.
  3. 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.openscribe entry in macOS Keychain Access.
  4. 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.

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/)