Hosted Teleop
Operate a DimOS robot remotely from any browser or Quest headset over WebRTC. The robot dials out to a hosted Cloudflare Realtime SFU broker (teleop.dimensionalos.com), so you don’t need to open any inbound ports on the robot’s network — it works behind a home router, on Wi-Fi, or wired LAN.Quick Start
Get an API key
- Visit teleop.dimensionalos.com and sign up.
- On the dashboard, API Keys → + New Key.
- Copy the key (shown once) and pass it as
TELEOP_API_KEYwhen launching the blueprint.
Available blueprints
Pair with the recorder to log a session and emit a transport-stats report:
recording_teleop_<ts>.db plus a report.md next to it on
disconnect. Reports can also be regenerated from an existing .db:
Operator inputs
The browser is modality-agnostic — it just streams whatever the device gives it, and the robot blueprint decides what to do with it.
Shift = 2× speed, Ctrl = ½× speed and strafe on keyboard.
Live metrics HUD
While connected, the operator sees a metrics overlay (corner pill in the browser, in-headset stats panel in VR). Color-coded green/amber/red based on video and command-plane health:
The recorder captures these to the session
.db and summarizes them in
report.md.
Configuration
HostedTeleopConfig (base, applies to both subclasses):
HostedTwistTeleopConfig adds:
HostedArmTeleopConfig adds:
How it connects
ontrack fires.
For the WebRTC / aiortc / Cloudflare implementation details (MAX_BUNDLE
constraints, candidate propagation, the throwaway SCTP id 0 channel, thread
model), see dimos/teleop/quest_hosted/README.md.
Known Limitations
- Single operator per robot session today. Multi-viewer / single-driver+watchers is roadmapped.
- TURN is not wired yet. ICE relies on STUN only, so direct connectivity must succeed — works on most home/office networks, can fail on symmetric NAT or cellular. TURN field plumbing exists.
- No auto-reconnect. If the link drops mid-session, the operator must click Connect again. The robot side stays up; reconnection is supported, just manual.
- Single camera per robot today. Multi-camera support is roadmapped.
- Operator is in a fixed slot until clean disconnect — a tab-close leaves the slot held until the broker’s grace timeout fires (or the robot restarts).
