wispr-flow

ArtemXTech's avatarfrom ArtemXTech

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

⭐23stars🔀4forks📁View on GitHub🕐Updated Jan 10, 2026

When & Why to Use This Skill

The Wispr Flow skill empowers users to unlock deep insights from their voice dictation data through advanced analytics and reporting tools. It enables seamless tracking of productivity metrics like word counts, provides robust search capabilities across historical dictations, and supports data portability via exports to JSON or Obsidian. By leveraging interactive HTML dashboards and direct SQL querying, it transforms raw voice-to-text logs into a structured knowledge base for better personal information management.

Use Cases

  • Productivity Tracking: Monitor daily and weekly dictation volume and word counts to analyze writing output and habits.
  • Information Retrieval: Search through extensive dictation history using keywords, date ranges, or specific application filters to find past ideas or notes.
  • Knowledge Management Integration: Export voice dictations into Obsidian daily notes or JSON formats to maintain a centralized personal knowledge base.
  • Data Visualization: Generate interactive HTML dashboards to visualize dictation trends and usage patterns across different software applications.
  • Database Auditing: Execute direct SQL queries on the local Wispr Flow SQLite database for custom data extraction and space management of audio blobs.
namewispr-flow
descriptionAnalyze 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".

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