How Meringo Minutes works
Meringo Minutes does two separate things to make its notes checkable, and they're worth keeping apart. Tracing puts a timestamp on a summary sentence, with no AI model involved. Checking has a second model read the summary against the transcript and set aside what it can't support.
Traced
Tracing is plain code that matches a summary sentence back to the transcript. There's no model in it, and it runs on every setup. A sentence it can place gets the timestamp of the line it matched. A sentence it can't place gets no timestamp rather than a plausible one, and the overview at the top never gets one, by design.
Placement isn't as good as I want it to be. In the demo, 4 of the 11 timestamped sentences point at a line that doesn't state the claim, and the other 7 at a line that states only part of it. The 4 misses all land early, and the supporting line follows within about 30 seconds. So treat a timestamp as the place to start listening.
Checked
Checking needs Ollama, the default setup: the setup assistant downloads the check model along with the summary model. A second, different model reads the summary against the transcript it was written from. A model grading its own sentences would prove little, so it's a different one. A sentence it can't support moves into a folded card of unverified sentences, which carries this line: Read it as a lead, not a finding.
This build shows one mark for the whole summary, Checked or Not checked. It doesn't mark sentences one by one. A summary that wasn't checked says why, and offers Check Now.
The check misses things. In the demo it kept a sentence that merges two facts: 31 inquiries waiting, and the oldest from , became 31 inquiries sitting since . It also sets aside sentences that are close to true. One of the demo's four is very nearly right.
Ask
Ask answers only from the transcript. The rarest words in your question pick the lines the model sees. Each line it quotes is looked up word for word, and each sentence it writes goes to the check model against those lines.
When nothing holds, the answer is I found nothing in this meeting that says that.
If no line shares a word with your question, it says that before any model is asked. Ask how somebody felt and you get their own lines on the subject, with no verdict on them.
In the demo it refused all 8 questions the meeting doesn't answer, or answers only in part. It also refused one the meeting did answer. And in another answer it added dollars
when nobody named a currency, and the check let that through.
What it won't do
- It won't guess a timestamp.
- It won't ask a model for a summary when there's no speech. A failed 25-second recording once came back with three confident decisions, copied word for word from the example in the prompt. This rule exists because of it.
- It won't write its own view of a person. A person's page is built from what they said.
- It won't rewrite a word you haven't listed. It offers the correction, and you confirm it.
- It won't guess where you are to switch the announcement off.
The network, and the test that watches it
By default, the only places the app itself connects to are model downloads, the first time each model is needed, and the Ollama server on your own Mac. Ollama fetches its own models from its own registry. The current build never contacts an update server.
The app isn't sandboxed. Its own code keeps it local, and one test watches that code at work.
That test runs a real meeting through the real pipeline, watches the Mac's network sockets while it does, and fails on any connection that isn't local. Its allow-list is one line: localhost:11434. It looks every 100 ms, so a connection that opens and closes between two looks would get past it. It runs on my Mac, not on a build server, and if something it needs is missing it reports SKIPPED rather than a pass. A separate script checks that the test still fails when something does connect out.
Deadlines
A comment in the date code says it better than I would:
An unsortable deadline is a nuisance. An 'Overdue' badge on work that isn't due for another week is a lie, and this app's whole claim is that it doesn't tell those.
In the demo, end of Q3
became and went on the Scheduled shelf. Next Friday
stayed in words, under Outstanding.
Where it's weak
- Transcription. It gets about one word in five wrong: the median word error rate across 66 bench recordings is 18.4%. In the demo it heard
locum
aslocker
,close intake
asclose in 8
, andagreed
asgag read
. - Speakers. It gave 5 of the demo's 56 lines to the wrong voice.
- Languages. Every accuracy figure on this site comes from English recordings. The app lists other languages, and I haven't measured any of them.
- Action items. The demo's action list showed 8 items for 5 commitments, with Dana's locum task in three wordings.
- Mindmap. After the voices were named and two words added to the vocabulary, only 3 of the 7 mindmap points still linked to a moment in the recording, down from 7.
- Speed. One meeting has been timed on this build: 3 minutes 53 seconds of audio took about 6½ to 7 minutes, on an M4 with 24 GB, with the speech models already downloaded. About 236 seconds of that went to the summary and its check, so I can't turn it into a per-hour figure yet.