Web SDK

Local transcription for web apps.

@voxd/client connects your web app to Vox Companion on the user's Mac. Check whether it is available, transcribe audio, add word timings, and show a clear fallback when it is offline.

Read integration docs
SDK flow
import { createVoxdClient } from "@voxd/client"
const client = createVoxdClient()
if (await client.probe()) {
await client.transcribe({ audio: blob })
}
probe()transcribe()align()launch()

Connect the browser to a local speech engine.

Browser-native API

Send audio from the browser as a Blob, File, or ArrayBuffer. When Vox Companion is installed, you do not need a backend proxy.

Check first

Call probe() when your page loads. If Vox Companion is unavailable, show a clear way to install or open it.

Transcribe or align

Use transcribe() for audio already in the browser. Use align() when Vox should download audio and return word timings.

Private by default

Vox Companion processes audio on the user's Mac. This works well for internal tools and other privacy-sensitive apps.

How it works

Install the package. Check for Vox Companion. Send audio.

The package only handles the connection to Vox. Your app still controls recording and browser permissions.

Add the browser SDK to your web app.

Create the local bridge client.

Check whether the companion is available on this Mac.

Send captured audio to the local runtime and get transcript text plus timing data.

What the SDK does

A small, predictable bridge to Vox Companion.

Call probe() so your app knows whether Vox Companion is available. If it is not, show a clear install or launch option.

Use transcribe() for audio already in the browser. Use align() when Vox should download the audio and return word timings.

Audio stays on the Mac. Your web app gets a small, typed client instead of another speech backend.