How sfc-gh-jiyan/macwhisper works
MacWhisper is a local macOS menu-bar transcription and translation app. Its main workflow captures speech, runs on-device Whisper inference, and presents or exports the resulting text: hold-to-record ends in transcription and paste, while Live Subtitles and Meeting Mode provide continuous paths. Meeting Mode adds microphone/system-audio capture, speech detection, segmentation, and transcript exports. The graph preserves documented capabilities even where app.py’s full routing was not excerpted; those links are cited to the README rather than implying unseen calls.
Main entry points: app.py Menu-bar app · meeting.py Meeting session · online_processor.py Streaming processor · subtitle_export.py Meeting exports
Components 16
App interaction
- Menu-bar app
app.py - Hotkeys and modes
app.py - Persistent settings
app.py - Live subtitles
overlay.py - Auto-paste
app.py
Audio capture
- Microphone capture
audio_capture.py - System audio helper
swift/SystemAudioHelper/Sources/main.swift - Voice activity detection
vad.py
Speech recognition
- Streaming processor
online_processor.py - MLX Whisper backend
asr_backend.py - Text cleanup
text_utils.py
Meeting and output
- Meeting session
meeting.py - Meeting exports
subtitle_export.py - Transcript history
subtitle_export.py
Other components
- User
- macOS user
Connections 19
- User → Menu-bar app: uses
README.md - Menu-bar app → Hotkeys and modes: handles modes
README.md - Menu-bar app → Persistent settings: loads and saves
README.md - Menu-bar app → Microphone capture: captures speech
- Menu-bar app → Streaming processor: streams audio
app.py - Streaming processor → MLX Whisper backend: transcribes
online_processor.py - Streaming processor → Text cleanup: filters text
online_processor.py - Menu-bar app → Auto-paste: pastes result
README.md - Menu-bar app → Live subtitles: updates subtitles
app.py - Menu-bar app → Meeting session: starts session
README.md - Meeting session → Microphone capture: starts capture
meeting.py - Meeting session → System audio helper: captures system audio
- Meeting session → Voice activity detection: filters silence
meeting.py - Meeting session → Streaming processor: processes audio
meeting.py - Meeting session → Live subtitles: sends updates
meeting.py - Meeting session → Meeting exports: exports transcript
README.md - Meeting exports → Transcript history: saves history
subtitle_export.py - macOS user → Live subtitles: views subtitles
README.md - macOS user → Meeting exports: chooses export
README.md