Install the CLI
One click from settings, or a single curl or PowerShell line
Command reference
Every command, flag, and example
MCP server
Give Claude Code and other agents access to your Vowen data
Manual transcription
The same import pipeline the CLI drives with
vowen transcribeWhat the CLI is
vowen is a small companion binary that talks to the Vowen desktop app. It is not a second copy of Vowen and it does not transcribe anything itself. Every command is a request to the app already running on your machine, so the CLI gets the same models you configured in the UI, the same dictionary and text replacements, the same plan limits, and the same data stores.
So the desktop app has to be installed, and something has to be running. If the app is closed when you type a command, the CLI wakes it in the background for you (see Launching the app below).
The CLI ships and versions independently of the desktop app. vowen --version and the app version are unrelated numbers.
How it connects
Thevowen command does not run Vowen. It talks to the copy already running on your machine, so
the app has to be open for any command to work.
- Secrets are never returned. Anything that looks like an API key, token, secret, password or
licence comes back as
<redacted>fromvowen settings get. - Only some settings can be written.
vowen settings setaccepts a fixed list of keys. Shortcuts, API keys, sync and account settings are not on it. The full list is in the command reference. - Deleting requires a paid plan.
vowen deleteandvowen notes deleteexit with code 5 on the Free plan.
The CLI connection is on by default.
vowen settings set cliServerEnabled false turns it off,
taking effect the next time the app starts. With it off, no vowen command can reach the app.What you can do with it
Full syntax for all of them is on the command reference page.
Global flags
These three flags work on every command.--json: machine-readable output
--json: machine-readable output
Prints the raw API response as indented JSON instead of the human-readable table. Use it in scripts. The table layout is not a stable contract; the JSON shape is what the app actually serves.
vowen watch never pretty-prints. It always emits one compact JSON object per line (NDJSON), so it can be piped straight into a line-oriented consumer.--no-launch: never start the app
--no-launch: never start the app
By default, a command issued while the app is closed launches it.
--no-launch turns that off. If no live app is found, the command fails immediately with exit code 3.Use it in cron jobs, CI, and status checks where silently starting a desktop app would be the wrong behavior.--timeout: how long to wait for the app
--timeout: how long to wait for the app
How long to wait for the app to come up after the CLI wakes it. Defaults to This is the launch wait only. It does not cap how long a transcription takes.
20s. Accepts Go duration strings: 5s, 1m, 500ms.Launching the app
When the app is not running and--no-launch was not passed, the CLI fires the vowen://cli/wake deeplink and polls until the API answers or --timeout expires. On macOS it launches without stealing focus, so a command typed in your terminal will not pull a window in front of you.
The deeplink can only wake the app. It carries no data and cannot read or write anything, so a link clicked in a browser cannot reach your history.
Exit codes
The CLI exits 5 when the app answers
upgrade_required, which happens when you delete history or notes, exceed the free lifetime transcription limit, or queue a second transcription while one is already running.
Handling exit 3 in a script
Diagnostics
Runvowen doctor first when something is not working. It prints the CLI version, your platform, whether it can reach the app, and then the app version, plan, and active engine and model. It never launches the app, so a “not reachable” line is a genuine signal rather than a race.
Next steps
Installation
Install, update, uninstall, and troubleshoot
Commands
The complete reference