OpenDot separates configuration, durable state, runtime sessions, hosted providers, and firmware connections.
Current system
Platform stack
Docs
docs/ publishes product, setup, architecture, and contributor guidance.Console
Platform API
Database
Voice runtime
/voice and /ws WebSocket sessions, the
/realtime/client-secret boundary for browser Speech-to-speech tests, and the
server-side Realtime bridge for Speech-to-speech Dot turns.Providers
Device firmware
Packaging
Local development topology
Local development can run as a Compose stack or as separate pnpm processes.
docs/
with mint dev.
Use Runtime configuration when changing environment
variables or service URLs.
Voice turn flow
Sandwich turns move through VAD, STT, LLM, and TTS. Speech-to-speech uses browser WebRTC or the runtime device bridge.
- Sandwich Browser Test: the platform mints a short-lived voice-session
token, then the runtime verifies it before accepting
/voice. - Dot device: activated devices use stored device credentials, then the
runtime verifies them before accepting
/ws. Sandwich agents use the Deepgram + LLM + TTS path; Speech-to-speech agents use a server-side OpenAI Realtime WebSocket bridge while firmware keeps sending and receiving Opus. - Speech-to-speech Browser Test: the platform mints a realtime
browser-session token at
POST /api/runtime/realtime-browser-sessions, the runtime exchanges it at/realtime/client-secretfor an OpenAI Realtime client secret, and the browser connects with native WebRTC.
OPENAI_API_KEY stays inside the runtime. OPENAI_BASE_URL only affects the
Sandwich LLM stage; OpenAI Realtime browser secrets and device bridges call
OpenAI’s Realtime API from the runtime.
See Configuration for stage settings and
Browser Test for the live test loop.
Device activation and binding
Device activation starts at OTA bootstrap, then stores device credentials and applies the bound identity config on authenticated sessions.
/ws
connections use that credential, and the runtime loads the currently bound agent
configuration from the platform API before choosing Sandwich or
Speech-to-speech.
See Dot Device console for the product flow and the firmware
README for flashing and LAN setup details. See Dot device
for the firmware and hardware reference target.
Data ownership
OpenDot-owned PostgreSQL tables keep identity mapping, agents, pipelines, devices, sessions, and deployments durable.