Apple first, Whisper next — first-run storyboard

One researcher, a fresh Mac on macOS 26+, English UI, drags one 18-minute interview recording (no Teams transcript) into a new project. Left: what they see today. Right: the proposed slice. Spec: docs/design-apple-first-transcription.md.

Artefact: what the app would draw Commentary: why, timing, strings

1 · The run starts0:05 after the drop

TODAY

shipped chrome.pipeline.analysing · etaMinutes
Checkout study
Projects
Checkout study
Analysing · ~2 min left

Nothing to see here, yet.

PROPOSED

shipped stage.transcribe · sessionsCount · NEW modelDownload.pill
Checkout study Downloading speech model
Projects
Checkout study
Transcribing · 1 of 1

Nothing to see here, yet.

Commentary Today the row says Analysing · ~2 min left, but the 1.6 GB Whisper download runs first, inside the run; the estimate is sent before the download and does not count it, and the ring fills against the clock while nothing but the download is happening. Proposed: Apple's model is already on the Mac (English came with macOS 27), so transcription starts at once, and the Whisper download starts beside it as an app-wide job in the toolbar's status zone, the sibling of the Ollama download pill. No new question, no explanation in the row, and no time estimate on a Mac that has never run anything (there is no history to base one on).

2 · Under a minute in0:45

TODAY

shipped chrome.pipeline.analysing · etaMinutes
Checkout study
Projects
Checkout study
Analysing · ~2 min left

Nothing to see here, yet.

PROPOSED

shipped stage.quotes · sessionsCount · NEW modelDownload.pill
Checkout study Downloading speech model
Projects
Checkout study
Finding quotes · 1 of 1

Nothing to see here, yet.

Commentary Today nothing visible has changed: the row still reads as analysis while bytes arrive, and on weak Wi-Fi it stays like this for five minutes or more. Proposed: transcription is done (about 15 s for 18 minutes of audio) and the LLM stages are running; the download continues in the pill.

3 · The first reportproposed ≈ 1:00 · today ≈ 4:20

TODAY · 1:00

shipped chrome.pipeline.analysing · etaMinutes
Checkout study
Projects
Checkout study
Analysing · ~2 min left

Nothing to see here, yet.

PROPOSED · 1:00, pill clicked

system Progress.localizedAdditionalDescription · NEW modelDownload.pill · .title · .why · .stop · .stopNote
Checkout study Downloading speech model
Projects
Checkout study
18 Oct 2026

Checkout study

Downloading speech model

600 MB of 1.6 GB (10 MB/s) — About 2 minutes remaining

For your next recordings. Whisper copes better with poor audio, people talking over each other and larger groups.

Starts again from the beginning next time.

Stop Download
Commentary Proposed: the report is readable about three minutes earlier on typical broadband (six on weak Wi-Fi). The popover is the honest progress the owner asked for: size, amount, speed and time left, in Foundation's own words, so the researcher can decide (carry on, move to faster Wi-Fi, stop). Stop Download rather than Cancel, because there is no resume: stopping throws the downloaded part away, and the note says so. The title names a speech model, not a repository; Whisper is named in the sentence. The date subtitle is the row's existing ready state (system-formatted). Today, at this moment, the row is unchanged from frame 1; its report lands near 4:20.

4 · When the language guess is wrongEnglish UI, Spanish interview

TODAY

No difference today: Whisper detects the language, after the download.

PROPOSED · pointer resting on the row

NEW modelDownload.pill · NEW chrome.pipeline.waitingForDownload · …Hint (tooltip)
Entrevistas Downloading speech model
Projects
Entrevistas
Waiting for download

Nothing to see here, yet.

This recording doesn't sound like English. It will be transcribed once Whisper has downloaded.
Commentary Apple's English model on Spanish audio gives itself low confidence (0.10–0.38 over the first two minutes, against 0.92 in the right language), so the guess is caught and Apple's text is thrown away. The run finishes with the other sessions; this one is deferred, reads Waiting for download like a queued row (information, no glyph), explains itself in the tooltip, and is transcribed by Whisper when it lands. The reverse case, English audio under a Spanish or German UI, came back as English and needs no gate. The tooltip sentence is owner-written copy.

5 · Settings ▸ Transcription

TODAY

shipped transcriptionSettings.backendLabel · backendAuto · backendHint · modelLabel · modelRecommended
Backend
Auto detects the best engine for your Mac.
Auto ⌄
Model
large-v3-turbo (recommended) ⌄

PROPOSED · download in progress

shipped readScreens* · NEW transcriptionSettings.engine* · whisper* · modelDownload.stop · system Progress
Transcribe with
Apple's speech model is already on this Mac and is faster. Whisper copes better with poor audio, people talking over each other, larger groups, and languages Apple's model lacks.
Whisper when ready ⌄
Whisper
600 MB of 1.6 GB (10 MB/s) — About 2 minutes remaining
Stop Download
Read shared screens
Reads the text on screens shared in recordings, on this Mac, and keeps it with small pictures of each screen in the project's folder. Never sent to the AI.
●
Commentary Today the pane asks a question researchers can't answer (MLX or faster-whisper are two builds of the same engine) and shows nothing about whether the 1.6 GB model is here. Proposed: one choice stated as a behaviour (Whisper when ready, Whisper only, Apple's speech model), one sentence on when each is better, and a status row fed by the same download job as the pill: Download Now, progress with Stop Download, or On this Mac · 1.6 GB. MLX vs faster-whisper moves behind the Diagnostics preference; the interim model picker leaves the pane. The progress line is Foundation's own wording, localised by the system.

6 · Whisper is ready; the next recording≈ 2:45, then later that day

TODAY

Same as proposed from here on: every recording is transcribed by Whisper.

PROPOSED · second recording dropped

shipped stage.transcribe · sessionsCount
Checkout study
Projects
Checkout study
Transcribing · 1 of 1

Checkout study

Commentary The pill has gone: absence is the signal that Whisper is ready. The new recording goes through Whisper. The first session stays Apple's transcript, because re-transcribing it would orphan any stars, tags or edits made on it; which engine wrote each session is recorded and shown in the diagnostics row only.

String plan

KeyEnglishStatus
desktop.chrome.pipeline.* (analysing, stage.transcribe, stage.quotes, sessionsCount, etaMinutes)as shippedreused
progress lineFoundation Progress.localizedAdditionalDescriptionsystem, no key
desktop.modelDownload.pill, .titleDownloading speech modelnew (Ollama's download keys move here too)
desktop.modelDownload.whyFor your next recordings. Whisper copes better with poor audio, people talking over each other and larger groups.new · owner to word
desktop.modelDownload.stop, .stopNoteStop Download · Starts again from the beginning next time.new
desktop.chrome.pipeline.waitingForDownload, …HintWaiting for download · This recording doesn't sound like {{language}}. It will be transcribed once Whisper has downloaded.new · owner to word
desktop.transcriptionSettings.engine*, whisper*, downloadNowTranscribe with · Whisper when ready · Whisper only · Apple's speech model · Apple's speech model needs macOS 26. · Whisper · On this Mac · {{size}} · Download Nownew (replace backendLabel, backendAuto, backendHint)