🎙️ Meeting recording and transcription TUI app
  • Go 91.8%
  • Shell 8.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Kamil Marut 36762e8505
All checks were successful
Quality and Tests / Quality (push) Successful in 28s
Quality and Tests / Tests (push) Successful in 20s
docs: Clarify installation
2026-08-04 13:53:42 +02:00
.forgejo/workflows record(!): Record the audio file completely and transcribe at the end 2026-08-04 13:25:46 +02:00
cmd/rekord log: Log instead of printing the "Loading model..." 2026-08-04 13:35:48 +02:00
docs record(!): Record the audio file completely and transcribe at the end 2026-08-04 13:25:46 +02:00
internal ui: Confirm quitting while recording 2026-08-04 13:31:06 +02:00
.gitignore record(!): Record the audio file completely and transcribe at the end 2026-08-04 13:25:46 +02:00
AGENTS.md record(!): Record the audio file completely and transcribe at the end 2026-08-04 13:25:46 +02:00
go.mod feat: Upgrade CharmBracelet dependencies to v2 2026-03-08 10:26:17 +01:00
go.sum feat: Upgrade CharmBracelet dependencies to v2 2026-03-08 10:26:17 +01:00
install.sh docs: Clarify installation 2026-08-04 13:53:42 +02:00
LICENSE Initial commit 2026-02-05 23:28:18 +01:00
README.md docs: Clarify installation 2026-08-04 13:53:42 +02:00

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 .wav and .txt to the output directory
  • Audio level visualization while recording
  • Beautiful TUI interface built with Bubble Tea

Screenshot

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 the crispasr executable (default: ~/.rekord/bin/crispasr, then PATH)

Command-line flags:

  • -backend: ASR backend (default parakeet); its model is downloaded on first use
  • -model: Path to a model file, overriding -backend and skipping the download
  • -device: Audio device name (use pactl list sources short to 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.