- Go 91.8%
- Shell 8.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .forgejo/workflows | ||
| cmd/rekord | ||
| docs | ||
| internal | ||
| .gitignore | ||
| AGENTS.md | ||
| go.mod | ||
| go.sum | ||
| install.sh | ||
| LICENSE | ||
| README.md | ||
Rekord
A Go TUI application for recording and transcribing meetings using local speech-to-text. Works with any meeting application by capturing system audio.
Features
- Captures system audio using PulseAudio/PipeWire monitor sources
- Works with any meeting application (Zoom, Meet, Teams, Discord, etc.)
- Fully local transcription using CrispASR with the Parakeet TDT model - no API calls, no data sent anywhere
- Records audio to
~/.rekord/recordings/and transcribes the whole recording when you stop, then copies both the.wavand.txtto the output directory - Audio level visualization while recording
- Beautiful TUI interface built with Bubble Tea
Installation
curl -fsSL https://git.marut.network/exler/rekord/raw/branch/main/install.sh | bash
This builds CrispASR and rekord into ~/.rekord. It reports any missing
dependencies but lets you install them yourself.
Dependencies
Install these before running the script:
# Fedora
sudo dnf install git cmake golang curl pipewire-pulseaudio gcc-c++ make openblas-devel
# Ubuntu/Debian
sudo apt install git cmake golang curl pulseaudio-utils build-essential libopenblas-dev
# Arch Linux
sudo pacman -S git cmake go curl pulseaudio-utils base-devel openblas
openblas is optional, but ggml picks it up at build time and it measurably
speeds up Parakeet's encoder — installing it later means rebuilding CrispASR.
The Parakeet model (~400 MB) downloads automatically the first time you run
rekord.
Building manually
git clone https://github.com/exler/rekord
cd rekord
go build -o rekord ./cmd/rekord
rekord itself is pure Go, but it needs a crispasr binary at runtime.
Put it on your PATH, at ~/.rekord/bin/crispasr, or point at with CRISPASR_PATH.
Usage
# Run with default settings (default audio monitor, Parakeet backend)
rekord
# Use a different ASR backend - its model is downloaded on first use
rekord -backend moonshine
# Point at an explicit model file, bypassing backend resolution
rekord -model ~/.rekord/models/parakeet-tdt-0.6b-v3-q8_0.gguf
# Specify a specific audio device
# Use `pactl list sources short` to find the correct monitor source for your system
rekord -device alsa_output.pci-0000_00_1f.3.analog-stereo.monitor
Backends
Rekord asks the crispasr binary which backends it supports.
Pass an invalid name to see the full list. Models download automatically into ~/.rekord/models on first use.
The default, Parakeet TDT v3, is multilingual and covers 25 European languages.
Development
go run cmd/rekord/main.go
Configuration
Environment variables:
CRISPASR_PATH: Path to thecrispasrexecutable (default:~/.rekord/bin/crispasr, thenPATH)
Command-line flags:
-backend: ASR backend (defaultparakeet); its model is downloaded on first use-model: Path to a model file, overriding-backendand skipping the download-device: Audio device name (usepactl list sources shortto list)-output: Directory the recording and transcript are copied to after transcription (default: current directory)
License
Rekord is under the terms of the MIT License, following all clarifications stated in the license file.
