n0an/vivadicta-cli-skills · Archived

vivadicta-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.

First seen Apr 20, 2026

Installation

$ npx skills add n0an/vivadicta-cli-skills --skill vivadicta-search-and-rewrite

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Also in this package

Other skills from n0an/vivadicta-cli-skills.

npx skills add n0an/vivadicta-cli-skills

Browse all from n0an/vivadicta-cli-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 5
License LICENSE
Default branch main
Open issues 0
Status Archived

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 5,897 B
  • docs SUMMARY.md 267 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 2 installs

SKILL.md

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.

``bash vivadicta rewrite latest --preset summary # also: last, most recent, newest, current ``

  1. Natural-language query: when the user describes the transcription.

``bash vivadicta rewrite "yesterday's call with sam" --preset action_points vivadicta rewrite "coding session this morning" --preset professional ``

  1. Raw UUID: when you already have an ID from a prior command.

``bash 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, actionpoints, takeaways, mindmap, keypoints, professional, casual, email, chat, coding, rewrite, short, elaborated, simplify, translateen, translateru, translatees, translatezh, 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

Exit Error What to do
4 transcriptionnotfound Broaden the query or drop the timeframe filter. Confirm there's history with vivadicta recent 5.
4 transcription_ambiguous Error lists candidates. Re-run with a more specific phrase or a UUID from the candidates.
3 presetnotfound / preset_ambiguous Run vivadicta presets and pick an alias from the list.
5 vivadictanotrunning Launch VivaDicta, then retry.
6 dailylimitreached Free-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.