MCPcopy
hub / github.com/dimensionalOS/dimos

github.com/dimensionalOS/dimos @v0.0.13.post1 sqlite

repository ↗ · DeepWiki ↗ · release v0.0.13.post1 ↗
11,634 symbols 52,438 edges 1,081 files 4,826 documented · 41%
README

banner_bordered_trimmed

The Agentive Operating System for Physical Space

Discord Stars Forks Contributors Nix NixOS CUDA Docker

dimensionalOS%2Fdimos | Trendshift

HardwareInstallationAgent CLI & MCPBlueprintsDevelopment

⚠️ Pre-Release Beta ⚠️

Intro

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 Perception

Navigation and Mapping

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

Perception

Detectors, 3d projections, VLMs, Audio processing
Agents Spatial Memory

Agentive Control, MCP

"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

```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

Featured Runfiles

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

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

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.

```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()

Library API

Demos

DimOS Demo

Development

Develop on DimOS

```sh skip 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: - C++ - Lua - TypeScript

Extension points exported contracts — how you extend this code

Window (Interface)
(no doc)
dimos/web/dimos_interface/src/utils/tracking.ts
SimulationConnection (Interface)
(no doc)
dimos/web/dimos_interface/src/utils/simulation.ts
SimulationState (Interface)
(no doc)
dimos/web/dimos_interface/src/utils/simulation.ts
StreamState (Interface)
(no doc)
dimos/web/dimos_interface/src/stores/stream.ts
TextStreamState (Interface)
(no doc)
dimos/web/dimos_interface/src/stores/stream.ts

Core symbols most depended-on inside this repo

append
called by 1246
dimos/memory2/stream.py
get
called by 493
dimos/protocol/tf/tf.py
time
called by 431
dimos/utils/ros1.py
blueprint
called by 411
dimos/core/module.py
setup_logger
called by 238
dimos/utils/logging_config.py
stream
called by 229
dimos/memory2/replay.py
items
called by 203
dimos/memory2/store/base.py
get
called by 193
dimos/memory2/registry.py

Shape

Method 6,841
Function 3,116
Class 1,627
Route 43
Interface 7

Languages

Python100%
TypeScript1%

Modules by API surface

dimos/memory2/test_stream.py129 symbols
dimos/manipulation/visualization/viser/test_viser_visualization.py125 symbols
dimos/utils/test_transform_utils.py81 symbols
dimos/protocol/service/test_system_configurator.py80 symbols
dimos/core/coordination/test_module_coordinator.py74 symbols
dimos/utils/docs/test_doclinks.py70 symbols
dimos/memory2/test_store.py68 symbols
dimos/manipulation/test_manipulation_unit.py66 symbols
dimos/manipulation/manipulation_module.py64 symbols
dimos/simulation/engines/mujoco_engine.py63 symbols
dimos/manipulation/planning/world/drake_world.py61 symbols
dimos/core/module.py61 symbols

Dependencies from manifests, versioned

@sveltejs/vite-plugin-svelte3.0.1 · 1×
@tsconfig/svelte5.0.2 · 1×
@types/node22.3.0 · 1×
autoprefixer10.4.16 · 1×
mint4.2.562 · 1×
postcss8.4.32 · 1×
svelte4.2.8 · 1×
svelte-check3.6.2 · 1×
tailwindcss3.4.0 · 1×
tslib2.6.2 · 1×
typescript5.2.2 · 1×
vite5.0.13 · 1×

For agents

$ claude mcp add dimos \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact