5
0
Fork
You've already forked mouthpipe
0
local speech-to-text via CLI, port of python blurt by https://github.com/satyaborg/blurt
  • Rust 97.3%
  • Shell 2%
  • Ruby 0.4%
  • Makefile 0.3%
Anuna 02 54b90edce6
Some checks failed
ci/woodpecker/push/ci Pipeline failed
Update install URL and remove Homebrew install option
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026年02月20日 16:49:28 +11:00
.github/workflows Rename blurt → mouthpipe 2026年02月19日 12:18:35 +11:00
.hence hence: complete task 'audio-source-popup' 2026年02月19日 13:00:53 +11:00
.woodpecker Disable Accelerate/BLAS in whisper.cpp cross-compilation 2026年02月19日 17:03:42 +11:00
docs Add audio source selection spec and implementation plan (SPEC-002, IMPL-003) 2026年02月19日 12:24:25 +11:00
Formula Rename blurt → mouthpipe 2026年02月19日 12:18:35 +11:00
plans Update plan: mark audio-source-tests complete — IMPL-003 done 2026年02月19日 13:57:14 +11:00
sounds feat: add sound playback module (REQ-013) 2026年02月18日 15:54:10 +11:00
src Show download progress in TUI on first run 2026年02月20日 11:37:19 +11:00
.gitignore init: Cargo project with deps, CI, and CLAUDE.md 2026年02月18日 15:47:24 +11:00
Cargo.lock chore: bump version to 0.2.3 2026年02月19日 17:35:23 +11:00
Cargo.toml chore: bump version to 0.2.3 2026年02月19日 17:35:23 +11:00
CLAUDE.md Rename blurt → mouthpipe 2026年02月19日 12:18:35 +11:00
install.sh Rename blurt → mouthpipe 2026年02月19日 12:18:35 +11:00
Makefile Add Makefile with standard build/test/fmt targets 2026年02月18日 21:58:22 +11:00
plan.spl Add native audio format resampling and shortcut persistence 2026年02月19日 07:05:51 +11:00
README.md Update install URL and remove Homebrew install option 2026年02月20日 16:49:28 +11:00
release.sh Add SPDX license header to release script 2026年02月19日 15:48:13 +11:00

mouthpipe

On-device speech-to-text for macOS. Hold a key, speak, release — transcribed text is pasted at your cursor.

Powered by whisper.cpp (Metal-accelerated) with zero cloud dependencies. All processing happens locally on your Mac.

Features

  • Hold-to-record — hold your shortcut key, speak, release. Transcribed text is pasted instantly at your cursor position.
  • Fully local — runs entirely on-device using whisper.cpp with Metal acceleration. No network calls, no API keys, no cloud.
  • Single binary — one static executable, no runtime dependencies. Install and go.
  • Live TUI — full-screen terminal interface with waveform visualizer, status indicators, and transcription history.
  • Configurable shortcut — press s in the TUI to choose your trigger key (right/left Command, Control, or Option).
  • Output modes — press b to switch between paste-at-cursor, copy-to-clipboard, or buffer-only.
  • Audio source selection — press a to pick your input device (built-in mic, USB mic, etc.).
  • Custom vocabulary — add domain-specific words to improve recognition accuracy. Fed to Whisper as an initial prompt.
  • Transcription history — press h to browse, copy, or delete past transcriptions. Full log stored as JSONL.
  • Hallucination filtering — automatically detects and suppresses common Whisper hallucinations (silence loops, repetitive output).
  • Themes — ocean (default) and vapor color themes.

Install

curl -fsSL http://files.anuna.io/mouthpipe/latest/install.sh | bash

Or build from source:

git clone https://codeberg.org/anuna/mouthpipe.git
cd mouthpipe
cargo build --release
cp target/release/mouthpipe /usr/local/bin/

Setup

  1. Accessibility permission — System Settings > Privacy & Security > Accessibility. Grant access to your terminal app.
  2. Microphone permission — Granted automatically on first recording.
  3. Whisper model — Downloaded automatically on first run (~1.5 GB). Stored at ~/.mouthpipe/models/.

Usage

mouthpipe # Start listening
mouthpipe --key <key> # Set shortcut key and start (e.g. --key ctrl)
mouthpipe add <word/phrase> # Add to custom vocabulary
mouthpipe rm <word/phrase> # Remove from vocabulary
mouthpipe vocab # List vocabulary words
mouthpipe log [-n N] # Show recent transcriptions (default 20)
mouthpipe --version # Show version
mouthpipe help # Show help

TUI Keyboard Shortcuts

Key Action
s Change trigger shortcut
v Manage vocabulary
b Change output behaviour
a Select audio source
h Browse transcription history
Ctrl+C Quit

Data Directory

All data is stored in ~/.mouthpipe/:

File Purpose
models/ggml-large-v3-turbo.bin Whisper model (GGML format)
mouthpipes.jsonl Transcription log
audio/ Recorded WAV files (16kHz mono 16-bit PCM)
vocab.txt Custom vocabulary (one word per line)
shortcut.txt Saved trigger key
behaviour.txt Saved output mode

Requirements

  • macOS on Apple Silicon (M1/M2/M3/M4)
  • Accessibility permission for global hotkey
  • ~1.5 GB disk space for the Whisper model

Credits

Ported from blurt by @satyaborg — motivation was to add features and ship a portable binary.

License

MIT