vivadicta-cli-usage
vivadicta cli usage
Use this skill when you need to run or design a vivadicta command. Covers canonical flags, output formats, env vars, exit codes, and the full subcommand map.
Preconditions
- VivaDicta.app installed at
/Applications/VivaDicta.app. vivadictaon$PATH(install viabrew install n0an/tap/vivadicta).- UI app running is only required for write commands (
rewrite,transcribe,job). Reads work standalone.
Command discovery
Prefer --help over guessing:
vivadicta --help
vivadicta search --help
vivadicta transcribe --help
--help is authoritative. This skill lists the common shape; anything finer-grained lives behind --help.
Subcommand map
All 11 subcommands, one line each.
Reads (no UI app required):
vivadicta recent [N]- last N transcriptions, newest first. DefaultN=10, capped at 50.vivadicta search <query>- full-text search. Filters:--since,--from/--to,--tag,--source,--mode,--limit(default 20, max 100),--full.vivadicta get <id-or-query>- one transcription. Accepts raw UUID, keyword (latest,last,most recent,newest,current), or natural-language query ("yesterday's call with sam"). Flags:--format plain|markdown(in-summary text),--all-variations.vivadicta presets [--all]- list AI rewrite presets.--allincludes hidden.vivadicta tags- list user tags + source tags with counts.vivadicta modes [--all]- list Viva Modes (app-/URL-aware profiles).--allincludes disabled.vivadicta vocab- list custom vocabulary words.vivadicta replacements [--all]- list post-transcription find-and-replace rules.
Writes (UI app must be running):
vivadicta rewrite <id-or-query> --preset <alias>- rewrite with an AI preset. Blocking.--dry-runprints plan without hitting the UI app.vivadicta transcribe <file-or-url> [--async]- transcribe an audio file or YouTube URL. Auto-routes:http(s)://→ URL,file:/// path /~//.// bare filename that resolves → file. Blocking default polls every 2 s until done;--asyncreturns a job UUID.vivadicta job <uuid>- single-shot status check for a job fromtranscribe --async.
Modes is read-only in v1 - create or edit Viva Modes from the UI app, then vivadicta modes surfaces them.
Global flags
Apply to every subcommand:
--output <text|table|json|markdown>- output format.markdownis supported only byget. Default is TTY-aware (see next section).--pretty- pretty-print JSON. Only valid when the effective format isjson.--quiet/-q- suppress stderr chrome (progress phases, hints).--verbose/-v- include extra fields in human output.--help/-h- per-subcommand help.--version- printCFBundleShortVersionStringfrom the installed app.
Output format resolution (TTY-aware)
- Explicit
--output <fmt>wins. - Otherwise
VIVADICTA_OUTPUT=<fmt>env var. - Otherwise stdout TTY detection:
- TTY →
text - Pipe / redirect →
json
- TTY →
- Override detection with
VIVADICTA_FORCE_TTY=1orVIVADICTA_FORCE_NON_TTY=1(CI determinism).
JSON shape matches the matching MCP tool's response. One value differs: ref carries a raw UUID from the CLI (vs a session handle like t1 in MCP). Follow-up vivadicta commands accept either.
Env vars
| Var | Purpose |
|---|---|
VIVADICTA_OUTPUT |
Default --output format. Overrides TTY detection. |
VIVADICTA_FORCE_TTY=1 |
Force text/table output even when piped. |
VIVADICTA_FORCE_NON_TTY=1 |
Force JSON output even on a TTY. |
VIVADICTA_TIMEOUT_SECONDS |
Blocking-write poll timeout (default 600). |
NO_COLOR=1 |
Standard convention, disables ANSI (v1 ships no color anyway). |
Exit codes
For scripting:
| Exit | Meaning |
|---|---|
| 0 | Success |
| 1 | Generic internal failure |
| 2 | invalid_arguments (malformed arg, unsupported flag combination, validation failure) |
| 3 | preset_not_found / preset_ambiguous (fuzzy match failed or returned multiple candidates) |
| 4 | transcription_not_found / transcription_ambiguous (resolver failed) |
| 5 | vivadicta_not_running (write command with UI app stopped) |
| 6 | daily_limit_reached (write only) |
| 10 | storage_unavailable (launch the UI app at least once before using reads) |
| 64 | Usage error (unknown subcommand, bad enum value, --pretty without --output json) |
Branch on these in scripts:
vivadicta get "$QUERY" --output json > /tmp/out.json
case $? in
0) jq '.title' /tmp/out.json ;;
4) echo "no match, retry with a UUID" >&2 ;;
5) echo "open VivaDicta first" >&2; exit 1 ;;
10) echo "launch the app at least once" >&2; exit 1 ;;
*) echo "unexpected exit" >&2; exit 1 ;;
esac
Output piping
The TTY-aware default makes pipes ergonomic out of the box:
vivadicta recent 5 | jq '.transcriptions[].title'
vivadicta search "sprint" --since yesterday --output json | jq '.count'
vivadicta get latest --output markdown > ~/notes/today.md
In a TTY the same commands produce aligned tables.
Error output
Errors print to stderr with vivadicta: <message> + optional hint: line. When --output json is active, errors become a structured payload for jq:
{"status":"error","code":4,"error":"transcription_not_found","message":"No transcription matches '...'","hint":"did you mean ...","candidates":[...]}
Guardrails
- For writes, check that the UI app is running first (
pgrep -f VivaDicta.appis enough). Otherwise exit 5 is the expected failure; don't retry. - For reads right after a UI-side edit, expect up to a few seconds of CloudKit sync lag before the new record appears in CLI output.
- If asked to create or edit presets / tags / modes / vocab / replacements: v1 doesn't support this from the CLI. Point the user to the UI app.
- For long-running tasks (
transcribe,rewrite), default to blocking so the user's next step has the result. Pass--asynconly when the user explicitly wants to background the job.
More from n0an/vivadicta-cli-skills
vivadicta-vault-export
Export a transcription to Obsidian-ready markdown with YAML frontmatter using vivadicta get --output markdown. Use when the user wants a dictation record as a markdown file in their vault or any shell pipeline expecting markdown.
1vivadicta-search-and-rewrite
Find a past transcription by natural-language query or keyword and rewrite it with an AI preset using vivadicta. Use when the user wants to turn existing dictation into action items, an email, a summary, or any other preset output.
1vivadicta-transcribe-flow
Transcribe a local audio file or YouTube URL end-to-end with vivadicta, handling blocking vs async, progress, and error recovery. Use when the user wants speech from an audio source saved into their VivaDicta history.
1