- If clipboard was empty, clear it after paste (don't leave transcript)
- If clipboard had content, restore original content
- Prevents sensitive dictated text from remaining on clipboard
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add "Auto-detect" option at top of language dropdown
- When selected, whisper-cli detects language automatically
- Useful for multilingual users or unknown language content
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add ggml-large-v3-turbo.bin to model list
- Mark as recommended: fast like Medium, accurate like Large
- Update README with new model comparison
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Save clipboard before pasting transcript (text, images, any content)
- Restore original clipboard contents after paste completes
- User's copied content is no longer lost after dictation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Features:
- whisper-cli and dependencies bundled in app (no brew required for users)
- Built-in model downloader with 5 model options (Tiny to Large)
- Download progress indicator (e.g., "45% Downloading Small")
- Model selection dropdown in Settings
- First-run wizard for initial model download
Security fixes:
- Input validation for language and model path
- Private temp directory for audio files
- Auto-cleanup of audio files after transcription
- Auto-detect whisper-cli path (ARM/Intel)
Bug fixes:
- Fixed Settings window crash (NSWindowController)
- Fixed model selection with tag-based indexing
Build:
- bundle-whisper.sh script for packaging whisper-cli
- Updated Makefile with Frameworks bundling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Check multiple paths: /opt/homebrew/bin (ARM), /usr/local/bin (Intel),
/opt/local/bin (MacPorts), ~/bin (user local)
- Show error status if whisper-cli not found
- Use isExecutableFile to verify binary exists and is executable
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Security improvements:
- Audio file now stored in user's private NSTemporaryDirectory
- Filename includes process ID to avoid conflicts
- Audio file deleted after transcription (success or failure)
- Audio file deleted when app terminates
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Security improvements:
- Language selection now uses dropdown with 31 supported languages
- Model path validated: must be .bin file, no path traversal
- Validation runs before transcription execution
- Invalid inputs show error status instead of executing
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add checkAccessibilityPermission() with AXIsProcessTrusted check
- Permission alerts now have "Open Settings" button
- Button opens directly to the relevant Privacy settings pane
- Import ApplicationServices for accessibility API
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Move macOS code to macos/ directory for platform separation
- Add Settings window with configurable language, model path, and sound toggle
- Add launch at login support using SMAppService
- Add proper .app bundle structure with Info.plist
- Add Makefile for build, install, run, and dmg targets
- Store preferences in UserDefaults for persistence
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>