A terminal app to allow for easy voice recording
Rust 100%

README.md

TermVoice - Terminal Voice Recorder #

A terminal voice recorder with a unified TUI for recording, browsing, playing, renaming, and deleting recordings.

Recordings are saved as MP3 files organised by date under the directory set in $VOICE_NOTES.

This is primarily a way for me to practice rust while also creating something mildly useful for myself. Feel free to use it if you find it useful or want to contribute.

Requirements #

# Fedora / RHEL
sudo dnf install alsa-lib-devel

# Debian / Ubuntu
sudo apt install libasound2-dev

Build #

git clone ssh://git@codeberg.org/CyRav1ck/TermVoice.git
cd TermVoice
cargo build --release

The binary is at target/release/rv.

Install #

cargo install --path .

This places rv in ~/.cargo/bin/. Make sure that directory is on your PATH:

# add to ~/.zshrc or ~/.bashrc if not already present
export PATH="$HOME/.cargo/bin:$PATH"

Setup #

Set the VOICE_NOTES environment variable to the directory where recordings should be saved:

export VOICE_NOTES=~/voice-notes

Add it to your shell config to make it permanent.

Usage #

rec

Recordings are saved as $VOICE_NOTES/YYYY-MM-DD/practice-N.mp3.

Keybindings #

Browsing #

Key Action
Space start recording
Enter / o play selected
j / k navigate down / up
gg jump to first recording
G jump to last recording
r rename selected
d delete selected (with confirmation)
q quit

Recording #

Key Action
Space / s / Enter stop and save
Esc cancel (discard)
q stop, save, and quit

Playback #

Key Action
Space pause / resume
s / Esc stop
q quit

Rename #

Key Action
Enter confirm
Esc cancel
← / → move cursor
Backspace / Delete delete character
Home / End jump to start / end

Delete confirmation #

Key Action
y / Enter confirm delete
any other key cancel