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#
- Rust (stable) — install via rustup
- ALSA development headers (Linux)
# 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 |