How to vibe codeMacWhisper
Audio and video transcription powered by local AI
goodsnooze.gumroad.com ↗Developer Tools & Utilities
The verdict: can you vibe code MacWhisper?
You can build a personal clone of MacWhisper for yourself in a few weekends, but getting the Metal GPU acceleration and native audio hooks rock-solid will test your patience.
MacWhisper is fundamentally a thin, highly polished SwiftUI wrapper around open-source Whisper C++ weights running via Apple's Metal framework. While an AI coding agent can scaffold the SwiftUI file list, export formatters, and basic UI instantly, you will hit roadblocks compiling whisper.cpp inside a modern Swift package, managing local model downloads cleanly, and handling edge cases with system audio capture permissions. For personal use, building it is a great weekend project; paying €59 is infinitely more rational if you just want a transcription tool that works today.
Estimated effort: 2-3 weekends of focused development and debugging
What you can't replicate
- Jordi Bruin's brand reputation and integration into the Mac indie community
- Years of edge-case bug fixes across hundreds of obscure audio and video codec formats
Founded
2022
Raised
—
Team
1 (Solo developer)
Cheapest paid tier
~€59
What MacWhisper does
MacWhisper converts audio and video files into text locally on your Mac using OpenAI's Whisper models and Nvidia Parakeet via Apple Silicon GPU acceleration.
Core features
- Local audio/video file transcription using whisper.cpp or WhisperKit
- Apple Metal GPU acceleration for fast local inference
- Support for multiple model sizes (Tiny, Base, Small, Medium, Large, Turbo)
- Speaker diarization and timestamp generation
- Audio recording hooks from microphone and system audio
- Export to SRT, VTT, TXT, CSV, and JSON formats
- Batch file processing pipeline
- Built-in CLI utility for script automation
The business
Pricing
- FreeFree
- Pro~€59
Funding
Unknown / bootstrapped
Pay vs build, cumulative
Break-even at month 1 — after that, every month is money kept.
The hard parts of vibe coding MacWhisper
- Compiling and managing C++ inference runtimes (whisper.cpp) inside a Swift/SwiftUI wrapper
- Optimizing memory constraints and GPU weight quantization to run large models on standard consumer MacBooks without thermal throttling
- Implementing low-latency system audio capture without breaking macOS audio sandbox permissions
- Handling multi-threaded file queueing and batch progress states cleanly in SwiftUI
How to vibecode MacWhisper
Prerequisites
Mac with Apple SiliconExisting hardware
Required for Metal GPU acceleration to run Whisper models locally at usable speeds
XcodeFree
Required to build and run native macOS Swift applications
Node.jsFree
Required to run helper tooling and AI coding agent runtimes
AI coding tools
Recommended stack
| Frontend | SwiftUI (Native macOS) |
|---|---|
| Backend | Swift (Local process execution) |
| Database | SwiftData / SQLite (Local file storage) |
| Auth | None (Local desktop utility) |
| Payments | None (Personal use clone) |
| Other | whisper.cpp / WhisperKit (Local ML inference), AVFoundation (Audio playback and capture) |
Hosting & infrastructure
| Local Mac | Runs locally as a native macOS application | $0/mo |
Build guide
01Scaffold Native macOS App Shell
Initialize a new SwiftUI macOS application project configured for Apple Silicon with standard window navigation, sidebar file drop zone, and local settings storage.
Create a new SwiftUI macOS desktop application structure using Swift package manager or Xcode project layout. Set up a split-view layout featuring a sidebar for navigation (Files, Settings, About), a central drop zone supporting drag-and-drop of audio and video files (mp3, wav, mp4, m4a, mov), and a bottom status bar showing processing progress. Implement a local settings view using AppStorage to save user preferences such as default Whisper model size (tiny, base, small, medium, large-v3, turbo), output format checkboxes (SRT, VTT, TXT, JSON), and language selection. Ensure the app adheres to macOS Human Interface Guidelines with a clean translucent sidebar and Dark/Light mode support. Provide all necessary Swift file structures and Xcode configuration notes.02Integrate WhisperKit / whisper.cpp Engine
Embed whisper.cpp or WhisperKit into the Swift project to handle offline speech-to-text inference utilizing Apple Metal GPU acceleration.
Integrate whisper.cpp or WhisperKit into the Swift project to handle local offline audio transcription. Write a Swift wrapper class (TranscriptionEngine) that manages model file downloads from Hugging Face into the application's Application Support directory, checks for existing weights, and initializes the model with Metal GPU acceleration enabled. Expose asynchronous async/await functions for processing an audio file URL with progress reporting callbacks (0.0 to 1.0). Handle edge cases such as missing model weights, unsupported sample rates, and out-of-memory errors gracefully by catching exceptions and passing descriptive error messages back to the UI state. Provide complete, paste-ready Swift code.03Audio Extraction and Conversion Pipeline
Implement AVFoundation media extraction to convert imported video and audio files into 16kHz mono WAV files required by Whisper models.
Build an audio preparation pipeline using AVFoundation and CoreAudio in Swift. When a user drops a video file (e.g., MP4, MOV) or compressed audio file (e.g., M4A, MP3), the pipeline must extract the audio track, resample it to 16kHz mono PCM WAV format, and store it in a temporary caching directory. Implement cleanup routines to delete temporary files when processing completes or fails. Ensure the UI displays an informative progress indicator during the extraction phase before handing the WAV file over to the TranscriptionEngine. Handle errors gracefully if the media file is corrupted or lacks an audio track.04Transcription Viewer and Export Engine
Build a rich text viewing interface for transcripts with timestamps and export format generators for SRT, VTT, TXT, and JSON.
Create a SwiftUI view for displaying completed transcription results, featuring a split layout with timestamped segments on the left and searchable text on the right. Clicking a segment should copy its timestamp or highlight the text. Implement export utility functions that convert the array of transcribed segments into standard formats: plain text (.txt), SubRip subtitles (.srt), WebVTT (.vtt), and structured JSON. Add an 'Export' button that triggers a native macOS NSSavePanel allowing the user to save the generated files to their desired directory. Include a 'Copy to Clipboard' action with visual confirmation feedback.05Batch Processing Queue and CLI Companion
Add multi-file batch queueing management and a lightweight command-line interface (CLI) wrapper for terminal automation.
Extend the application to support batch processing of multiple audio and video files simultaneously using an actor-based concurrency queue in Swift. Display a queue status list showing individual file progress states (Pending, Extracting, Transcribing, Completed, Failed). Additionally, create a secondary target or command-line executable script in Swift using ArgumentParser that allows running transcriptions headlessly from the terminal by passing an input file path and model size flag. Test that both the GUI queue and CLI tool share the same core transcription engine without locking the UI main thread.
Cost vs paying for MacWhisper
What will you build it with?
Starting total with Claude Code$0 one-time
Starting costs (one-time)
- Apple Silicon MacOwned hardware
- AI Coding Assistant (Claude Pro / Cursor)$20 one-time
Total~$20 one-time
Ongoing costs (monthly)
- Local offline execution (Zero cloud API costs)$0/mo
Total$0/mo
Paying for MacWhisper
€59 one-time (~$69 USD)
Your time to build
15-25 hours
AI tool credits
$20 (Claude Pro / Cursor)
Break-even
N/A (Built for personal utility and learning)
Vibe code MacWhisper: FAQ
- Can you vibe code MacWhisper yourself?
- Solid side project — 65/100 vibecodeable. You can build a personal clone of MacWhisper for yourself in a few weekends, but getting the Metal GPU acceleration and native audio hooks rock-solid will test your patience.
- How long does it take to vibe code MacWhisper?
- 2-3 weekends of focused development and debugging — roughly 15-25 hours of hands-on time with an AI coding agent.
- How do you build your own MacWhisper?
- Scoped to personal use: SwiftUI (Native macOS) on the front, Swift (Local process execution) behind it, SwiftData / SQLite (Local file storage) for data. Follow the 5-step build guide on this page — each step has a paste-ready prompt for an AI coding agent.
- How do you code your own MacWhisper without being an expert?
- Use an AI coding tool (Claude Code or Cursor) and work in small steps: scaffold, data model, core screens, then deploy. Realistic effort: 2-3 weekends of focused development and debugging. The prompts on this page are written so the AI does the heavy lifting.
- How much does it cost to vibe code MacWhisper instead of paying?
- About ~$20 one-time to start and $0/mo to run, versus €59 one-time (~$69 USD) for MacWhisper. Break-even: N/A (Built for personal utility and learning).
- What stack should you use to vibe code MacWhisper?
- SwiftUI (Native macOS); Swift (Local process execution); SwiftData / SQLite (Local file storage); plus whisper.cpp / WhisperKit (Local ML inference), AVFoundation (Audio playback and capture).