A Windows-only meeting & dictation recorder, featuring local transcription, and automatic summarisation.
- Real-time Audio Capture: WASAPI loopback for system audio + optional microphone input
- Live Spectrum Analyser: Real-time visualisation of audio activity in the GUI
- High-Quality Transcription: whisper.cpp integration with multiple model support
- AI-Powered Summarisation: Use any OpenAI compatible API endpoint (instructions included for local llama.cpp usage)
- Secure Audio Playback: In-GUI audio players for listening to recorded WAV files
- Formatted Output: Markdown rendering for transcripts and summaries
- Small Footprint: Less than 15mb executable
- Audio Mixing: User-selectable combinations of system and microphone audio
- Flexible Output: Configurable output directories and file naming
The GUI features a streamlined interface with three main tabs:
- Auto Tab: Complete workflow combining recording, transcription, and summarisation with live audio feedback and formatted output
- Tools Tab: Individual tools for recording, transcribing, and summarising with audio playback and formatted output
- Settings Tab: Configuration management including local AI settings
# Build and run the GUI
wails build
cp .\build\bin\blackbox-gui.exe .\blackbox-gui.exe
.\blackbox-gui.exe- Format: PCM S16LE (16-bit signed little-endian)
- Sample Rate: 16 kHz
- Channels: Stereo (loopback) + Mono (microphone)
- Quality: Optimised for transcription while maintaining excellent audio clarity
- File Sizes: ~1.6-2.0 MB per minute
GUI Settings (./config/ui.json - auto-created):
{
"out_dir": "./out"
}LLM config (./configs/local.json & ./configs/remote.json):
{
"base_url": "http://localhost:8080",
"api_key_env": "llama.cpp API key",
"model": "model_name"
}Blackbox supports both local and remote AI summarisation, giving you complete control over where you're comfortable sending data.
Use your own hardware for private, offline summarisation with llama.cpp models.
- Download llama.cpp binaries: Extract to
./llamacpp-bin/directory. Ensure you grab the correct version for your platform, i.e, Vulkan/CUDA etc. All testing performed on Vulkan binaries. - Download a model: Place GGUF model files in
./models/directory - Configure in Settings:
- Model File: Browse and select your GGUF model (e.g.,
gemma-3-12b-it-q4_0.gguf) - Temperature: Controls creativity (0.1 = focused, 1.0 = creative)
- Context Window: Model's memory size (32000 = ~24k tokens) (If you have problems with large summaries, try increasing this)
- Server API Key: Authentication key for llama-server (optional, recommended)
- Model File: Browse and select your GGUF model (e.g.,
- Configure local AI settings in the Settings tab
- Enable local AI by checking "Local AI summarisation" in:
- Tools tab Summarise section: For individual transcript processing
- Auto tab: For automatic summarisation after recording
- Start summarisation: llama-server will automatically start, process your transcript, then shut down
./configs/local.json: Client authentication for local server- GUI Settings: Server parameters (model, temperature, context window)
Use cloud-based AI services for summarisation with any OpenAI-compatible API.
- Configure remote endpoint in
./configs/remote.json:
{
"base_url": "https://api.openai.com/v1",
"api_key": "your-api-key-here",
"model": "gpt-5-mini"
}- Supported services:
- OpenAI (GPT-5, GPT-4)
- Anthropic Claude (via OpenAI-compatible proxy)
- Local servers (Ollama, LM Studio, etc.)
- Any OpenAI-compatible API
- Leave "Local AI summarisation" unchecked in the Auto tab or Tools tab Summarise section
- Start summarisation: Requests will be sent to your configured remote endpoint
- No local processes: Everything runs in the cloud
- Per-operation control: Each section has its own "Local AI summarisation" checkbox
- Independent settings: Local and remote configurations are completely separate
- No conflicts: You can use local AI in one section and remote AI in another
- Automatic cleanup: Local llama-server shuts down after each use
{
"base_url": "http://localhost:8080",
"api_key": "1234",
"model": "gemma-3-12b-it-q4_0.gguf"
}{
"base_url": "https://api.openai.com/v1",
"api_key": "sk-proj-your-openai-key",
"model": "gpt-5-mini"
}{
"out_dir": "./out",
"use_local_ai": true,
"llama_model": "./models/gemma-3-12b-it-q4_0.gguf",
"llama_temp": 0.1,
"llama_context": 32000,
"llama_api_key": "1234"
}- Go 1.24+
- Node.js and npm (for Tailwind CSS building)
- Wails CLI (
go install github.com/wailsapp/wails/v2/cmd/wails@latest) - whisper-cli binaries extracted to .\whisper-bin
- llama.cpp binaries extracted to .\llamacpp-bin
- Development:
wails dev- Run with hot reload and automatic CSS building - Production:
wails build- Build final executable with automatic CSS building
- Open Blackbox
- Click on the Auto tab
- Select which mode you want to record in (desktop only (untick Use Microphone), desktop + microphone, or microphone only (dictation mode))
- Begin your meeting/dictation
- Once done, click "Stop Recording"
- The application will automatically transcribe + summarise your recording
- Listen to your recording using the built-in audio player
- View formatted output in the dedicated markdown section
- Loopback Only: System audio capture with spectrum visualisation
- Loopback + Mic: Mixed audio with dual-source spectrum analysis
- Dictation Mode: Microphone-only with mic-focused visualisation
- Audio Playback: Listen to recorded WAV files directly in the GUI using secure data URLs
- Formatted Output: Transcripts and summaries are rendered as beautiful markdown
- System Messages: Clear status updates separate from formatted content
- Real-time Feedback: Live spectrum analyser shows audio activity during recording
- Audio Not Recording: Check device permissions and default audio devices
- Spectrum Analyser Not Moving: Ensure audio is playing and recording is active, ensure you are using the correct audio interface in Windows settings
- Whisper Errors: Verify binary path and model existence, refer to whisper-cli
- GUI Not Responding: Ensure WebView2 runtime is installed
- Audio Playback Not Working: Check browser console for errors, verify WAV file exists
- Markdown Not Rendering: Ensure internet connection for marked.js CDN, check browser console
- Device selection for audio sources
- Advanced audio processing (noise reduction, normalisation)
- Take notes and use them in the summary automatically with timestamping
- Integration with other LLM APIs
- Different summarisation styles (casual, meeting, standup, dictation)
See LICENSE