Skip to main content

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 transcribe

What 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

The vowen 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.
Nothing is reachable from another machine, and no request leaves your computer. A few things the CLI deliberately cannot do:
  • Secrets are never returned. Anything that looks like an API key, token, secret, password or licence comes back as <redacted> from vowen settings get.
  • Only some settings can be written. vowen settings set accepts 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 delete and vowen notes delete exit 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.
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.
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.
How long to wait for the app to come up after the CLI wakes it. Defaults to 20s. Accepts Go duration strings: 5s, 1m, 500ms.
This is the launch wait only. It does not cap how long a transcription takes.

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

Run vowen 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