Write code.
Control anything.

Origin is the open-source platform for controlling robots and hardware devices. One CLI to manage devices, install apps, and launch control interfaces — from Arduinos to simulated quadrupeds to humanoids.

Arduino · Unitree Go2 · Unitree G1 · MuJoCo Simulator · ESP32 · More
npx originrobot up
origin install github.com/user/app
origin launch agent-ctrl --device toy-car
origin devices
origin status
origin secrets set app KEY value
GET /devices/:id/state
POST /devices/:id/actions
npx originrobot up
origin install github.com/user/app
origin launch agent-ctrl --device toy-car
origin devices
origin status
origin secrets set app KEY value
GET /devices/:id/state
POST /devices/:id/actions

One platform for all your robots

Origin is a CLI + dashboard for managing hardware devices and the apps that control them. Connect over Bluetooth, Serial, or TCP. Install apps from GitHub. Launch control interfaces with one command. Everything goes through a unified REST API.

01
CLI + Dashboard
One command — origin up — starts the core server and a full Next.js dashboard. Manage devices, install apps, configure secrets, and launch controllers from the terminal or the browser.
02
Device Management
Connect hardware over Bluetooth, USB Serial, or TCP. Each device auto-registers its sensors, actions, and state schema. Built-in profiles for Unitree Go2, G1, and Arduino. Live state via SSE.
03
App Platform
Apps are directories with an origin-app.json manifest. They declare device requirements, frontend runtime, optional backend, and secrets. Install from GitHub, launch against any compatible device.
04
Simulator Support
Built-in MuJoCo simulator integration. Start simulated quadrupeds and humanoids from the dashboard. Test your apps against physics simulations before deploying to real hardware.

From microcontrollers to humanoids.

Any device that communicates over a transport adapter is an Origin device. Connect real hardware or launch MuJoCo simulations — your apps work with both.

Arduino
Bluetooth / Serial
Live
Unitree Go2
12-DOF Quadruped
Live
Unitree G1
23-DOF Humanoid
Live
MuJoCo Sim
Physics Simulator
Live

Three commands to control a robot.

Origin separates device management from application logic. The server manages connections — your apps provide the brains.

01
Start Origin
Run npx originrobot up to start the core server and dashboard. Devices connect over Bluetooth, Serial, or TCP. The MuJoCo simulator can be launched from the dashboard.
02
Install an app
Run origin install github.com/user/app or install from the dashboard. Apps are directories with an origin-app.json manifest — they declare what devices they support and what they need to run.
03
Launch
Run origin launch my-app --device go2 or click Launch in the dashboard. Origin spawns the app, connects it to the device, and you get a live control interface.
origin-app.json
{
  "name": "My Robot Controller",
  "id": "my-controller",
  "version": "0.1.0",

  "device": {
    "type": "quadruped",
    "requiredActions": ["set_pos", "reset"],
    "requiredState": ["body_z"]
  },

  "runtime": {
    "type": "nextjs",
    "port": 3001
  },

  "secrets": [{
    "key": "OPENROUTER_API_KEY",
    "required": true
  }]
}
This is the whole manifest.
Your app declares what type of device it needs, what actions and state keys it requires, and how to run its frontend. Origin handles compatibility checking, secret management, process lifecycle, and health monitoring.
The same app runs against a real Unitree Go2 over TCP or a MuJoCo simulation — Origin provides the same API for both.
Your app doesn't know or care if the robot is real or simulated. It just reads state and sends actions.
Install from GitHub

The Origin App Platform

Share robot apps with the community. Install from any GitHub repo, configure secrets, and launch against your device. Each app gets a full control interface with live telemetry and logs.

agent-controller
origin / wheeled
mujoco-policy-ctrl
origin / quadruped
patrol-route
community / wheeled
gait-trainer
community / humanoid
your-app
you