A Retroactive Audio Recorder & Transcription TUI
"It's a time machine... but it only goes back 13 seconds."
Omega-13 is a terminal-based tool for Linux that constantly buffers audio in memory. When you trigger a recording, it captures the previous 13 seconds of audio (plus whatever follows), saves it, and automatically transcribes it using a local AI model.
It is designed for developers, writers, and power users who speak ideas out loud but often forget to hit "record" until after the thought has occurred.
- 🕰️ Retroactive Recording: Always listens (locally), never misses a thought. Captures the 13 seconds before you pressed the key.
- 🔒 Local Privacy: Uses
whisper.cpprunning locally via Docker. No audio is ever sent to the cloud. - 🖥️ Textual TUI: A beautiful, keyboard-centric terminal interface.
- 📋 Clipboard Sync: Automatically copies transcribed text to your clipboard for immediate pasting into IDEs or notes.
- 🎹 Global Hotkeys: Trigger recording from anywhere in your OS (supports Wayland/GNOME workarounds).
- 🎛️ JACK/PipeWire Support: Professional audio routing (supports Mono and Stereo inputs).
To run Omega-13, your system needs:
- Linux (Tested on Ubuntu/Fedora with GNOME & Wayland).
- Audio System: PipeWire (with
pipewire-jackinstalled) or a native JACK server. - Docker & NVIDIA GPU: Required for the hardware-accelerated transcription backend.
- Python 3.12+.
Omega-13 delegates heavy AI lifting to a Docker container to keep the TUI snappy.
-
Navigate to the project directory.
-
Start the transcription server:
docker compose up -d
Note: This pulls a custom image based on
nvidia/cudaand buildswhisper.cppwith CUDA support. The first run will take time to compile.
Install the Python package locally:
pip install .Run the application from your terminal:
omega13By default, Omega-13 listens to nothing. You must connect it to an audio source.
- Press
i(orI) to open the Input Selector. - Choose Mono or Stereo.
- Select your microphone from the list.
- Tip: If you use NoiseTorch (as seen in the screenshots), select the
NoiseTorch Microphonestream for cleaner audio.
- Tip: If you use NoiseTorch (as seen in the screenshots), select the
- Verify the VU Meter on the left is moving when you speak.
Because Wayland prevents applications from spying on global keystrokes, you must configure a system-level shortcut to "poke" Omega-13.
The default trigger is Ctrl + Alt + Space.
For GNOME Users:
- Go to Settings -> Keyboard -> View and Customize Shortcuts.
- Add a Custom Shortcut.
- Name:
Omega-13 Toggle - Command:
omega13 --toggle - Shortcut:
Ctrl + Alt + Space(or your preference).
Now, pressing this key combination will start/stop recording even if the terminal is not focused.
- Speak your thought. (Don't worry, you haven't hit record yet).
- Trigger the Hotkey (
Ctrl+Alt+Space).- Omega-13 grabs the audio from 13 seconds ago up to now.
- The status bar turns RED (
RECORDING...).
- Finish speaking.
- Trigger the Hotkey again.
- Recording stops.
- Audio is saved to a temporary session.
- Transcription begins immediately (Status:
Transcribing...).
- Paste.
- Once complete, the text is automatically copied to your clipboard (if enabled).
- Sessions are temporary by default (
/tmp/omega13). - Press
sto Save Session to a permanent location (e.g.,~/Notebooks). - This saves the
.wavaudio,.txttranscriptions, and asession.jsonmetadata file.
| Key | Action |
|---|---|
I |
Inputs: Configure audio sources. |
S |
Save: Move current session to permanent storage. |
T |
Transcribe: Manually re-transcribe the last recording. |
Q |
Quit: Exit the application. |
Ctrl+P |
Command Palette: Change themes (Dracula, Monokai, etc). |
"Capture Blocked - No Input Signal"
- Omega-13 checks for silence to prevent empty recordings.
- Ensure your mic is not muted.
- Press
Ito ensure the correct JACK/PipeWire port is connected.
Global Hotkey not working
- Ensure the
omega13 --togglecommand works in a separate terminal window. - Verify your Desktop Environment's keyboard shortcut settings.
Transcription Failed / Slow
- Check the Docker container:
docker logs -f whisper-server. - Ensure your GPU is accessible to Docker (
nvidia-smi).
- Frontend: Python
Textualapp handling the Ring Buffer (NumPy) and UI. - Audio Backend:
JACKClient. It maintains a rolling float32 buffer array. When triggered, it stitches the pre-buffer (past) with the active queue (present) and writes toSoundFile. - Transcription: The app sends the resulting
.wavfile via HTTP POST to the local Docker container runningwhisper-server.
Built with ❤️ for those who think faster than they can type.