Hardware • Installation • Agent CLI & MCP • Blueprints • Development
⚠️ Pre-Release Beta ⚠️
Dimensional is the modern operating system for generalist robotics. We are setting the next-generation SDK standard, integrating with the majority of robot manufacturers.
With a simple install and no ROS required, build physical applications entirely in python that run on any humanoid, quadruped, or drone.
Dimensional is agent native -- "vibecode" your robots in natural language and build (local & hosted) multi-agent systems that work seamlessly with your hardware. Agents run as native modules — subscribing to any embedded stream, from perception (lidar, camera) and spatial memory down to control loops and motor drivers.
|
|
Navigation and MappingSLAM, dynamic obstacle avoidance, route planning, and autonomous exploration — via both DimOS native and ROS Watch video |
PerceptionDetectors, 3d projections, VLMs, Audio processing |
|
|
Agentive Control, MCP"hey Robot, go find the kitchen" Watch video |
Spatial MemorySpatio-temporal RAG, Dynamic memory, Object localization and permanence Watch video |
Quadruped |
Humanoid |
Arm |
Drone |
Misc |
| 🟩 Unitree Go2 pro/air 🟥 Unitree B1 | 🟨 Unitree G1 | 🟨 Xarm 🟨 AgileX Piper | 🟧 MAVLink 🟧 DJI Mavic | 🟥 Force Torque Sensor |
🟩 stable 🟨 beta 🟧 alpha 🟥 experimental
[!IMPORTANT] 🤖 Direct your favorite Agent (OpenClaw, Claude Code, etc.) to AGENTS.md and our CLI and MCP interfaces to start building powerful Dimensional applications.
```sh skip curl -fsSL https://raw.githubusercontent.com/dimensionalOS/dimos/main/scripts/install.sh | bash
> See [`scripts/install.sh --help`](scripts/install.sh) for non-interactive and advanced options.
## Manual System Install
To set up your system dependencies, follow one of these guides:
- 🟩 [Ubuntu 22.04 / 24.04](docs/installation/ubuntu.md)
- 🟩 [NixOS / General Linux](docs/installation/nix.md)
- 🟧 [macOS](docs/installation/osx.md)
> Full system requirements, tested configs, and dependency tiers: [docs/requirements.md](docs/requirements.md)
## Python Install
### Quickstart
```bash
uv venv --python "3.12"
source .venv/bin/activate
uv pip install 'dimos[base,unitree]'
# Replay a recorded quadruped session (no hardware needed)
# NOTE: First run will show a black rerun window while ~75 MB downloads from LFS
dimos --replay run unitree-go2
# Install with simulation support
uv pip install 'dimos[base,unitree,sim]'
# Run quadruped in MuJoCo simulation
dimos --simulation run unitree-go2
# Run humanoid in simulation
dimos --simulation run unitree-g1-sim
# Control a real robot (Unitree quadruped over WebRTC)
export ROBOT_IP=<YOUR_ROBOT_IP>
dimos run unitree-go2
| Run command | What it does |
|---|---|
dimos --replay run unitree-go2 |
Quadruped navigation replay — SLAM, costmap, A* planning |
dimos --replay --replay-db go2_bigoffice run unitree-go2-memory |
Quadruped temporal memory replay |
dimos --simulation run unitree-go2-agentic |
Quadruped agentic + MCP server in simulation |
dimos --simulation run unitree-g1-sim |
Humanoid in MuJoCo simulation |
dimos --replay run drone-basic |
Drone video + telemetry replay |
dimos --replay run drone-agentic |
Drone + LLM agent with flight skills (replay) |
dimos run demo-camera |
Webcam demo — no hardware needed |
dimos run keyboard-teleop-xarm7 |
Keyboard teleop with mock xArm7 (requires dimos[manipulation] extra) |
dimos --simulation run unitree-go2-agentic-ollama |
Quadruped agentic with local LLM (requires Ollama + ollama serve) |
Full blueprint docs: docs/usage/blueprints.md
The dimos CLI manages the full lifecycle — run blueprints, inspect state, interact with agents, and call skills via MCP.
dimos run unitree-go2-agentic --daemon # Start in background
dimos status # Check what's running
dimos log -f # Follow logs
dimos agent-send "explore the room" # Send agent a command
dimos mcp list-tools # List available MCP skills
dimos mcp call relative_move --arg forward=0.5 # Call a skill directly
dimos stop # Shut down
Full CLI reference: docs/usage/cli.md
See below a simple robot connection module that sends streams of continuous cmd_vel to the robot and receives color_image to a simple Listener module. DimOS Modules are subsystems on a robot that communicate with other modules using standardized messages.
```py skip import threading, time, numpy as np from dimos.core.coordination.blueprints import autoconnect from dimos.core.core import rpc from dimos.core.module import Module from dimos.core.stream import In, Out from dimos.msgs.geometry_msgs import Twist from dimos.msgs.sensor_msgs import Image, ImageFormat
class RobotConnection(Module): cmd_vel: In[Twist] color_image: Out[Image]
@rpc
def start(self):
threading.Thread(target=self._image_loop, daemon=True).start()
def _image_loop(self):
while True:
img = Image.from_numpy(
np.zeros((120, 160, 3), np.uint8),
format=ImageFormat.RGB,
frame_id="camera_optical",
)
self.color_image.publish(img)
time.sleep(0.2)
class Listener(Module): color_image: In[Image]
@rpc
def start(self):
self.color_image.subscribe(lambda img: print(f"image {img.width}x{img.height}"))
if name == "main": autoconnect( RobotConnection.blueprint(), Listener.blueprint(), ).build().loop()
## Blueprints
Blueprints are instructions for how to construct and wire modules. We compose them with
`autoconnect(...)`, which connects streams by `(name, type)` and returns a `Blueprint`.
Blueprints can be composed, remapped, and have transports overridden if `autoconnect()` fails due to conflicting variable names or `In[]` and `Out[]` message types.
A blueprint example that connects the image stream from a robot to an MCP-backed LLM agent for reasoning and action execution.
```py skip
from dimos.core.coordination.blueprints import autoconnect
from dimos.core.transport import LCMTransport
from dimos.msgs.sensor_msgs import Image
from dimos.robot.unitree.go2.connection import go2_connection
from dimos.agents.mcp.mcp_client import McpClient
from dimos.agents.mcp.mcp_server import McpServer
blueprint = autoconnect(
go2_connection(),
McpServer.blueprint(),
McpClient.blueprint(),
).transports({("color_image", Image): LCMTransport("/color_image", Image)})
# Run the blueprint
if __name__ == "__main__":
blueprint.build().loop()

```sh skip export GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/dimensionalOS/dimos.git cd dimos
uv run pytest --numprocesses=auto dimos ```
Python is our glue and prototyping language, but we support many languages via LCM interop.
Check our language interop examples: - C++ - Lua - TypeScript
$ claude mcp add dimos \
-- python -m otcore.mcp_server <graph>