Local-first voice AI for the web

Run language models on-device, drive a voice agent, and ship the call UI — with no inference server in the loop.

npm install @valora-ai/react
 VAD ──► STT ──► [TurnDetector] ──► LLM ──► Speaker (TTS + Player)
  │                                            │
Silero    Moonshine / Whisper            Kokoro-82M
              │                                │
        LFM2.5 WebGPU kernels  ◄── on-device, no server

Works with React, Next.js, Vite, and Bun

WebGPU-native kernels

Hand-written compute kernels, not a generic ONNX runner.

No server round-trip

VAD, STT, LLM, and TTS all run in the tab.

Drop-in AI SDK provider

generateText/streamText work unchanged, in-process.

@valora-ai/voice

Framework-agnostic voice-agent runtime — VAD → STT → LLM → TTS as one reactive state machine, with pluggable engines.

npm install @valora-ai/voice

@valora-ai/ai-sdk

In-process AI SDK provider for local WebGPU language models. Hooks live at @valora-ai/react/local.

bun add @valora-ai/ai-sdk

@valora-ai/react

The call UI — particle orb, transcript rail, controls — on a re-skinnable headless layer.

npm install @valora-ai/react

For builders

Stack all three packages for a fully local, in-browser voice assistant — no API key, no server round-trip, conversations never leave the device.

For agents

One package per concern, typed end to end — point a coding agent at the relevant package docs and it has everything it needs to wire a local voice pipeline together.