Security/Encryption Architecture

Encryption Architecture

Technical deep-dive into how Parrot Scribe secures your data

Section: SecurityUpdated August 11, 2026

Parrot Scribe stores session artifacts and the session metadata index encrypted at rest. Transcription and speaker processing use local models and do not send raw session content to a server. Licensing, device management, and model downloads use network services.

Root of Trust: Data Protection Keychain

Parrot Scribe generates a random 32-byte master secret and stores it as a synchronizable item in the macOS Data Protection Keychain.

  • Available when unlocked: macOS releases the item after the user unlocks the Mac.
  • iCloud Keychain carriage: If iCloud Keychain is enabled, Apple can carry the master secret to another Mac signed in to the same Apple Account.
  • 24-word recovery key: The recovery phrase reconstructs the same master secret without iCloud Keychain. If you choose Copy or Save, the app places the phrase on the pasteboard or writes an owner-only plaintext file at the location you select. Parrot Scribe does not send the phrase to its servers.
  • No Parrot Scribe key escrow: The app has no server-side copy of the master secret.

The current root is a software secret protected by the Keychain. Older libraries can contain key material bound to the original Mac until the portable-key migration completes.

Key Hierarchy and Separation

Parrot Scribe does not encrypt every artifact directly with the master secret:

  1. HKDF-SHA256 derives a key-encryption key from the master secret.
  2. That key uses AES Key Wrap to protect random per-session and storage-domain secrets in sidecar files.
  3. AES-256-GCM data keys are derived from those secrets with per-file salts and domain-specific labels.

Transcript, audio, comment, and speaker-bundle data keys are distinct, but the files for one session share the same underlying per-session secret. Exposing one derived data key does not expose the other domain keys; exposing the per-session secret exposes every domain in that session. Neither boundary protects an unlocked Mac from software running as the user.

Encryption at Rest

File artifacts

Transcript chunks, retained audio chunks, speaker embeddings, comments, and folder metadata use AES-256-GCM. The file formats store a nonce, ciphertext, and authentication tag. Additional authenticated data binds ciphertext to the relevant format or artifact context.

Session transcript and audio files are append-only encrypted containers. Chunks are independently authenticated, which supports bounded crash recovery without storing a plaintext transcript or playable audio file in the library.

Session metadata index

The SQLite session index is encrypted separately with SQLCipher and a 256-bit key. SQLCipher is not described here as AES-GCM; it has its own database encryption construction.

Plaintext boundaries

Encryption at rest does not mean data is never plaintext. Audio and transcript content must exist in process memory while Parrot Scribe captures, transcribes, searches, displays, exports, or plays it. Exporting or sharing can write plaintext to a destination you choose or temporarily to an owner-only directory; temporary files are removed during normal cleanup.

Local Data and Portability

Parrot Scribe does not automatically upload or sync session transcripts, retained audio, or session metadata. Licensing and device management send license and device information to hosted services, model downloads use external services, and content you explicitly export, share, or expose through the optional MCP server goes to the destination or authorized client you choose.

The root Keychain item is marked synchronizable. If iCloud Keychain delivers it, another Mac can decrypt post-migration artifacts only when you separately copy the encrypted library with its matching key sidecars. A copied session needs its session.key sidecar and the matching root from iCloud Keychain or recovery-key restore.

Legacy pre-migration artifacts can still require key material bound to the original Mac.

Deletion Boundaries

When you delete a session, Parrot Scribe first removes that session's live key material, then deletes its session directory and index row. In Storage v2, forgetting a speaker revokes and deletes every session in which that speaker appears, then deletes the speaker's embedding and index entry. This also deletes other speakers' content in those affected sessions.

Cryptographic deletion applies to current app-managed storage. A separate copy that still contains the old wrapped-key sidecar and matching root can still decrypt its ciphertext.

Further Reading