Skip to main content
The CLI uses noun-verb syntax (notes list, not list-notes) — same convention as gh, kubectl, aws, stripe.

Global flags

Notes

For notes with an AI-enhanced version (e.g. meeting notes), notes get’s markdown output shows the enhanced note when one exists, matching the desktop app. The raw fields are always available via --format json (content, enhanced_content). Pass --transcript to output only the note’s transcript — as speaker-labeled markdown, or as { "transcript": "..." } with --format json.

Folders

Transcriptions

--format text returns the plain transcript body. SRT and VTT subtitle formats aren’t currently exposed by the CLI — use --format json and post-process the segment data if you need timestamped subtitles.

Audio

Local-only. Deletes the audio file for a dictation transcription (meeting transcripts have no audio to delete — only their text is captured). The cloud API doesn’t store audio at all, so running with --remote exits with a “not supported” error.

Transcribe

Transcribes an audio file and prints the transcript. Requires @openwhispr/cli 0.3.0 or later. Backend selection is the usual auto/--local/--remote, and the two backends behave quite differently here:
  • Local (desktop app running) — transcribes on your machine with whatever local model the app is set to use. Free, no file-size cap, and the audio never leaves the machine. --model <id> overrides the app’s choice; the model has to be downloaded in the app already, and if you get the name wrong the CLI lists the ones available.
  • Remote (--remote, or no desktop app) — sends the file to OpenWhispr Cloud. Needs a Pro or Business plan and a key with the transcriptions:write scope. Files over 4 MB are split into 4-minute chunks client-side before upload, which requires ffmpeg on your PATH.
Cloud transcription through the API is in beta. Limits, response shape, and availability may change, and there is no SLA. For long recordings or free, private transcription, use the OpenWhispr CLI with the desktop app running. See Transcribe audio (beta) for the limits.

Dictionary

Manages the custom dictionary — the names, jargon and acronyms passed to the transcription model as a hint. add and remove take one or more words; quote anything with a space. Removal is by word, not id.
Against the cloud API these need the dictionary:read and dictionary:write scopes — see Dictionary and snippets.

Snippets

Manages snippets — a trigger phrase and the text it becomes when you say it. add takes exactly one trigger and one replacement; remove takes one or more triggers.
Against the cloud API these need the snippets:read and snippets:write scopes.

Auth

Config

Doctor

Reports which backends are reachable and exits non-zero if neither is.

Exit codes