How cmagnussen/blitztext-app works
Blitztext is an experimental macOS menu-bar app that captures speech and returns text to the app the user was working in. The principal path is hotkey or menu selection → workflow → microphone recording → online or local transcription → optional rewriting → paste. Separate workflows provide text improvement, calmer-message rewriting, and emoji insertion. AppState coordinates workflow state and paste handling; settings and services support API credentials, local models, permissions, and hotkeys. The README documents both transcription modes and all rewrite variants. Some workflow implementations and wiring were not sampled, so uncertain internal calls are omitted.
Main entry points: AppState.swift App State · SettingsContentView.swift Settings UI · BlitztextCleanupService.swift User Data Cleanup · LLMService.swift Rewrite Service
Components 25
Menu Bar App
- App Lifecycle
BlitztextMac/App/BlitztextMacApp.swift - App State
BlitztextMac/App/AppState.swift - Menu Bar UI
BlitztextMac/Features/MenuBar/MenuBarView.swift - Settings UI
BlitztextMac/Features/Settings/SettingsContentView.swift - Hotkey Monitor
BlitztextMac/Services/HotkeyService.swift
Workflow Layer
- Workflow Types
BlitztextMac/Features/Workflows/WorkflowProtocol.swift - Speech Workflows
BlitztextMac/Features/Workflows/TranscriptionWorkflow.swift - Text Improvement
BlitztextMac/Features/Workflows/TextImprovementWorkflow.swift - Calmer Message
BlitztextMac/Features/Workflows/DampfAblassenWorkflow.swift - Emoji Text
BlitztextMac/Features/Workflows/EmojiTextWorkflow.swift
Speech And AI Services
- Audio Recorder
BlitztextMac/Services/AudioRecorder.swift - Online Transcription
BlitztextMac/Services/TranscriptionService.swift - Local Transcription
BlitztextMac/Services/LocalTranscriptionService.swift - Rewrite Service
BlitztextMac/Services/LLMService.swift - Transcription Quality
BlitztextMac/Services/TranscriptionQualityService.swift
Configuration And Access
- API Key Storage
BlitztextMac/Services/KeychainService.swift - App Data Paths
BlitztextMac/Services/AppSupportPaths.swift - Accessibility Permission
BlitztextMac/Services/AccessibilityPermissionService.swift - Launch At Login
BlitztextMac/Services/LaunchAtLoginService.swift - User Data Cleanup
BlitztextMac/Services/BlitztextCleanupService.swift - Install Location
BlitztextMac/Services/BlitztextInstallLocationService.swift
Other components
- User
- Text App
- OpenAI API
- WhisperKit / CoreML
Connections 34
- User → Menu Bar UI: selects workflow
- User → Hotkey Monitor: presses hotkey
- Menu Bar UI → App State: starts workflow
- Hotkey Monitor → App State: sends events
- App Lifecycle → App State: initializes
- App State → Workflow Types: uses workflow types
- App State → Speech Workflows: starts
- App State → Text Improvement: starts
- App State → Calmer Message: starts
- App State → Emoji Text: starts
- App State → Text App: pastes text
- App State → Accessibility Permission: checks permission
- Settings UI → App State: edits settings
- Speech Workflows → Audio Recorder: records audio
- Speech Workflows → Online Transcription: transcribes online
- Speech Workflows → Local Transcription: transcribes locally
- Text Improvement → Rewrite Service: rewrites text
- Calmer Message → Rewrite Service: rewrites text
- Emoji Text → Rewrite Service: adds emojis
- Online Transcription → OpenAI API: sends audio
- Rewrite Service → OpenAI API: sends text
- Local Transcription → WhisperKit / CoreML: runs on device
- Online Transcription → API Key Storage: loads API key
- Rewrite Service → API Key Storage: loads API key
- Local Transcription → App Data Paths: uses model path
- App State → Transcription Quality: checks transcription
- Settings UI → API Key Storage: saves API key
- Settings UI → Launch At Login: configures startup
- Settings UI → User Data Cleanup: requests cleanup
- Settings UI → Install Location: requests move
- User Data Cleanup → API Key Storage: deletes API key
- User Data Cleanup → App Data Paths: removes app data
- User Data Cleanup → Launch At Login: unregisters startup
- User Data Cleanup → Install Location: lists installations