QuickQuill updates: Two new features, both about search.
Semantic search
You can now search your meeting history by meaning instead of exact words. It all runs on-device, and it works across languages, so a Japanese query can find an English meeting.
Some notes on how this got built, because it didn't go the way I planned. My first version used Apple's built-in embedding API (NLContextualEmbedding), mainly because it needs no model download. I really wanted that to work. But it's a general-purpose model, not tuned for retrieval: short filler lines like "yeah, okay" matched almost any query, and the similarity scores moved around so much that I couldn't find a threshold separating real hits from noise. I tried the usual tricks (centering the vector space, weighting by length) and they helped, but on my real transcripts it was still a coin flip. So I gave up on it and switched to Qwen3-Embedding-0.6B, a model actually trained for retrieval, running locally through llama.cpp. That costs users a one-time 640 MB download, which I was reluctant about, but the results on my own messy meeting data were good enough that I stopped second-guessing it.
Global search launcher
Press Option+Space in any app and a Spotlight-style search bar pops up. Pick a result and QuickQuill jumps to that moment in the transcript. You can change the shortcut, and Esc puts focus back where you were.
To update, Settings > General > Software update. Semantic search is off by default. Turn it on in Settings > General and download the model from there.
Replies