WordInk GitHub

Dictation as a component

WordInk adds push-to-talk dictation to any text field in your web app. Hold a button, speak, let go: the text lands at the cursor, and the field's native undo still works. Use your own Groq, OpenAI or Deepgram key through a small relay you host, or a local model that runs in the browser. No WordInk account, no WordInk servers, no telemetry. MIT licensed.

<textarea id="message"></textarea>
<wordink-mic for="message" endpoint="/api/wordink"></wordink-mic>

Try it

This demo runs Moonshine tiny in your browser, so it needs no key and your audio never leaves this tab. The first press downloads the model (about 32 MB on WASM, about 80 MB on WebGPU); after that it is cached.

Hold the button (or Alt+D) and speak.

What you get

Packages

Package What it is
@wordink/web The <wordink-mic> element, as an ES module and a single-file CDN build
@wordink/react useDictation and a typed <WordInkMic> wrapper (React 19)
@wordink/core The engine: a Rust core compiled to WebAssembly plus a small TypeScript host
@wordink/local Offline speech recognition (Moonshine via transformers.js)
@wordink/server The credential relay for Cloudflare Workers, Node or any Fetch API runtime