Install
openclaw skills install dimos-robotics-skillBuild, review, and troubleshoot DimOS robotics applications, especially DimOS @skill methods, Module classes, Blueprints, MCP wiring, CLI runs, replay/simulation testing, and safe robot-control scaffolds.
openclaw skills install dimos-robotics-skillUse this skill when a user asks to build, modify, explain, debug, or package work for the DimensionalOS/DimOS robotics repo, including robot @skill methods, Module classes, Blueprints, MCP tools, CLI workflows, Unitree Go2/G1, drones, xArm, replay data, or simulation.
DimOS is an agentic operating system for robotics. Treat a DimOS application as a graph of Modules connected by typed streams and RPC. A Blueprint composes modules into a runnable stack. A DimOS @skill is a method on a Module that is exposed to agents and MCP clients as a callable tool.
When writing code, prefer the DimOS-native style:
Module subclasses for robot subsystems and skill containers.In[T] and Out[T] streams for dataflow.@rpc for non-agent RPC methods.@skill for agent-exposed actions; do not stack @rpc on the same method because @skill already wraps the method for RPC.@skill; DimOS exposes the docstring as the tool description.str from skills unless the current DimOS code path explicitly supports another return type.str, int, float, bool, and simple lists are safest.dimos mcp list-tools or inspect the relevant skill container.For any physical robot behavior:
Use these commands as the default workflow when helping a user test a DimOS skill:
# List runnable blueprints
dimos list
# Start a replay or simulation stack first
dimos --replay run unitree-go2-agentic --daemon
dimos --simulation run unitree-go2-agentic --daemon
# Inspect runtime state
dimos status
dimos log -f
# Discover and call MCP skills
dimos mcp list-tools
dimos mcp modules
dimos mcp call <tool_name> --arg key=value
# Send natural-language input to the running agent
dimos agent-send "describe what you can do"
# Stop the stack
dimos stop
For real robot examples, keep IPs as placeholders unless the user supplies a real one:
dimos run unitree-go2-agentic --robot-ip <ROBOT_IP>
Generate skill containers in this shape:
from __future__ import annotations
from dimos.agents.annotation import skill
from dimos.core.core import rpc
from dimos.core.module import Module
class ExampleSkillContainer(Module):
@rpc
def start(self) -> None:
super().start()
@rpc
def stop(self) -> None:
super().stop()
@skill
def say_status(self) -> str:
"""Report that this skill container is running."""
return "ExampleSkillContainer is running."
example_skill_container = ExampleSkillContainer.blueprint()
If the skill needs another module, use the DimOS Spec pattern instead of stringly typed lookups:
from typing import Protocol
from dimos.spec.utils import Spec
class NavigatorSpec(Spec, Protocol):
def set_goal(self, x: float, y: float) -> bool: ...
class NavigationSkillContainer(Module):
_navigator: NavigatorSpec
@skill
def go_to_xy(self, x: float, y: float) -> str:
"""Navigate to a map coordinate.
Args:
x: Target x coordinate in meters.
y: Target y coordinate in meters.
"""
ok = self._navigator.set_goal(x, y)
return "Navigation goal accepted." if ok else "Navigation goal failed."
For MCP tools, include both McpServer and McpClient in the blueprint along with the robot stack and skill containers:
from dimos.agents.mcp.mcp_client import McpClient
from dimos.agents.mcp.mcp_server import McpServer
from dimos.core.coordination.blueprints import autoconnect
from my_project.example_skill_container import ExampleSkillContainer
my_agentic_blueprint = autoconnect(
# robot_stack(),
McpServer.blueprint(),
McpClient.blueprint(),
ExampleSkillContainer.blueprint(),
)
Expose a module-level blueprint variable so dimos run <blueprint> can find it. If adding or renaming blueprints inside the DimOS repo, run the registry-generation test that updates dimos/robot/all_blueprints.py.
Before giving final code, check:
@skill has a docstring and typed parameters.dimos mcp ....resources/dimos_reference.md: quick reference for DimOS concepts, CLI, MCP, skills, and testing.resources/safety_and_testing.md: safety gate and smoke-test sequence for replay, simulation, then real hardware.templates/safe_motion_skill.py: a safe wrapper pattern around a relative-move skill.templates/skill_container_template.py: minimal DimOS skill container.templates/mcp_blueprint_template.py: MCP-enabled blueprint skeleton.templates/spec_protocol_template.py: Spec/RPC injection pattern.templates/system_prompt_patch.md: example text to add to a robot system prompt.scripts/scaffold_dimos_skill.py: local helper for creating a new skill-container file.