--json, --no-launch, --timeout) and the exit codes.
All commands
Your data
history: list recent items
history: list recent items
[processing] or [error] appended where relevant. When more results exist than were printed, a footer tells you how many.search: full-text search
search: full-text search
read to get the full text of a result.read: print one item's text
read: print one item's text
delete: remove an item
delete: remove an item
rm, remove. Works on dictations, transcriptions, and meeting notes.stats: usage statistics
stats: usage statistics
export: bulk export
export: bulk export
## Title heading per item with id, type, and date as a small metadata list, the body text, and a ### Summary section where one exists.watch: stream new items
watch: stream new items
watch started are not replayed, and items still processing are held back until they settle, so you never get a half-finished transcript. If the app restarts mid-watch (which rotates the auth token), watch reconnects on its own instead of dying.Meeting notes
All of these live undervowen notes.
notes list: browse notes
notes list: browse notes
ls. Newest first.notes read: print a note
notes read: print a note
notes read prints the note’s main body, which for an app-generated note is its AI summary. A title line appears above it when the note has one.notes create: create a note from text
notes create: create a note from text
--text, --file, or piped stdin, in that order of precedence.notes import: audio or video into a meeting note
notes import: audio or video into a meeting note
--no-wait the CLI polls the note and shows elapsed time on stderr until it settles.notes regenerate: rebuild a summary or transcript
notes regenerate: rebuild a summary or transcript
--transcript instead re-runs transcription against the note’s stored audio, which produces a fresh summary as well.--summary and --transcript is rejected, since --transcript already regenerates the summary.notes update: edit a note
notes update: edit a note
notes delete: remove a note
notes delete: remove a note
rm, remove.notes start / stop / pause / resume: control a recording session
notes start / stop / pause / resume: control a recording session
notes start does not report success until it has confirmed a session is genuinely live. Microphone capture happens inside the app window, so the CLI polls status for up to 15 seconds. If nothing started, it fails with a message pointing you at the Vowen window; the cause is usually a missing microphone or screen permission.Transcription
transcribe: transcribe files and wait
transcribe: transcribe files and wait
==> file (id …) header.import: queue files without waiting
import: queue files without waiting
transcribe --no-wait, with friendlier output. It prints the queued id for each file and reminds you how to follow along.vowen import produces transcriptions. vowen notes import produces meeting notes with an AI summary. Different commands, different destinations.models: list available models
models: list available models
ID column as the value for --model on transcribe and notes import.Dictionary, threads, and settings
tag: tag an item
tag: tag an item
--add or --remove is required. The CLI looks the item up first to find out whether it is a note or a transcription, so names resolve against the correct pool automatically.vocab: manage your dictionary
vocab: manage your dictionary
dictionary, dict. These are the terms the transcriber should recognize, the same list as the Dictionary page.add reports what it added and what it skipped as already present, so it is safe to re-run over the same list.replacements: text replacements on transcripts
replacements: text replacements on transcripts
threads, snippets. These are the trigger-to-replacement rules applied to transcripts, the same list as the Threads page.expansions: live typing expansions
expansions: live typing expansions
remove rejects them and tells you to disable them instead.settings: read and write settings
settings: read and write settings
get with no key prints all settings as JSON. With a key, prints just that value. Anything that looks like an API key, token, secret, password, or licence comes back as <redacted>.true and false become booleans, digits become numbers, text starting with { or [ is parsed as JSON, and everything else stays a string.set only accepts these keys. Anything else is rejected. Shortcuts, API keys, sync, and account settings are deliberately not writable from the CLI, because a malformed shortcut config can leave the keyboard hook in a bad state.language, modelSize, transcriptionEngine, autoPaste, restoreClipboard, allowClipboardHistory, removeFillerWords, translateToEnglish, englishSpelling, theme, dailyGoal, saveRecordings, meetingNotesAutoStopOnEnd, meetingDetectionEnabled, cliServerEnabledApp control
record: control dictation
record: control dictation
cancel mirrors the Esc cancel path exactly, including clearing any active mute.status: what the app is doing
status: what the app is doing
--json returns the full status object, which also carries the platform and API version.app: launch or version
app: launch or version
app launch starts the app in the background if it is not running and prints “Vowen is running.” once the API answers. On macOS it does not steal focus.app version prints the running desktop app’s version, which is unrelated to vowen --version.Setup and tooling
doctor: diagnostics
doctor: diagnostics
VOWEN_CLI_SERVER override if set, the discovered server file, the loopback port and API version, then the app version, plan, engine, and model.doctor never launches the app, so “not reachable” is a real answer rather than a race. See the troubleshooting section for how to read its output.update: self-update the CLI
update: self-update the CLI
vowen mcp is live under a coding agent.completion: shell completions
completion: shell completions
vowen completion <shell> --help for the exact install instructions for your setup.mcp: run as an MCP server
mcp: run as an MCP server
Environment variables
VOWEN_CLI_SERVER exists for development against a test instance. It is exclusive on purpose, so pointing the CLI at a throwaway app can never silently fall through to your real one.