feat(chat): dictate into the composer with local speech-to-text - #253
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
badcuban
enabled auto-merge
September 6, 2026 16:38
There was no way to speak a prompt. The old Codex realtime voice mode needed paid API access and had been switched off, leaving a dead mic slot. The composer now has a push-to-talk mic. Audio goes to the Threadlines server, which runs sherpa-onnx in a child process with a locally downloaded model (Parakeet by default, Moonshine as the small option). The native runtime and the model files are downloaded on first use, so nothing is bundled and nothing leaves the machine. The model is picked in Settings › General › Dictation; hold-to-record and the microphone are per-device client settings. The realtime voice button is no longer rendered; its code stays.
badcuban
force-pushed
the
threadlines/research-free-composer-dictation
branch
from
September 6, 2026 17:14
51e89ab to
5ca62b0
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What Changed
~/.threadlines/models/speech. Nothing is bundled and no audio leaves the machine.Why
The old realtime voice mode needed paid API access and had been switched off, which left a dead mic slot and no way to speak a prompt. Local speech-to-text is free, private, works on every provider and both clients, and the worker-process design keeps a native crash or a slow model load away from the server's event loop.
Benchmarks on a 12700K for a 16 s clip: Parakeet 1.3 s, Moonshine 0.7 s; pinned to two efficiency cores as an old-PC proxy, 4.5 s and 1.7 s. Both transcribed the clip word for word.
UI Changes
Screenshots of the mic states, the options menu, the setup popover, and the Settings group to be added from the dev app.
Checklist