v0.5.0 · macOS & Windows · Rust

Hold a key. Speak.
Your words, everywhere.

Holler is a cross-platform, memory-efficient push-to-talk dictation app — a walkie-talkie for your agents. Release the key and your speech is transcribed, injected at the cursor, copied to the clipboard, and saved to a searchable local history. It reads text back aloud, too.

⌃⌥Space — listening…
Everything in one menubar app

Great features, no bloat

Native, lightweight, and privacy-first — with pluggable providers you swap by config.

🎙️

Push-to-talk dictation

Hold ⌃⌥Space, speak, release. Text lands at your cursor, on the clipboard, and in history.

🔌

Bring-your-own-key STT

Pluggable transcription — Deepgram (nova-3) and OpenAI, selectable per config.

🔊

Read-aloud

Read your selection or clipboard aloud — offline native voice or cloud OpenAI / Deepgram, with replay & stop.

🪟

Native overlays

A recording pill with a live level meter, a read-aloud status popup, and a clipboard toast — CPU-rendered, no WebView.

⚙️

Settings UI

An on-demand window to pick providers, voices, injection mode, and rebind hotkeys live — no restart.

🗂️

Searchable history

Every transcript saved to a local SQLite database that you own and can search.

🔐

Privacy-first keys

API keys live in a separate secrets.toml (0600), never in your shareable config. Env overrides supported.

🪶

Memory-efficient

mimalloc, models loaded only during a session, event-driven hotkeys, LTO + strip release builds.

🖥️

Cross-platform

macOS & Windows today — paste-or-type injection with a graceful clipboard fallback.

Read-aloud, done right

Fast on long text — and it never breaks

Paste a wall of text and it just works.

  • Whitespace cleanup — double spaces and stray tabs from terminal copies are normalized before synthesis.
  • Sentence batching — long text is split into bite-sized batches, so the first audio starts almost instantly.
  • Lazy prefetch — cloud voices synthesize the next batches while the current one plays — no gaps.
  • Stops when you do — quit early and Holler stops fetching audio you'll never hear.
Up and running in a minute

Quick start — macOS

# 1. Build a double-clickable app bundle (release + sign)
scripts/bundle-macos.sh

# 2. Store your Deepgram API key (one time)
./Holler.app/Contents/MacOS/holler set-key deepgram <YOUR_KEY>

# 3. Launch it (menubar agent — no Dock icon)
open ./Holler.app

Grant Accessibility (to paste at the cursor) and Microphone on first launch, then hold ⌃⌥Space and talk. Windows builds ship as a self-contained ZIP — see the README.

Open source · MIT / Apache-2.0

Built in the open — come help

Holler is actively developed and contributions are welcome. A few places we'd love a hand:

🪟 Windows read-aloud

A Windows TTS backend + selection capture (read-aloud is macOS-only today).

🔊 Cross-platform cloud TTS

An audio sink so cloud voices play on Windows/Linux, not just macOS.

🧠 Offline local STT

A whisper-rs provider (large-v3-turbo, download-on-demand) — dictation with no network, no key.

✨ LLM cleanup modes

An optional raw / cleaned / formatted pass behind an LlmProvider trait.

🐧 Linux support

Audio, injection, and overlay backends for X11/Wayland.

🙌 Polish & docs

Voices, settings UX, overlay layouts, and documentation are all fair game.