Speak the instruction, paste the prompt. Vox turns a spoken ramble into a clean, structured prompt for a language model, and pulls the text out of a screenshot or a photo. All of it runs on your own machine.
Open Vox ↗Code on GitHub ↗Test scripts ↗

The prompts that get good work out of a model are long. They name the files, the constraint that broke things last time, and what not to touch. Typing all that is slow, so people cut it short, and the model guesses at the rest.
Saying it out loud is fast but messy. A raw transcript is full of filler and false starts, and it puts things in the order you thought of them, not the order a reader needs.
Vox sits in between. You talk, Whisper writes it down, and a small local model sorts it into a prompt you can paste. What you dictate is often work in progress, so none of it is sent to a server to do this.
Press Space and speak. The waveform shows it is hearing you, and you can pause and resume within one take. When you stop, Whisper transcribes it on your machine. The transcript is editable, because Whisper gets library names wrong and you should fix them before anything else reads it.

A template says what the prompt should look like: plain cleanup, a coding task, a bug report, a review brief, a design question, or one you write. Each has a role, rules and a reply format, and you can edit all of them.

The prompt streams in as it is written. You can view it rendered or as Markdown source, and Copy prompt always copies the source. Vox also checks the output for its two known failure modes: placeholders it made up, and your template's rules repeated back as the answer. If it finds either, it tells you instead of passing the result off as good.



The second tab takes an image instead of your voice. It is for the times when copying by hand is the only other option: a screenshot of code, a forwarded chat image, a photo of a printed page. You can paste it, drop it in, choose a file, or grab a region of your screen.
Fast uses Tesseract and is the right choice for anything shown on a screen. All of it ships with Vox, so it works with no network at all. When its confidence is under 60%, it says the text is probably unreliable. Photo uses Florence-2 on WebGPU and is for angled, real-world shots. It is a 357MB download the first time, so Vox never picks it for you. The text goes into its own editable box. From there you can copy it, or send it to the transcript and shape it like a spoken take.
Models download once from Hugging Face into browser storage. After that you can disconnect and everything still works. Sessions keep the transcript, the prompt, the template used, and for images the extracted text and a small thumbnail. The original image is not kept.
--- separators don't stop it. So everything the template says goes in the system message and the user message is only the transcript. The rules are written about "the speaker", not "me", because rules in the first person read as content and get echoed back.<angle brackets> or [square brackets], because small models copy those out as if they were the answer. Repetition penalties are off, since they push the model away from reusing your own words, which is exactly what a faithful rewrite should do.localhost does not share them with the hosted one.Open it in Chrome or Edge, where WebGPU gets you the larger models. The page is static: GitHub serves the file, and the recording, transcript and prompt never leave your browser. To run your own copy instead, clone the repository, run python3 -m http.server 43869 in it, and open http://localhost:43869.
The repository includes test scripts: six dictations, each aimed at one way shaping can fail, and four images for the Image tab, with what a pass and a fail look like. The unit tests run in the page itself at ?test=1.
A single HTML file with no build step. Speech recognition is Whisper, run through @huggingface/transformers 3.0.2. Shaping runs through WebLLM on WebGPU, or transformers.js on the CPU. OCR is Tesseract, bundled in the repository, and Florence-2. Models are downloaded from Hugging Face's CDN; typefaces come from Google Fonts and fall back to system fonts offline.