Skip to main content
Everything on this page is read from src/shared/plan-limits.js.

Quotas

What each kind means

The limit is checked against the number of manual transcriptions currently stored. It is not a counter that only goes up. But free users cannot delete transcriptions, so in practice nothing ever recycles a slot and the cap behaves as a lifetime total of 10.Enforced in the main process, in three places: the IPC handler that starts a manual transcription, the local CLI API server, and the watch-folder importer. There is no way to route around it from the UI, the CLI or a watched folder.
The counter stores the current date alongside the count and resets when the date rolls over. Enforced in the main process before each Command Mode call.The counter is stored in plaintext settings.json today.
These cap how many items you may have at once, not how many you may ever create. Deleting one frees a slot.They are enforced twice. Creating an item past the cap is refused up front by the main process with a paywall message. Separately, at the point each list is actually used, the list is trimmed to the cap and the extra items are silently suppressed rather than producing an error. The oldest items survive, sorted by creation time; built-in expansions and default tones are exempt and never count against the cap.That second layer is what you notice if a settings file arrives from another machine, or from a period when you had Pro: the items are still listed, but only the first few work.
Ten stored notes. This one is checked only in the renderer: the Notes page disables the Start Taking Notes button once you hit ten. There is no matching check in the main process, so paths that do not go through that button are not covered by it.
No hour-based cap applies to meeting recording, on either plan. You may see a 5-hour figure quoted elsewhere. It is not a limit you can hit: a 5-hour value exists in plan-limits.js and a checker sums durationSeconds across your stored notes, but nothing in the app ever writes durationSeconds, so the sum is always zero and the check never fires. It is deliberately left out of the table above. The real meeting-notes limit on the Free plan is 10 saved notes.

Features

Yes means available on that tier.
Custom AI instructions for dictation are free on both plans. The comment in the source is explicit: “Unlocked for everyone”. The separate custom-instructions field for meeting-note summaries is a different flag, and that one is Pro.
Free users cannot delete. deleteHistory is Pro-only, deliberately, so that quota slots cannot be recycled. It is enforced in the main process on the delete handlers for transcriptions, notes and the CLI, so there is no back door. If you are on the Free plan and hit the 10-transcription or 10-note wall, deleting will not clear it.

Flags that exist but are never checked

Four flags are declared in plan-limits.js and are never passed to a feature check anywhere in the app: notesIntegrations, integrationsMcpWebhooks, pauseUnpause and customUtility. They are listed above for completeness. The behavior they look like they describe is actually governed by other flags or by a quota:

Main process versus UI

Two different mechanisms, with different guarantees.
The main process resolves your plan from the licence state, then answers three kinds of question: is this feature allowed, is this count under the quota, and what does this list look like after trimming.On top of that, every settings write passes through a gate that refuses to enable a Pro-only boolean on the Free plan and replies with a paywall message. Turning one off is always allowed. A separate pass masks Pro-only booleans out of the settings object broadcast to the renderer, so a hand-edited settings.json full of true values does not make the UI look unlocked.This is the layer that cannot be bypassed by the CLI, by IPC, or by editing the settings file.
Some gates exist only in the renderer, as a disabled button or a Pro badge. The 10 saved notes cap is the clearest example: the Notes page disables Start Taking Notes, and there is no matching check in the main process.Renderer gates are a good user experience but not a security boundary.

Licence and devices

The device limit is enforced by the payment provider during activation, not by Vowen. This repository sends an activation request and reads the answer, so the number of activation slots cannot be verified from the code here. The figure of three comes from the in-app copy.

Settings reference

Which settings rows sit behind each of these gates.

Shortcuts

Alternative and multiple bindings are a Pro feature.