Getting Started
Install the package you need.
Valora is a set of focused packages. Pick the one that matches what you're building, or stack them for a fully local in-browser voice assistant.
@valora-ai/voice
npm install @valora-ai/voice — the voice-agent runtime: VAD → STT → LLM →
TTS, one state machine, pluggable engines.
@valora-ai/ai-sdk
bun add @valora-ai/ai-sdk — an in-process AI SDK provider backed by local
WebGPU engines.
@valora-ai/react
npm install @valora-ai/react — the call UI: orb, transcript, controls, on a
re-skinnable headless layer.
Which do I want?
| I want to... | Reach for |
|---|---|
| Run a model in the terminal or behind an OpenAI-compatible endpoint | apps/cli repo CLI |
| Use a local model with the Vercel AI SDK, in-process | @valora-ai/ai-sdk |
| Use local model/TTS/VAD/transcription React hooks | @valora-ai/react/local |
| Build a browser voice agent (VAD/STT/LLM/TTS loop) | @valora-ai/voice |
| Render a call screen (orb, transcript, controls) bound to that agent | @valora-ai/react |
| All of the above, wired together | All three — see Putting it together below |
Requirements
- WebGPU — Chrome/Edge, or Safari with WebGPU enabled.
- Bun ≥ 1.3.14 for the repo CLI and package scripts.
- React 18+ for
@valora-ai/react.
Putting it together
Stack all three for a fully local, in-browser voice assistant
(STT → LLM → TTS → call UI). The examples/teams-react app is
a complete, runnable reference — no mocks, no server.
import '@valora-ai/react/styles.css';
import { VoiceRoom, BarVisualizer, Transcript } from '@valora-ai/react';
import { createVoiceAgent } from '@valora-ai/voice';
// local hooks live at @valora-ai/react/local — see the local runtime page
function Call({ agent }) {
return (
<VoiceRoom agent={agent}>
<BarVisualizer />
<Transcript />
</VoiceRoom>
);
}