Command Center

What is Scribe?

Scribe is your in-person meeting recorder. Press a button on your iPhone, have your meeting, walk away. A few minutes later, the transcript is here on this site โ€” with each person's words labeled by name, a clean summary, and the action items pulled out.

Think of it like the Teams transcript you already love, but for the real world โ€” coffee shops, client offices, your kitchen table.

๐ŸŽฌ The 30-second feel

  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
  โ”‚   ๐Ÿ“ฑ  YOU                                                โ”‚
  โ”‚       Press the side button on your iPhone               โ”‚
  โ”‚       Voice Memos opens โ†’ tap red dot โ†’ talk โ†’ tap stop  โ”‚
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                          โ†“
  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
  โ”‚   โ˜๏ธ   YOUR PHONE                                        โ”‚
  โ”‚       iCloud quietly sends the recording to your Mac     โ”‚
  โ”‚       (no app, no upload button, no buttons to push)     โ”‚
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                          โ†“
  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
  โ”‚   ๐Ÿ–ฅ๏ธ   YOUR MAC STUDIO                                   โ”‚
  โ”‚       Notices the new recording                          โ”‚
  โ”‚       Writes down every word                             โ”‚
  โ”‚       Figures out who said what                          โ”‚
  โ”‚       Pulls out the action items                         โ”‚
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                          โ†“
  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
  โ”‚   ๐Ÿ“„  THIS WEBSITE                                       โ”‚
  โ”‚       New transcript appears at /info/meetings           โ”‚
  โ”‚       Your Mac beeps you a notification when ready       โ”‚
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

A 30-minute meeting is ready in about 7 minutes. A 5-minute hallway chat is ready in about a minute.

๐Ÿ‘‹ Teach Scribe who you are (one time, 5 minutes)

Before your first real meeting, you'll record 60 seconds of yourself talking. Scribe uses it like a voice fingerprint โ€” after that, whenever you speak in a meeting, the transcript labels it Topher instead of Speaker A. Do this once for yourself, once for Jaime, and you're set forever.

Step 1 โ€” record

  1. Open Voice Memos on your iPhone (the white app with the red waveform icon).
  2. Find a quiet room. Tap the red record button.
  3. Read the script below at normal pace โ€” like you're talking to someone, not reading a contract. ~60 seconds.
  4. Tap stop. Rename the recording to Topher Seed (or whoever's recording).

The script (read this aloud)

"My name is Topher Otten, and I'm recording this so my own AI assistant learns what my voice sounds like. Today is a Thursday in May, and the weather outside is warmer than I'd like. This year has felt like one long sprint between businesses โ€” Aspire Digital, the bowling lanes, the HOA board, the rentals down in Florida, and somehow making time for Jaime, the kids, and a workout if I'm lucky. The hardest part isn't the work itself, it's choosing which thing matters most on any given day. I'm hoping this little experiment with local transcription gives me back twenty minutes after every client meeting that I'd otherwise spend rewriting my own notes. We'll see whether the wheels stay on. Either way, the river keeps running, and I'd rather be in the boat than on the bank watching it go by."

Jaime's script is in the 2026-05-12 chat with Aria. Same idea, different content (the content doesn't matter โ€” your voice is what gets learned).

Step 2 โ€” register it

Voice Memos automatically syncs to your Mac Studio. Once you see the recording on the Mac (Voice Memos app, takes ~30 seconds), open Terminal and run this one line:

cd ~/projects/scribe
uv run scribe enroll "Topher" ~/Library/Group\ Containers/group.com.apple.VoiceMemos.shared/Recordings/Topher\ Seed.m4a

Same command for Jaime, just swap the name and file. If you want to be sure it worked: uv run scribe speakers โ€” it'll list everyone Scribe knows.

That's it for setup. You'll never do this again unless you want to add someone new (Eric, Linq, a client you meet with often). For anyone you don't enroll, transcripts just say "Speaker A", "Speaker B" โ€” still readable, just no name.

๐ŸŽ™๏ธ Recording a meeting (every time)

1

Start the recording

Open Voice Memos and tap the red dot. Even faster: set your iPhone's Action Button (the side button under the silent switch on Pro models) to open Voice Memos โ€” one press from any screen. See the "Action Button setup" below.

2

Set the phone in the middle of the table

The closer everyone is to the microphone, the cleaner the recording. For most coffee-shop or kitchen-table conversations, just laying the phone face-up on the table is fine.

3

Have your meeting

Don't think about the phone. Voice Memos won't get killed by anything โ€” phone calls pause it and resume, screen-locking is fine, putting the phone in your pocket is fine.

4

Tap stop. Walk away.

That's the whole job. Your Mac will take it from here. In a few minutes you'll get a notification: "Scribe ready: [meeting title] ยท 4 speakers ยท 27 min."

๐Ÿ“‚ Where your transcripts live

Every transcript becomes its own page on this site, in chronological order. To browse them all, go to:

๐ŸŽ™๏ธ Your Meetings โ€” /info/meetings

Searchable list of every recording, newest first. Each one is its own page with the summary, action items, and full word-by-word transcript color-coded by speaker.

You can also tap the notification when a meeting finishes โ€” it deep-links straight to the page.

โšก Action Button setup (iPhone 15 Pro / 16 Pro โ€” optional but recommended)

The Action Button is the side button on Pro iPhones โ€” by default it toggles silent mode. Rebinding it to open Voice Memos saves you about three taps and means recording starts with a single physical press from any screen, even the lock screen.

  1. On your iPhone, open Settings โ†’ Action Button.
  2. Swipe through the options until you see Shortcut.
  3. Tap Choose a Shortcut.
  4. Tap + to create new. Add one action: Open App โ†’ Voice Memos. Name the shortcut Scribe.
  5. Press your Action Button. Voice Memos should open. Tap the red dot to record.

Bonus: hands-free trigger

Once the Scribe shortcut exists, open it in the Shortcuts app, tap the (i) info icon, and turn on "Add to Siri." Record the phrase "Hey Siri, start Scribe." Now you can start a recording without touching your phone โ€” useful when you're driving, walking, or your hands are full.

๐Ÿ›ก๏ธ What you don't have to worry about

๐Ÿ”’ Privacy

The audio never leaves your house. It goes from your phone, through iCloud, to your Mac Studio in your office. No third-party company ever hears it. The transcripts live behind a login on this site โ€” only you and Jaime can read them.

๐Ÿ’ฐ Cost

$0/month, forever. No subscription. No "you've used your free minutes" message. Apps like Otter cap you at about 20 hours of meetings a month for $17. Scribe has no cap because your Mac is doing the work.

โฑ๏ธ Limits

Record a 5-minute hallway chat or a 4-hour board meeting โ€” same flow, same result. As long as the phone has battery, Scribe handles it.

๐Ÿง  Getting smarter

Every time you record someone new (Eric, a client), you can add their voice to Scribe with one command. The voice fingerprints are yours โ€” they live on your Mac, they don't reset, and they can never be taken away by a vendor.

๐Ÿฉน If something goes sideways

My transcript shows "Speaker A" instead of my name

Either your voice isn't enrolled yet (run the enroll command above), or the recording was too noisy for the match to be confident. Re-enroll with a cleaner sample โ€” Voice Memos in a quiet room, holding the phone normally, reading the script naturally.

The transcript never appeared

Two likely causes. First: the Mac Studio might be asleep โ€” wake it up, the watcher catches up automatically. Second: iCloud might be slow โ€” wait 5 minutes and check Voice Memos on the Mac. If the recording is on the Mac but no transcript appeared, ask Aria to look at the Scribe logs (she knows where).

The transcript got the words wrong

Whisper (the transcription engine) is excellent but not perfect. It struggles with: industry jargon it hasn't heard before, heavy accents in noisy rooms, and people talking over each other. There's no way to "fix" a transcript in Scribe directly โ€” you'd edit the underlying file. For now, treat the transcript as 95% accurate and human-edit the action items if needed.

I want to share a meeting with someone outside the family

Right now, only you and Jaime can read these pages (Cloudflare Access locks them down). To share a specific meeting, you can: copy the text into an email, screenshot the summary, or ask Aria to make a public link for that one transcript (she'd put it on madebyotten.com behind a hard-to-guess URL).

My client doesn't want to be recorded

Ohio is a one-party-consent state โ€” legally you don't need permission to record a conversation you're part of. But ethically and for trust, you should still tell the room. A casual "hey, mind if I throw a transcriber on this so I don't miss anything?" at the start is usually enough. If they say no, you don't.

๐Ÿ“Œ Where to find this page later

This page lives at cc.madebyotten.com/info/scribe. You can also get here from:

  • The top nav on any Command Center page (๐ŸŽ™๏ธ Scribe)
  • The home dashboard tile
  • The All Info Pages directory under "Aria Tools"
๐Ÿ”ง Engineering notes (for verifying what's under the hood โ€” skip if you're using it day-to-day)

The stack

  • Transcription: MLX-Whisper (Apple's port of OpenAI Whisper Large-v3) โ€” runs natively on Apple Silicon at ~5-12x realtime
  • Speaker diarization: pyannote 3.1 โ€” the open-source state of the art (DER ~11-19% on benchmarks)
  • Voice fingerprints: pyannote/embedding (512-dim ResNet vectors), local SQLite storage with cosine similarity matching
  • Summarization: Llama 3.1:8b (smoke) / Llama 3.3:70b (production) via local Ollama
  • File watcher: Python watchdog daemon under launchd, watching the Voice Memos iCloud sync folder
  • Publishing: Atomic Astro page emission into the command-center repo, then standard CF Pages deploy

Verified working end-to-end

  • 50s synthetic 2-speaker meeting โ†’ 17s wall-clock end-to-end on M3 Max
  • 167s 2-speaker meeting โ†’ 41.6s end-to-end
  • Speaker matching verified: enrolled "Fred" voice auto-labeled across all 4 of his turns
  • 31 unit tests + 1 e2e smoke test, all passing
  • ruff lint + pyright type-check, both clean
  • Astro pages build cleanly into the site
  • launchd daemon plist validates and loads/unloads correctly
  • Watcher idempotent โ€” same file dropped twice gets processed once
  • Watcher resilient โ€” survives missing Voice Memos folder (polls for it to appear)

Bugs UAT caught and fixed

  1. Doctor only checked 1 of 4 gated HuggingFace models โ€” now probes all 4
  2. Missing omegaconf transitive dependency
  3. Embedding dimension hardcoded 192, actual 512 โ€” now auto-detected with consistency enforcement
  4. CLI showed a Python traceback on corrupted audio โ€” now graceful error + exit 1
  5. Watcher crashed if Voice Memos folder didn't exist โ€” now polls every 30s
  6. pyannote 3.1+ returns DiarizeOutput not Annotation โ€” now unwraps both shapes
  7. 15 ruff + 16 pyright errors after second look โ€” all cleaned
  8. raise typer.Exit missing exception chain โ€” fixed

Where the code lives

  • ~/projects/scribe/ โ€” Python repo, separate from aria-secondbrain
  • ~/projects/scribe/docs/IOS_SETUP.md โ€” phone setup deep-dive
  • ~/projects/scribe/docs/OPERATIONS.md โ€” daemon ops, logs, troubleshooting
  • ~/projects/scribe/docs/ARCHITECTURE.md โ€” system diagram + design rationale
  • ~/Library/LaunchAgents/com.topher.scribe-watcher.plist โ€” daemon definition (installed, paused; load with launchctl load <path>)

Tracked in Linear

OPS-42 โ€” closed Done 2026-05-14 PM after the speaker-ID auto-label verification.