agentsclimarketplace

Vivadicta cli usage

Skill n0an/vivadicta-cli-skills/skills/vivadicta-cli-usage

Agent skills for the VivaDicta for Mac CLI (vivadicta). Install with npx skills add n0an/vivadicta-cli-skills.

Install
npx -y skills add n0an/vivadicta-cli-skills --skill vivadicta-cli-usage

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 6 stars6 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Run vivadicta commands against the user's VivaDicta for Mac history from the shell. Use when picking a subcommand, flag combo, or output format for the vivadicta CLI.

SKILL.md

6.1 KB, as published. Nobody here has run it

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.
  • vivadicta on $PATH (install via brew 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. Default N=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. --all includes hidden.
  • vivadicta tags - list user tags + source tags with counts.
  • vivadicta modes [--all] - list Viva Modes (app-/URL-aware profiles). --all includes 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-run prints 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; --async returns a job UUID.
  • vivadicta job <uuid> - single-shot status check for a job from transcribe --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. markdown is supported only by get. Default is TTY-aware (see next section).
  • --pretty - pretty-print JSON. Only valid when the effective format is json.
  • --quiet / -q - suppress stderr chrome (progress phases, hints).
  • --verbose / -v - include extra fields in human output.
  • --help / -h - per-subcommand help.
  • --version - print CFBundleShortVersionString from the installed app.

Output format resolution (TTY-aware)

  1. Explicit --output <fmt> wins.
  2. Otherwise VIVADICTA_OUTPUT=<fmt> env var.
  3. Otherwise stdout TTY detection:
    • TTY → text
    • Pipe / redirect → json
  4. Override detection with VIVADICTA_FORCE_TTY=1 or VIVADICTA_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

VarPurpose
VIVADICTA_OUTPUTDefault --output format. Overrides TTY detection.
VIVADICTA_FORCE_TTY=1Force text/table output even when piped.
VIVADICTA_FORCE_NON_TTY=1Force JSON output even on a TTY.
VIVADICTA_TIMEOUT_SECONDSBlocking-write poll timeout (default 600).
NO_COLOR=1Standard convention, disables ANSI (v1 ships no color anyway).

Exit codes

For scripting:

ExitMeaning
0Success
1Generic internal failure
2invalid_arguments (malformed arg, unsupported flag combination, validation failure)
3preset_not_found / preset_ambiguous (fuzzy match failed or returned multiple candidates)
4transcription_not_found / transcription_ambiguous (resolver failed)
5vivadicta_not_running (write command with UI app stopped)
6daily_limit_reached (write only)
10storage_unavailable (launch the UI app at least once before using reads)
64Usage 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.app is 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 --async only when the user explicitly wants to background the job.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.