Skip to content

Strands Robots

Control, simulate, and train robots with natural language

PyPI Version GitHub stars License MuJoCo GR00T LeRobot

Strands DocsMuJoCoNVIDIA GR00TLeRobotProject Board

Strands Robots - perceive, reason, act, world: the closed control loop around a Strands Agent core

strands-robots gives a Strands Agent hands. One Robot() call returns a MuJoCo simulation (default: no GPU, no hardware) or a real robot - same code, same natural-language control, same opt-in peer-to-peer mesh.

from strands import Agent
from strands_robots import Robot

robot = Robot("so100")              # MuJoCo sim by default; mode="real" for hardware
Agent(tools=[robot])("pick up the red cube")

Install

uv pip install "strands-robots[sim-mujoco]"   # plain pip works too

Python 3.12+. Everything else is an extra you pull in when you need it - lerobot (hardware, local VLA inference, recording), groot-service, cosmos3-service, mesh, mesh-iot, sim-newton, sim-isaac, wbc - see Installation for the full table.

How it works

Strands Robots architecture - Agent, Policies, Backends, Robots; actions flow down, observations flow up

A prompt reaches the agent; the agent calls the robot tool; a policy turns the observation into an action chunk; the backend (MuJoCo, Newton, Isaac, or the hardware driver) executes it and returns the next observation. Sim and hardware share the policy interface, the mesh, and the tool surface, so a workflow proven in sim runs on the metal by changing mode.

What you get

Read
70+ robots across 8 categories - arms, bimanual rigs, humanoids, quadrupeds, hands, drones - from one registry with asset auto-download Robots
Any policy behind one ABC: NVIDIA GR00T, Cosmos 3, LeRobot (ACT / Pi0 / SmolVLA / Diffusion), MolmoAct2, whole-body control, cuRobo, MoveIt2, scripted Policies
Teleoperate and record LeRobotDataset episodes from leader arms, gamepads or WASD; stream to HF datasets or Storage Buckets Teleoperation, Recording
Train with LeRobot, GR00T, Cosmos 3 or RL (PPO / FastSAC), locally or as a SageMaker job, then run the checkpoint in sim and on hardware Training
Simulate with an agent-callable MuJoCo tool: worlds, terrain, domain randomization, rendering, dataset capture; Newton and Isaac backends Simulation
Mesh every robot as a Zenoh peer: tell() another robot what to do, broadcast an E-STOP, bridge fleets over AWS IoT Core Mesh
ROS 2 - observe and command any graph (use_ros), act as a node without rclpy (use_rtps), expose a running sim ROS 2
Configure every environment variable the package reads, with its default and its guard Configuration

Strands Robots mesh - robot peers discovering and coordinating over the Zenoh mesh

Real servos never move by accident: mode="real" is an explicit opt-in.

Documentation

Full guide, API reference and per-robot pages: strands-labs.github.io/robots - start with the Quickstart and Architecture.

Development

uv pip install -e ".[all,dev]"
hatch run test && hatch run lint   # pytest; ruff + mypy

Conventions and review learnings are in AGENTS.md; CONTRIBUTING covers the workflow. Work is tracked on the project board.

Security

Found a vulnerability? Do not open a public issue - follow SECURITY.md. The trust_remote_code gate on lerobot_local, the mesh CA-pinning controls and the ordered CA Pin Rotation Runbook are documented in the Configuration matrix.

License

Apache-2.0 - see LICENSE.

About

Control robots and physical hardware with natural language through Strands Agents.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

157 stars

Watchers

5 watching

Forks

Releases

Used by

Contributors

Languages