PennyScribe is a native macOS app for recording or importing meetings, transcribing them with OpenAI diarization, and producing detailed meeting summaries.
It can:
- Record microphone audio plus Mac system audio, including audio from apps like Zoom.
- Import existing audio/video files for transcription.
- Store multiple OpenAI API keys securely in macOS Keychain.
- Transcribe with
gpt-4o-transcribe-diarizeusingchunking_strategy=auto. - Summarize with a selectable model: GPT-5.4-mini, GPT-5.4, or GPT-5.5.
- Save timestamped transcripts and summaries locally so past meetings can be reloaded.
The name is a nod to cheap API usage: pennies for transcripts and summaries.
Current release: v1.0
The recommended Mac installer is the signed, notarized, stapled DMG from the GitHub release:
PennyScribe-macOS.dmg
Open PennyScribe-macOS.dmg, drag PennyScribe.app to Applications, then launch it.
The release DMG is Developer ID signed, notarized, and stapled.
macOS will ask for:
- Microphone: needed to record your own voice.
- Screen & System Audio Recording: needed for system audio, such as audio from Zoom.
If recording fails the first time, open System Settings → Privacy & Security and enable those permissions for PennyScribe, then restart the app.
The app can store multiple OpenAI API keys. Key labels are stored in app preferences; key secrets are stored in macOS Keychain. Select the key you want before transcription/summarization.
Use either:
- Start Recording / Stop to capture mic + Mac system audio.
- Choose Audio/Video to import an existing media file, such as
.m4a,.mp3,.wav,.mp4,.mov, or.webm.
Imported media is copied into a timestamped PennyScribe session folder before transcription so the transcript, summary, and source file stay together.
Audio, imported media, transcripts, and summaries are stored locally under:
~/Documents/PennyScribe Recordings/
Each meeting folder and generated file is timestamped, for example:
PennyScribe-2026-04-30-013000-mixed.m4aPennyScribe-2026-04-30-013000-transcript.txtPennyScribe-2026-04-30-013000-summary.md
Completed transcripts and summaries can be reloaded from the Past Meetings section in the app sidebar.
- Recordings and imported media are stored locally before transcription.
- Transcription sends the selected audio/video or mixed recording to OpenAI using the selected API key.
- Summarization sends the transcript to OpenAI using the selected API key.
- API key secrets are stored in macOS Keychain, not plaintext app preferences.
swift test
python3 scripts/build_macos_app.py --sign-identity '[REDACTED]'
xcrun notarytool submit dist/PennyScribe-macOS.dmg --keychain-profile [REDACTED] --wait
xcrun stapler staple dist/PennyScribe-macOS.dmg