Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

1,050 Commits

Repository files navigation

banner_bordered_trimmed

The Agentive Operating System for Physical Space

DiscordStarsForksContributorsDocsNixNixOSCUDADocker

dimensionalOS%2Fdimos | Trendshift

DocsHardwareInstallationAgent CLI & MCPBlueprintsdimTELE: Remote TeleopDevelopment

⚠️Pre-Release Beta⚠️

About

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.

NavigationPerception
SLAM, dynamic obstacle avoidance, route planning, and autonomous exploration — via both DimOS native and ROS
Watch video

Perception

Detectors, 3d projections, VLMs, Audio processing
AgentsSpatial Memory
"hey Robot, go find the kitchen"
Watch video

Spatial Memory

Spatio-temporal RAG, Dynamic memory, Object localization and permanence
Watch video

Hardware

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.

Installation

Interactive Install

curl -fsSL https://raw.githubusercontent.com/dimensionalOS/dimos/main/scripts/install.sh | bash

See scripts/install.sh --help for non-interactive and advanced options.

Manual System Install

To set up your system dependencies, follow one of these guides:

Full system requirements, tested configs, and dependency tiers: docs/requirements.md

Python Install

Quickstart

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

Featured Runfiles

Run commandWhat it does
dimos --replay run unitree-go2Quadruped navigation replay — SLAM, costmap, A* planning
dimos --replay --replay-db go2_bigoffice run unitree-go2-memoryQuadruped temporal memory replay
dimos --simulation run unitree-go2-agenticQuadruped agentic + MCP server in simulation
dimos --simulation run unitree-g1-simHumanoid in MuJoCo simulation
dimos --replay run drone-basicDrone video + telemetry replay
dimos --replay run drone-agenticDrone + LLM agent with flight skills (replay)
dimos run demo-cameraWebcam demo — no hardware needed
dimos run keyboard-teleop-xarm7Keyboard teleop with mock xArm7 (requires dimos[manipulation] extra)
dimos --simulation run unitree-go2-agentic-ollamaQuadruped agentic with local LLM (requires Ollama + ollama serve)

Full blueprint docs: docs/usage/blueprints.md

Agent CLI and MCP

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

dimTELE: Remote Teleop

dimTELE is hosted teleoperation for DimOS robots: operate them remotely from any browser or Quest headset over WebRTC. The robot dials out to a hosted broker, so you don't need to open any inbound ports on the robot's network. It works behind a home router, on Wi-Fi, wired LAN, or cellular.

  1. Open teleop.dimensionalos.com, log in, and grab an API key (API Keys → + New Key).

  2. Run a teleop blueprint on the robot, passing the key as TRANSPORTS__BROKER__API_KEY:

    # Robot dials out to the broker with your API key
    TRANSPORTS__BROKER__API_KEY=<your-api-key> \
    dimos run teleop-hosted-go2-transport
  3. Your robot appears under Available Robots — click Connect and drive the robot from the browser.

BlueprintNotes
teleop-hosted-go2-transportBrowser teleop — drive + camera + minimap + click-to-nav (recommended)
teleop-hosted-go2-multicamAdds a second RealSense, operator-selectable, mux'd into one video track

Full guide: dimTELEWebRTC internals

Usage

Use DimOS as a Library

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.

importthreading, time, numpyasnpfromdimos.core.coordination.blueprintsimportautoconnectfromdimos.core.coreimportrpcfromdimos.core.moduleimportModulefromdimos.core.streamimportIn, Outfromdimos.msgs.geometry_msgsimportTwistfromdimos.msgs.sensor_msgsimportImage, ImageFormatclassRobotConnection(Module):
cmd_vel: In[Twist]
color_image: Out[Image]
@rpcdefstart(self):
threading.Thread(target=self._image_loop, daemon=True).start()
def_image_loop(self):
whileTrue:
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)
classListener(Module):
color_image: In[Image]
@rpcdefstart(self):
self.color_image.subscribe(lambdaimg: 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.

fromdimos.core.coordination.blueprintsimportautoconnectfromdimos.core.transportimportLCMTransportfromdimos.msgs.sensor_msgsimportImagefromdimos.robot.unitree.go2.connectionimportgo2_connectionfromdimos.agents.mcp.mcp_clientimportMcpClientfromdimos.agents.mcp.mcp_serverimportMcpServerblueprint=autoconnect(
go2_connection(),
McpServer.blueprint(),
McpClient.blueprint(),
).transports({("color_image", Image): LCMTransport("/color_image", Image)})
# Run the blueprintif__name__=="__main__":
blueprint.build().loop()

Library API

Demos

DimOS Demo

Development

Develop on DimOS

export GIT_LFS_SKIP_SMUDGE=1
git clone https://github.com/dimensionalOS/dimos.git
cd dimos
# Run the default test suite (uv run syncs deps on demand; --all-groups# only needed for self-hosted tests / mypy — see docs/development/testing.md)
uv run pytest --numprocesses=auto dimos

Multi Language Support

Python is our glue and prototyping language, but we support many languages via LCM interop.

Check our language interop examples:

About

Dimensional is the agentic operating system for physical space. Command humanoids, quadrupeds, drones, and other hardware platforms in natural language and build multi-agent systems that work seamlessly with physical input (cameras, lidar, actuators).

Resources

Contributing

Stars

3.9k stars

Watchers

31 watching

Forks

Releases

Packages

Used by

Contributors

Languages