Agent skill
wispr-flow
Analyze Wispr Flow voice dictation data. Stats, search, export, visualizations. Use when user says "dictation history", "word counts", "voice analytics", "how much did I dictate", "search my dictation".
Install this agent skill to your Project
npx add-skill https://github.com/ArtemXTech/personal-os-skills/tree/main/skills/wispr-flow
SKILL.md
Wispr Flow Skill
Access and analyze your Wispr Flow voice dictation history.
Quick Stats
# Overall stats
{baseDir}/scripts/get-stats.py
# Today only
{baseDir}/scripts/get-stats.py --period today
# This week
{baseDir}/scripts/get-stats.py --period week
# JSON output
{baseDir}/scripts/get-stats.py --json
Search
# Search all dictations
{baseDir}/scripts/search-history.py "keyword"
# Filter by app
{baseDir}/scripts/search-history.py "keyword" --app ghostty
# Date range
{baseDir}/scripts/search-history.py "keyword" --from 2026-01-01 --to 2026-01-10
Export
# JSON backup (text only, portable)
{baseDir}/scripts/export-data.py -o ~/Downloads/wispr-backup.json
# Obsidian daily notes format
{baseDir}/scripts/export-data.py --format obsidian -o ~/vault/Voice/
Visualization
# Generate interactive HTML dashboard
{baseDir}/scripts/create-dashboard.py -o ~/Downloads/wispr-dashboard.html
open ~/Downloads/wispr-dashboard.html
Quick Queries (Direct SQL)
# Recent dictations (EST timezone)
sqlite3 ~/Library/Application\ Support/Wispr\ Flow/flow.sqlite "
SELECT datetime(timestamp, '-5 hours') as time, app, substr(formattedText, 1, 80)
FROM History ORDER BY timestamp DESC LIMIT 10
"
# Words by app
sqlite3 ~/Library/Application\ Support/Wispr\ Flow/flow.sqlite "
SELECT app, SUM(numWords) as words FROM History
WHERE app IS NOT NULL GROUP BY app ORDER BY words DESC LIMIT 10
"
# Today's word count
sqlite3 ~/Library/Application\ Support/Wispr\ Flow/flow.sqlite "
SELECT SUM(numWords) FROM History
WHERE date(timestamp, '-5 hours') = date('now', '-5 hours')
"
Database
Location: ~/Library/Application Support/Wispr Flow/flow.sqlite
Key tables:
History- all dictations (timestamp, app, formattedText, numWords, duration, audio blob)
Timezone: Database stores UTC. Use -5 hours for EST.
Space Management
See docs/space-management.md for cleaning up audio blobs.
Troubleshooting
See docs/troubleshooting.md for common issues.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
recall
Load context from vault memory. Temporal queries (yesterday, last week, session history) use native JSONL timeline. Topic queries use QMD BM25 search. "recall graph" generates interactive temporal graph of sessions and files. Every recall ends with "One Thing" - the single highest-leverage next action synthesized from results. Use when user says "recall", "what did we work on", "load context about", "remember when we", "prime context", "yesterday", "what was I doing", "last week", "session history", "recall graph", "session graph".
sync-claude-sessions
Sync Claude Code sessions to Obsidian markdown. Export, resume, add notes, close sessions. USE WHEN user says "sync sessions", "export sessions", "resume session", "add session note", "close session", "log session".
granola
Query and sync Granola meetings to Obsidian vault. Use when user mentions Granola, meeting transcripts, or wants to sync meeting notes. Reads from local cache - no API needed.
notebooklm
Import NotebookLM notebooks into your Obsidian vault as linked knowledge graphs. Sources become wikilink-able files, Q&A answers get citations resolved to [[wikilinks]] with passage-level deep links. Use when user says "notebooklm import", "import notebook", "notebooklm ask", "notebooklm sources", or wants to turn NotebookLM research into vault knowledge.
tasknotes
Manage tasks in Obsidian via TaskNotes plugin API. Use when user wants to create tasks, list tasks, query by status or project, update task status, delete tasks, or check what they need to do.
granola
Query and sync Granola meetings to Obsidian vault. Use when user mentions Granola, meeting transcripts, or wants to sync meeting notes. Reads from local cache - no API needed.
Didn't find tool you were looking for?