Boswell
A private macOS app that turns meeting audio or a pasted transcript into a clean, speaker-checked Obsidian note.
- One surface
- Shortcut + script handoffs gone
- Any input
- record · import · paste
- AI speaker audit
- labels checked, words preserved
- Vault first
- save new note or append
A private Mac app for one job: meeting audio or text into a clean, speaker-checked Obsidian note.
A private Mac app for clean meeting notes.
Boswell turns recordings and transcripts into speaker-checked Obsidian notes without bouncing between Shortcuts, scripts, and manual cleanup.


Capture
Record live audio, import an existing audio or video file, or paste a transcript that is already written.
record · import · pasteTranscribe
Local Models or Gemini return the transcript, and Boswell opens it for review before any note is written.
Local Models / GeminiCheck speakers
A Codex pass can fix speaker labels, but only when the diff changes labels and leaves the spoken text alone.
Codex + local fallbackFile
Save the reviewed transcript as a new Obsidian note or append it to an existing note.
Obsidian save / appendWhat's actually in the app.
Speaker labels only.
The Codex audit can change speaker labels but cannot touch the spoken text, and it only applies a fix at high confidence.
labels only, high-confidenceIt names the transcription path.
Transcription runs locally or through Gemini, and the app tells you which path handled the run. Credentials live in Keychain; settings and history stay on disk.
Local Models · GeminiA recorder, not an assistant persona.
I wanted the name to feel like a record keeper, not a chatbot. James Boswell is the reference: a biographer and diarist known for keeping the record. This app does the practical version. It captures the conversation, keeps speakers straight, and files the note where I can find it again.
James Boswell · diaristThe rules I held the build to.
- Recording writes a source backup before transcription, so a bad run never costs the audio.
- The transcript opens in a review-and-edit step before any note hits the vault.
- A Codex correction changes speaker labels and leaves the spoken text alone.
- With no Codex available, a local heuristic audit runs instead.
- Keys stay in the Keychain, kept out of config files and the repo.
- Finder opens the app only when the whole .app is signed.
The app, the build script, and the workflow it replaced. All private, nothing published.
The installed Mac app. Local, private, ad-hoc signed.
local · ad-hoc signedOne command that compiles the SwiftPM target, stages dist/Boswell.app, signs the whole bundle, and launches it.
SwiftPM → dist/Boswell.appA Shortcuts recorder, a folder of .command launchers, a Python transcription script, and a by-hand speaker-label cleanup. Four pieces I kept in sync by hand.
private tool · personal use

