Skip to main content
Local transcription runs on your device and makes no network call. Everything below is what does leave your machine, where it goes, and where Vowen stores your data on disk.

What runs locally

What leaves your machine

Audio and text sent to a cloud transcription or AI provider go directly from your machine to that provider. Vowen does not proxy or store them.

Analytics

Vowen sends product analytics to PostHog in released builds. There is currently no way to turn it off. No setting, no flag, no environment variable. What is sent. A persistent random identifier generated on first launch, your app version, platform, architecture, and OS version. Events cover things like completing an onboarding step, changing your transcription model, downloading a model, triggering a workflow, finishing a meeting note, finishing a Command Mode run, reaching a word-count milestone, and being active on a given day. Crashes and caught exceptions are also reported, including the error message and stack trace. Your name and email are attached to every event. Onboarding asks for a name and will not let you continue without one. Whatever name and email you set are sent as properties on every analytics event and every exception report. What is not sent. Transcription text, audio, meeting notes, summaries, API keys, and microphone device names are not included in analytics events. The crash report for the local transcription server sends a settings snapshot that deliberately excludes hotkeys, API keys, and device labels, reporting only whether a microphone is pinned and how long the priority list is.
If sending your name and email alongside product usage events is not acceptable to you, there are only two mitigations. Leave the email field blank in Settings > Account (a name is required, an email is not), or block us.i.posthog.com at your network or firewall level.

API key storage

API keys are stored inside settings.json, in your Vowen data directory, as strings prefixed with enc:. They are encrypted with Electron’s safeStorage, which derives its key from the macOS Keychain or from Windows DPAPI. They are not stored as individual Keychain or Credential Manager entries, so you will not find them by searching Keychain Access.
If safeStorage reports that encryption is unavailable, the keys are written to settings.json in plaintext. On Linux, safeStorage may fall back to a basic_text backend whose key is not meaningfully secret; Vowen logs a warning in that case.
Keys are never sent to Vowen servers. They go only to the provider they belong to. The fields covered by this encryption are your AI provider keys, cloud transcription keys, webhook signing secret and custom webhook headers, and MCP server tokens.

Pass screen as context

macOS only. Opt-in. Off by default. When enabled, and only while AI enhancement is running, Vowen reads the text of the window you are focused on using the macOS Accessibility API. It does not take a screenshot and does not need Screen Recording permission. It does not send that text to your AI provider. It extracts candidate proper nouns from it, ranks them against what you just said, and injects only the surviving names into the enhancement prompt. That gets spellings right, so a colleague’s name or a product name on screen comes out correctly. The toggle is in Configure your AI, nested under “Enhance transcription”. It only appears once enhancement is on and a provider is connected.

Command Mode screenshots

Command Mode can attach a screenshot of your primary display to the request it sends your AI provider. The default is off, and there are checkboxes for it in Configure your AI and on the Command Mode page. When it is on, Vowen captures a full JPEG of the primary display, writes it to a temporary file, sends it to the provider, and deletes it after the call.
This is a screenshot of your whole primary display, not just the app you are working in. Anything visible at that moment goes with it: another window, a notification, a password manager. Leave it off unless you need it, and use region capture if you only want to send part of the screen.

Auto-translate

Auto-translate to English does not always run on your own machine.
  • Local Whisper models translate natively, inside the model, offline.
  • Cloud models and Parakeet cannot translate themselves, so Vowen sends the transcribed text to Google Translate after transcription and pastes the result.
So a Parakeet user, running a fully local transcription model, has their transcribed text sent to Google when auto-translate is on. Neither the toggle in Settings > Language nor the Auto-translate to English item in the tray menu names Google. Auto-translate is off by default and is a Pro feature. Publishing a meeting note to a share link uploads a fixed set of fields to Vowen’s share service, where anyone with the link can read them without a password. Published: the note title, its date, the summary, the transcript segments with their timings, speaker labels and per-segment speaker names, and tag names. A rendered social preview image built from the title and summary is also uploaded. Never published: the audio recording, the video recording, screenshots, your “My Notes” content, Ask AI conversations, marked important moments, speaker voice fingerprints, your Obsidian folder path, and the summary template you used. Share pages are marked noindex, nofollow, noarchive so search engines do not list them. Revoking a link takes the page down. Because the note body is stored in cleartext on the service, treat a share link as publishing, not as private sharing. See Sharing notes.

Where your data lives

Everything is under a single directory:
  • macOS: ~/Library/Application Support/vowen/
  • Windows: %APPDATA%\vowen\
The directory name is lowercase vowen on both platforms.
  • settings.json: every setting, plus your API keys as enc: strings
  • licence.json: your Pro licence key and activation state
  • auth.json: sign-in state
  • vowen.db: the SQLite database
  • transcription-history.json: dictation history
  • manual-transcriptions.json: files you transcribed on the Transcribe page
  • meeting-notes.json: meeting notes
  • memory-items.json and memory-files/: AI memory items and the files you added
  • chat-threads.json: Ask AI and Chat with Notes conversations
  • note-images/: images embedded in notes
  • vocabulary-usage.json: how often each dictionary entry is hit
  • lifetime-stats.json: total words and dictations
  • daily-activity.json: the activity graph on Home
  • models/: downloaded transcription models. This is by far the largest folder
  • screenshots/: Command Mode screenshots, deleted after each request
  • meeting-screenshots/: screenshots taken during meeting notes, kept with the note
  • audio-peaks-cache/: waveform data for the audio player
  • sync-log.jsonl, sync-meta.json, sync-backups/, sync-device-id.txt: cloud sync state
  • webhook-logs.json: webhook delivery history
  • watch-folder-index.json: watched folder state
  • analytics-id.txt: the random identifier sent to PostHog
  • analytics-daily-words.json, analytics-word-milestones.json, analytics-last-active-date.txt
  • logs/: rotating console logs
  • error-recovery/: audio kept aside when a transcription fails, so it is not lost
Outside that directory:
  • ~/Documents/Vowen Recordings/: .wav files, if Save audio recordings is on in Settings > Recording
  • ~/.local/bin/vowen (macOS) or the equivalent on Windows: the CLI shim, only if you installed it from Settings > Developer
Deleting the data directory removes everything Vowen knows about you locally. See Uninstalling.

Vowen is not fully offline

Even with only local models and no cloud provider configured, Vowen makes network requests:
  • It checks for a new version every 6 hours against Vowen’s asset host, and again whenever you press Check for Updates
  • It fetches a model catalog at startup, so new AI models appear without a release
  • It sends analytics to PostHog, as described above
Transcription with a local model is genuinely offline. The application around it is not.

Permissions

What each system permission is used for

Cloud sync

Sync through your own storage account

Sharing notes

What a public share link publishes

Models and engines

Which engines run locally