---
title: "OpenVibe.Bot: drive your robot from any browser"
canonical: "https://openvibe.bot/"
updated: null
---

# OpenVibe.Bot: drive your robot from any browser

HTML: [OpenVibe.Bot: drive your robot from any browser](https://openvibe.bot/)

Alpha

# Drive your robot from any browser.

An open control panel for robots. Pair a robot with one pasted command, then drive it with a touch joystick, the keyboard or a gamepad. Every command passes one gate, with roles, limits and an emergency stop that only you clear.

[Try it now, no account](/try) [Sign in with OpenVibe](/auth/login?next=%2Frobots)

Alpha. A paired robot sends its camera over WebRTC to OpenRestream and the panel plays it live; the first supported kit is the Adeept 4WD Smart Car for Raspberry Pi.

**On the robot's computer**

~~~~
$ curl -fsSL https://openvibe.bot/install | sh
~~~~

1. It finds the kit and shows a short code.
2. Approve the code at [openvibe.bot/link](/link).
3. Open the robot's panel and drive.

Raspberry Pi OS or any Linux. A blank microSD card? [Make its setup files](/setup/sd-card), no screen needed.

- [robot models](/models): 10
- [ways to connect](#connect): 5
- [kinds of control](#models): 21

## Drive one now

[Browse robots](/robots)

- Online

  

  

  

  ### [Simulated rover](/try)

  

  Camera, range finder, line sensors, lights, horn

  

  Anyone, no account

## Robots it drives today

[All 10 models](/models)

- Simulated A differential-drive rover in a small arena, simulated by OpenVibe.Bot (or in your browser at /try).

  

  

  

  ### [Simulated rover](/models/sim.rover)

  

  Drives · Live camera · Range finder
- A phone Any phone as a robot's eyes, voice and face, from its browser with nothing to install.

  

  

  

  ### [A phone](/models/phone.camera)

  

  Live camera · Speaks · Horn
- On-board Raspberry Pi rover with the Adeept Robot HAT.

  

  

  

  ### [Adeept ADR036 4WD Smart Car](/models/adeept.adr036)

  

  Drives · Pan / tilt camera · RGB lights
- On-board The Adeept ADR036 on mecanum wheels.

  

  

  

  ### [Adeept ADR036 4WD Smart Car (mecanum)](/models/adeept.adr036.mecanum)

  

  Drives any direction · Pan / tilt camera · RGB lights
- Bridge Anki Cozmo over PyCozmo.

  

  

  

  ### [Cozmo](/models/cozmo)

  

  Drives · Head · Lift
- Bridge LOOI, the tracked desk robot that uses a phone as its face.

  

  

  

  ### [LOOI desktop robot](/models/looi)

  

  Drives · Head · Battery
- Server-side A bare ONVIF PTZ camera, no motion.

  

  

  

  ### [ONVIF camera](/models/camera.onvif)

  

  Pan, tilt, zoom · Live camera
- On-board Any ROS 2 robot that drives on cmd\_vel (geometry\_msgs/Twist).

  

  

  

  ### [ROS 2 robot](/models/ros2.diffdrive)

  

  Drives · Live camera · Range finder
- On-board A ROS 2 robot with mecanum or omni wheels that moves in any direction on cmd\_vel (linear x and y, angular z).

  

  

  

  ### [ROS 2 robot (mecanum or omni)](/models/ros2.holonomic)

  

  Drives any direction · Live camera · Range finder
- On-board A robot with no hardware of its own.

  

  

  

  ### [Generic relay](/models/relay.generic)

  

  Your own buttons

Each has a profile the panel draws its controls from: a joystick for a base that drives, sliders for a pan-tilt head, buttons for lights and a horn.

## Five ways to connect, one panel

However a robot reaches OpenVibe, it gets the same panel, the same gate and the same emergency stop.

## Five ways to connect, one panel

- [**Simulated** 1 model No hardware at all: it runs inside Bot and in your browser.](/models/sim.rover)

- [**A phone** 1 model The phone's browser is the robot: scan a code, allow the camera, keep the page open.](/models/phone.camera)

- [**On-board** 5 models The OpenVibe Node runs on the robot's own computer, such as a Raspberry Pi, and drives its hardware.](/models#k-onboard)

- [**Bridge** 2 models The Node runs on a computer next to the robot and joins the robot's own link. Nothing on the robot changes.](/models#k-bridge)

- [**Server-side** 1 model Nothing to install: Bot connects to the device itself, like an ONVIF camera.](/models/camera.onvif)

## Online in a minute

3 items

## Online in a minute

The robot connects out to OpenVibe, so there are no ports to open on your router and no stock control server left exposed.

1. **Run one command on the robot**Paste the installer line on its Raspberry Pi or Linux computer. It installs the OpenVibe Node, finds the kit and shows a short code.
2. **Approve it**Sign in at openvibe.bot/link and enter the code. The robot's credential is stored hashed, and you can revoke it any time.
3. **Drive it**Open the robot's panel in any browser, phone included. Share it, list it, or bind it to your OpenVibe.Live channel.

## More on OpenVibe.Bot

6 questions

## More on OpenVibe.Bot

 What the panel does · controls, safety, sharing

- [**Real controls** A touch joystick, the keyboard or a gamepad, plus buttons and sliders, laid out from the robot's profile, with a latency meter.](/try)
- [**Safe by default** Per-robot limits, cooldowns and a turn budget on every command; a latched emergency stop that only the owner clears; a halt always gets through.](/docs/profiles)
- [**Every command on the record** Allowed or refused, each command is audited and kept for 30 days.](/robots)
- [**Share control** Add people by @username as operators or viewers, or open a queue where visitors take turns.](/robots)
- [**Show it on your channel** Bind the robot to your OpenVibe.Live channel: its panel shows under your stream, and anyone allowed takes the controls there.](https://openvibe.live/)

 Let it run without you · routines, webhooks, your agent

They all go through the gate a person does: the same limits, the same e-stop, the same audit.

- [**Routines** Plain step lines such as forward 2, wait 1, say Hello, on demand, on a schedule, or each time the robot comes online.](/docs/automation)
- [**Signed webhooks** Online, offline, e-stop and refused commands sent to your own https address, signed like OpenVibe.Events deliveries.](/docs/automation)
- [**Your agent drives** Turn on Your agent and your OpenVibe.Actor agent can run steps on that robot, as you and nobody else.](https://openvibe.actor/)

 Your computers, for your agents and your AI · the same Node

The same OpenVibe Node runs on your own computers. It connects out, nobody else's work reaches them, and the limits you set on each computer always win.

- [**A desk for each task** Your agents work on desks of their own on your computer, a browser or a whole screen, never yours. Watch any of them live and take it over.](/docs/computers#desks-h)
- [**A spare computer as a desk host** An old laptop or a mini PC hosts desks for all your agents' tasks, with no screen or sign-in, sized to its memory.](/machines)
- [**Your own AI models** Ollama, LM Studio or llama.cpp on your computer answers your Vibe, your AI members and your stream's AI viewers: free, and no port is opened.](/docs/computers#models-c-h)
- [**A desk live on your channel** When you choose, an agent's desk shows on your OpenVibe Live channel for up to 30 minutes, so people can watch it work.](/docs/computers)

 The same robot from your own code · REST and the SDK

A REST API and the openvibe-sdk client, held to the same roles, limits and emergency stop as the panel. Profiles and kits are public reads.

JavaScript (openvibe-sdk)

~~~~
import { createClient } from 'openvibe-sdk/core';
import { createBotClient } from 'openvibe-sdk/bot';

const bot = createBotClient(createClient({ credentials: 'include' }));
const { robots } = await bot.robots.list();

// Half speed ahead for 300 ms, same gate as the joystick
await bot.robots.command(robots[0].id, {
    kind: 'drive', value: { throttle: 0.5, steer: 0 }, ms: 300,
});
~~~~

Public reads (curl)

~~~~
# Every robot model and its controls
curl https://openvibe.bot/api/v1/profiles

# The kits, with their parts lists
curl https://openvibe.bot/api/v1/kits
~~~~

 The first kit: Adeept ADR036 4WD Smart Car Kit for Raspberry Pi · 13 parts

What to get for the robot OpenVibe.Bot was built around. The OpenVibe Node drives its Robot HAT directly, publishes the Pi camera and stops the motors the moment commands stop.

- **1×**Adeept ADR036 4WD Smart Car Kit (acrylic chassis and hardware) Adeept's tutorial download page is the build guide
- **1×**Adeept Robot HAT (PCA9685 motor/servo driver, ADS7830 battery ADC) Comes with the kit; also charges the 18650 pack over USB-C
- **4×**TT DC motors
- **4×**Wheels
- **2×**AD002 pan/tilt servos
- **1×**Raspberry Pi camera module
- **1×**Ultrasonic range sensor
- **1×**Line-tracking module
- **1×**WS2812 RGB LED module
- **1×**Buzzer On the Robot HAT
- **1×**Raspberry Pi 4B or 5 (2 GB or more) Not included in the Adeept kit
- **1×**microSD card, 16 GB or more Raspberry Pi OS Bookworm, 64-bit
- **2×**18650 Li-ion cells The Robot HAT charges the pack over USB-C

[Adeept's build guide](https://www.adeept.com/learn/detail-97.html) [Its model page](/models/adeept.adr036) [Setup guide for the Node](https://github.com/OpenVibers/OpenVibe.Node/blob/main/docs/hardware-adeept.md)

 Build for OpenVibe.Bot · drivers, profiles, the source

- [**Write a driver** A separate program in any language that speaks JSON lines with the OpenVibe Node: every message and the safety rules.](/docs/drivers)
- [**Robot profiles** The JSON that says what a robot can do and which controls its panel shows, with a validator.](/docs/profiles)
- [**Submit a robot** Describe your robot with a profile and point at its driver. Once reviewed, anyone can add one.](/robots/submit)
- [**The source** OpenVibe.Bot and the OpenVibe Node are open source under the AGPL-3.0.](https://github.com/OpenVibers/OpenVibe.Bot)

[All build pages](/docs)

## Robotics jobs on OpenVibe.Work

3 items

## Robotics jobs on OpenVibe.Work

[More jobs](https://openvibe.work/jobs?q=robotics)

- [**Staff Software Engineer - Robotics Platform at Gravis Robotics** Zurich](https://openvibe.work/jobs/job_991p4taq0mhm1w2e4enf07xg5b)
- [**Mechanical Engineer, Electrical Engineer, Robotic Controls Engineer | New York, NY | ONSITE | Full-time | $220K-$300K at Nirvana Robotics**](https://openvibe.work/jobs/job_6wc46ay47fy0nkcjq8s2ntefj1)
- [**Robotics/Hardware Engineer, Simulation Engineer | San Francisco, CA | ONSITE | Full-time | $150k–200k + equity | https://lumenresearch.co at**](https://openvibe.work/jobs/job_e9f563yq1yqq8drsqx17ndb150)

## Questions

10 questions

## Questions

Do I need to open ports on my router?

No. The robot's computer connects out to OpenVibe, so it works behind an ordinary home or mobile connection. The Adeept kit's own control server, with its fixed password, is never run.

Can I try it without a robot?

Yes. The simulated rover at openvibe.bot/try runs in your browser with no account and no hardware, through the same panel a paired robot gets.

Which robots work today?

Simulated rover, A phone, Adeept ADR036 4WD Smart Car, Adeept ADR036 4WD Smart Car (mecanum), Cozmo, LOOI desktop robot, ONVIF camera, ROS 2 robot, ROS 2 robot (mecanum or omni) and Generic relay. Each has a profile the panel draws its controls from, and anything a local script can switch works through the relay robot.

How does it keep the robot safe?

Every command passes one gate with roles, per-robot limits, cooldowns and a turn budget. The emergency stop is latched until the owner clears it, a stop pressed on the robot holds until it is released there, and the device stops its motors by itself when commands stop arriving.

Can other people drive my robot?

Only if you say so. Add people by @username as operators or viewers, or open a queue where signed-in visitors take timed turns. Listing a robot in the directory lets anyone watch it.

Can I show it on my stream?

Yes. Bind the robot to your OpenVibe.Live channel and its panel shows under your stream, where anyone you allow can take the controls.

Can my AI agent drive it?

Only when you turn on Your agent for that robot. Then your OpenVibe.Actor agent can read its state and run steps as you, through the same gate, and for nobody else.

Can my agents use my computer?

Only if you install the OpenVibe Node there and say so. Each agent task gets a desk of its own, a browser or a whole screen, that you can watch and take over, at the level you set on the computer, with a kill switch there. A spare computer can host the desks instead.

Can my AI use the models on my computer?

Yes. Install the Node with --ai where Ollama, LM Studio or llama.cpp runs and turn on "Let my AI use this computer's models": your Vibe, your AI members and your stream's AI viewers can then think with them, free, and only for you.

Is it open source?

Yes. OpenVibe.Bot and the OpenVibe Node that runs on the robot are on GitHub under the AGPL-3.0, and anyone can write a driver or submit a robot profile.

## Part of OpenVibe

3 items

## Part of OpenVibe

One account across every OpenVibe site. Related places to go next:

- [**OpenVibe.Live** Stream your robot](https://openvibe.live/?ov_from=bot)
- [**OpenVibe.Actor** Let an agent drive](https://openvibe.actor/?ov_from=bot)
- [**OpenVibe.Run** Your machines](https://openvibe.run/?ov_from=bot)
