AudioMid is a desktop application that captures system audio in real time and streams it to Large Language Models (OpenAI GPT-4o or Google Gemini) for transcription or analysis. The project is built with Electron, React, TypeScript and a native C++ audio-capture layer.
- System-wide audio capture (CoreAudio tap on macOS; ALSA/ WASAPI back-ends provided but not fully verified).
- Streaming interface to OpenAI and Gemini with configurable models.
- WebRTC Voice Activity Detection to reduce unnecessary traffic.
- Encrypted SQLite configuration store (API keys are AES-256-CBC encrypted at rest).
- Prompt, VAD parameters and debug options editable at runtime; changes are applied without restarting the application.
Pre-built binaries (.dmg, .zip, .exe, .AppImage) are attached to each release.
Windows and Linux builds are generated automatically but remain untested on physical machines. Expect issues with audio capture or device permissions.
- Node.js ≥ 18 with Corepack (Yarn classic)
- CMake ≥ 3.16 and a C/C++ toolchain
- Platform-specific dependencies:
- macOS: Xcode Command-Line Tools
- Windows: Visual Studio Build Tools with C++ workload
- Linux:
build-essential,cmake,libpulse-dev,libx11-dev
git clone https://github.com/siinghd/AudioMid.git
cd AudioMid
corepack enable
yarn installThe project includes C++ modules for audio capture and window privacy that must be compiled:
# Build native C++ modules
yarn build:native
# Or build manually with cmake-js
npx cmake-js compileyarn dev # starts Electron and React in watch mode# Platform-specific builds
yarn package --mac # Creates DMG and ZIP for macOS
yarn package --win # Creates NSIS installer for Windows
yarn package --linux # Creates AppImage for Linux
# Build for current platform only
yarn packageBuild output location: release/build/
Linux build issues:
# Install required dependencies
sudo apt-get update
sudo apt-get install build-essential cmake libpulse-dev libx11-devmacOS permission issues:
# If you get permission errors, ensure Xcode tools are installed
xcode-select --installNative module rebuild:
# If native modules fail to load
yarn build:native
# or
yarn rebuild- Application data:
~/Library/Application Support/AudioMid/(macOS). Other platforms use the default Electronapp.getPath('userData')location. - Default system prompt:
src/common/defaultPrompt.ts. - Database schema and migration logic:
src/main/database.ts.
Pull requests are welcome. Please follow the existing code style (eslint, prettier) and ensure that yarn lint and yarn test succeed.
MIT © Harpreet Singh