Voice Notes is an open-source, local-first iPhone recorder and transcription app built with SwiftUI.
- AAC recording with pause/resume, live levels, and background capture.
- A local library with search, folders, favorites, Recently Deleted, trimming, mixing, and sharing.
- Waveform playback, scrubbing, speed controls, and Lock Screen controls.
- On-device transcription with WhisperKit or Apple Speech.
- Optional local Qwen model for automatic titles and short descriptions.
- Optional CloudKit and Share extension code paths that you can enable with your own Apple identifiers.
Recordings, transcripts, titles, and summaries remain in the app's local library unless you explicitly configure and enable CloudKit.
- macOS with a current Xcode release
- iOS 17 or later
- XcodeGen
- An Apple development team for physical-device installation
The checked-in Xcode project is generated from project.yml.
git clone https://github.com/libertyequalitydata/VoiceNotes.git
cd VoiceNotes
xcodegen generate
xcodebuild -project VoiceNotes.xcodeproj \
-scheme VoiceNotes \
-destination 'platform=iOS Simulator,name=iPhone 16' \
buildThe repository uses deliberately generic org.example identifiers and does not specify a development team. Before installing on a physical device, replace the bundle, App Group, and CloudKit identifiers with identifiers owned by your Apple Developer account.
- WhisperKit is resolved through Swift Package Manager and downloads its model on demand.
- The optional Qwen model is downloaded at runtime and is not included in this repository.
- A prebuilt
llama.xcframeworkis included to support the local title model. SeeTHIRD_PARTY_NOTICES.mdfor upstream projects and licenses.
The base app builds without App Group or CloudKit entitlements. To enable the Share extension or CloudKit:
- Replace all
org.exampleidentifiers with your own reverse-DNS namespace. - Create matching App IDs, an App Group, and a CloudKit container in your Apple Developer account.
- Enable the corresponding entitlements and embed the Share extension.
- Regenerate the project with
xcodegen generateand test on physical hardware.
The planned Watch companion is described in WATCH-COMPANION.md.
xcodebuild -project VoiceNotes.xcodeproj \
-scheme VoiceNotes \
-destination 'platform=iOS Simulator,name=iPhone 16' \
testRecording, background audio, imports, model downloads, and Lock Screen controls should also be tested on a physical device.
Voice Notes source code is available under the MIT License. Dependencies and downloaded models retain their respective upstream licenses; see THIRD_PARTY_NOTICES.md.
See PRIVACY.md for the privacy policy used by the reference application.