Skip to content

h3qing/WhisperWoof

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,104 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mando — the WhisperWoof mascot

WhisperWoof

Voice-first personal automation for power users.
Speak a command. It transcribes, polishes, and routes — all locally on your Mac.

v1.15.0 MIT License macOS 862 tests passing

Quick Start · Features · How It Works · Download



The Problem

Voice transcription tools turn speech into text — then stop. You still copy-paste into apps, switch windows, route output manually.

The open-source world has two mature, disconnected layers:

  • Voice/STT: OpenWhispr, Whispering, VoiceInk
  • Workflow automation: n8n, Activepieces, Huginn

Nobody built the bridge. WhisperWoof is that bridge.


How It Works

Mando listening
1. Hold Fn
Mando's ears perk up.
You're recording.
2. Speak
Say whatever you want.
Filler words welcome.
3. Release
Clean, polished text
appears at your cursor.
Voice ──▶ Local STT (Whisper / Parakeet / Distil-Whisper)
              │
              ▼
         Local LLM Polish (bundled llama-server)
         Removes filler, fixes grammar
              │
              ▼
         Hotkey-driven routing
              │
              ├──▶ Fn         → Paste polished text at cursor
              ├──▶ Fn + T     → Add to todo list
              ├──▶ Fn + N     → Save as Markdown note
              ├──▶ Fn + C     → Add to calendar
              └──▶ All entries saved to searchable history

Features

Core Pipeline

  • Local voice-to-text — Whisper STT on your machine (multilingual incl. Chinese), or opt into NVIDIA Parakeet for faster English/European dictation. No cloud, no latency, no data leaving your laptop.
  • Smart Cleanup, on by default — A small bundled local model (llama-server) removes filler, fixes grammar, assembles spoken emails, and keeps your voice. Set up in one click during onboarding; tuned prompt + thinking-mode disabled for ~250ms polish. Customizable in Prompt Studio.
  • Hotkey-driven routing — Different combos send voice to different destinations. Explicit, not magic.

Capture & History

  • Clipboard timeline — A condensed, card-based timeline of everything you copy: grouped by day, click to re-copy, with the source app (Messages, Chrome…) and image thumbnails.
  • Voice history + audio playback — Tap any entry to replay the original recording.
  • Full-text search — SQLite FTS5 across all your voice and clipboard entries.

Intelligence

  • Context-aware — Detects active app. VS Code gets code style, Slack gets casual, Mail gets professional.
  • Voice commands — "Rewrite this." "Translate to Spanish." "Summarize." 10 editing commands.
  • Cmd+K command bar — Spotlight-style overlay. Type /todo, /note, /project.
  • Agent mode — Voice-driven AI chat. Press hotkey, speak, get streamed LLM responses.

Meeting Recording (new)

  • Granola-style detection — Detects meetings via calendar + mic + process signals. Shows persistent notification.
  • Pre-meeting alerts — Notification appears ~90s before scheduled meetings.
  • Crash-safe audio — Audio saved to local WAV files in 5-minute segments. Never lose a meeting.
  • Transcript checkpoints — Saved to SQLite every 60s. Survives crashes and network drops.
  • Auto-reconnect — WebSocket reconnection with backoff + session rotation at 25 minutes.

Local-first by design

  • Runs entirely on-device — Bundled STT (whisper.cpp / sherpa-onnx) and a bundled local LLM (llama.cpp). No account, no cloud dependency, nothing leaves your Mac by default.
  • Cloud is opt-in — OpenAI / Anthropic / Gemini work if you want them, behind your own keys. A privacy lock blocks all cloud access in one toggle.
  • Graceful degradation — No reasoning model? You still get a clean raw transcript. Selected model missing? It falls back to the best one on disk.

Privacy & Design

  • Privacy lock — One toggle blocks ALL cloud access. Bundled local STT + local LLM only, zero network.
  • MCP plugins — Route voice to Todoist, Notion, Slack. Any MCP server works as a plugin.
  • Mando's ears — The floating indicator has dog ears that perk up when you speak.

Quick Start

# Clone and run
git clone https://github.com/h3qing/whisperwoof.git
cd whisperwoof
npm install
npm start

Or download the app directly: Latest .dmg release (Apple Silicon)

The app bundles llama-server (llama.cpp) for local LLM polish — no extra install required. On first run, open Settings → Intelligence and download a model (Qwen 2-3B is a great default for polish on Apple Silicon).

Requirements

  • macOS (Apple Silicon recommended)
  • Microphone (built-in or external)
  • A local LLM model (optional) — downloadable from in-app Settings → Intelligence. Polish degrades gracefully to raw transcript if disabled.

Design Principles

Principle What it means
Hotkey = intent The key combo you press determines where voice goes. Explicit over magic.
Local-first Everything runs on your machine. No cloud. No data leaving your device.
Fork, don't reinvent Built on OpenWhispr's proven STT engine and Electron shell.
Power users first Control, customization, and ownership of your tools.

Tech Stack

Layer Technology
Runtime Electron 39 + React 19 + TypeScript + Tailwind CSS v4
STT Whisper (whisper.cpp, default — multilingual) / NVIDIA Parakeet (sherpa-onnx, opt-in — fast, English + European), both local
LLM Polish Bundled llama-server (llama.cpp), on by default. Cloud providers (OpenAI, Anthropic, Gemini) optional.
Storage SQLite + Kysely ORM + FTS5 full-text search
Plugins Model Context Protocol (MCP)

Roadmap

  • Phase 0 — Fork + security hardening + test infrastructure
  • Phase 1 — Core pipeline: StorageProvider, local LLM polish, hotkey routing, features
  • Phase 2 — MCP plugin system (Todoist, Notion, Slack, Calendar)
  • Phase 3 — Polish, onboarding, public release (v1.0)
  • Phases 4–10 — Competitive features, AI intelligence, vibe coding, streaming, templates
  • Meeting recording — Crash-safe audio buffer, transcript checkpoints, Granola-style detection
  • Agent mode — Voice-driven AI chat with streaming LLM responses
  • Distribution — Code signing, notarization, auto-update

Credits

WhisperWoof is a fork of OpenWhispr — we're grateful to the OpenWhispr team for building such a solid foundation.

Also built on: OpenAI Whisper · Distil-Whisper · NVIDIA Parakeet · llama.cpp · Model Context Protocol


Contributing

WhisperWoof is in early development. Contributions, feedback, and ideas are welcome — please open an issue to discuss before submitting a PR.

License

MIT — see LICENSE for details.


Mando
Named after Mando, who always listens.
Built with care by Heqing.

About

Voice-first personal automation for macOS. Speak → transcribe → polish → route. All local AI. Named after a good dog.

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages