agentsclimarketplace

Vivadicta search and rewrite

Skill n0an/vivadicta-cli-skills/skills/vivadicta-search-and-rewrite

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-search-and-rewrite

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

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.

SKILL.md

5.8 KB, as published. Nobody here has run it

vivadicta search and rewrite

Use this skill to locate an existing transcription in the user's VivaDicta history and apply an AI preset to it. Covers natural-language IDs, preset resolution, and the end-to-end flow.

Preconditions

  • VivaDicta.app installed at /Applications/VivaDicta.app and running (rewrite requires the UI).
  • User has an AI provider configured with an API key (keychain) or a local MLX model loaded.
  • Some history exists. If vivadicta recent 1 is empty, there's nothing to rewrite.

Identifier forms

rewrite (and get) accept three identifier shapes. Prefer in this order:

  1. Keyword: when the user clearly means the newest entry.
    vivadicta rewrite latest --preset summary
    # also: last, most recent, newest, current
    
  2. Natural-language query: when the user describes the transcription.
    vivadicta rewrite "yesterday's call with sam" --preset action_points
    vivadicta rewrite "coding session this morning" --preset professional
    
  3. Raw UUID: when you already have an ID from a prior command.
    vivadicta rewrite 1701DB3C-AF1F-4191-A791-5DABA81D8096 --preset email
    

Session handles (t1, t2) from MCP don't carry across one-shot CLI invocations - use the UUID instead.

Resolver behavior

The natural-language matcher:

  • Splits the query into tokens (≥3 chars), lowercases, and searches text + enhancedText + powerModeName.
  • Also extracts a timeframe hint ("yesterday", "last week") and filters by it.
  • Ranks candidates; if the top score is ≥3x the second score, picks the top. Otherwise returns transcription_ambiguous (exit 4) with the top 5 previews on stderr.

When ambiguous, the error lists candidates. Re-run with a more specific phrase or with a raw UUID from the candidates list.

Preset resolution

Preset aliases are fuzzy-matched too: summary / Summary / sumary all resolve to the Summary preset. rewrite returns preset_ambiguous (exit 3) with candidates if the match is unclear.

Discover available aliases:

vivadicta presets --output json | jq -r '.presets[] | "\(.alias)\t\(.name)"'
# regular           Regular
# summary           Summary
# action_points     Action Points
# email             Email
# ...

Built-in aliases include: regular, summary, action_points, takeaways, mind_map, key_points, professional, casual, email, chat, coding, rewrite, short, elaborated, simplify, translate_en, translate_ru, translate_es, translate_zh, plus more translate_* variants and user-created presets (typically prefixed custom_).

End-to-end flow

# Discover the transcription
vivadicta search "sprint planning" --since "last week" --limit 5

# If exactly one matches, rewrite directly with a natural-language query
vivadicta rewrite "sprint planning last week" --preset action_points

# If multiple, grab the UUID from the search output
UUID=$(vivadicta search "sprint planning" --limit 1 --output json | jq -r '.transcriptions[0].ref')
vivadicta rewrite "$UUID" --preset action_points

The rewrite result prints the original + rewritten text. The rewritten version is also saved as a TranscriptionVariation on the record - follow-up vivadicta get <uuid> --all-variations will include it.

Dry-run

Preview the resolved transcription + preset without hitting the UI app:

vivadicta rewrite "yesterday's call" --preset summary --dry-run
# Action       : rewrite (dry-run)
# Transcription: 1701DB3C-AF1F-4191-A791-5DABA81D8096
# Title        : Call with Sam about the sprint plan
# Preset       : summary

Useful for confirming the resolver picked the right transcription + preset before the AI call.

Common patterns

"Make action items from today's call":

vivadicta rewrite latest --preset action_points

"Rewrite my dictation as a professional email":

vivadicta rewrite latest --preset email --output markdown

"Translate yesterday's note to Russian":

vivadicta rewrite "yesterday's note" --preset translate_ru

Chain with export (see vivadicta-vault-export):

UUID=$(vivadicta recent 1 --output json | jq -r '.transcriptions[0].ref')
vivadicta rewrite "$UUID" --preset summary > /dev/null
vivadicta get "$UUID" --output markdown --all-variations > ~/vault/summary.md

Error recovery

ExitErrorWhat to do
4transcription_not_foundBroaden the query or drop the timeframe filter. Confirm there's history with vivadicta recent 5.
4transcription_ambiguousError lists candidates. Re-run with a more specific phrase or a UUID from the candidates.
3preset_not_found / preset_ambiguousRun vivadicta presets and pick an alias from the list.
5vivadicta_not_runningLaunch VivaDicta, then retry.
6daily_limit_reachedFree-tier quota reached. Offer https://vivadicta.com/pro.

Guardrails

  • Don't spam rewrite in a retry loop - each call is a paid AI request.
  • If the user didn't name a preset, ask rather than defaulting. "summary" vs "action_points" vs "email" produce different outputs; the wrong choice wastes a call.
  • For regeneration of the same preset the user already applied, rewrite will re-run the AI (not cached). Call this out if it seems unintended.
  • When presenting the result to the user, show both the preset used and the UUID so they can re-run or reference it.

See vivadicta-cli-usage for exit codes and output formats. See vivadicta-vault-export for piping rewrites into Obsidian.

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.