No description
| cmd | ||
| internal | ||
| systemd | ||
| .gitignore | ||
| AGENTS.md | ||
| go.mod | ||
| go.sum | ||
| lel.sh | ||
| README.md | ||
lel
X11 transcription daemon that records audio and runs Whisper, logging the transcript.
Requirements
- X11 (not Wayland)
ffmpegwhisper(OpenAI Whisper CLI)xclip- Tray icon deps:
libappindicator3andgtk3(required bysystray)
Build
go build -o leld ./cmd/leld
go build -o lelctl ./cmd/lelctl
Config
Create ~/.config/lel/config.toml:
hotkey = "Cmd+m"
ffmpeg_input = "pulse:default"
whisper_model = "base"
whisper_lang = "en"
whisper_device = "cpu"
whisper_extra_args = ""
record_timeout_sec = 120
whisper_timeout_sec = 300
segment_sec = 5
streaming = false
Env overrides:
WHISPER_MODEL,WHISPER_LANG,WHISPER_DEVICE,WHISPER_EXTRA_ARGSWHISPER_FFMPEG_INWHISPER_STREAM,WHISPER_SEGMENT_SEC,WHISPER_TIMEOUT_SECLEL_RECORD_TIMEOUT_SEC,LEL_HOTKEY
Run manually
./leld --config ~/.config/lel/config.toml
Disable the tray icon:
./leld --no-tray
systemd user service
mkdir -p ~/.local/bin
cp leld lelctl ~/.local/bin/
cp systemd/lel.service ~/.config/systemd/user/lel.service
systemctl --user daemon-reload
systemctl --user enable --now lel
Usage
- Press the hotkey once to start recording.
- Press it again to stop and transcribe.
- The transcript is logged to stderr.
Control:
lelctl status
lelctl reload
lelctl stop