Strands Robots
Control, simulate, and train robots with natural language
Strands Docs ◆ MuJoCo ◆ NVIDIA GR00T ◆ LeRobot ◆ Project Board
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 venv --python 3.12 && source .venv/bin/activate
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
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 |
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 venv --python 3.12 && source .venv/bin/activate
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.
Release files for strands-robots 0.5.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| strands_robots-0.5.2.tar.gz | 36.4 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| strands_robots-0.5.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 39.5 MB
Release files / strands_robots-0.5.2.tar.gz
| Download URL | strands_robots-0.5.2.tar.gz |
|---|---|
| Size | 36.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9c86a389e1bbb670924192f6c6d0b674e104be150f802f70ab8066e6a5934aea
|
|
BLAKE2b-256 checksum How to use checksums |
53ab98e77fdd52f1f58faee968960033450534906c79e9f64534964db978931a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.
Transparency logRelease files / strands_robots-0.5.2-py3-none-any.whl
| Download URL | strands_robots-0.5.2-py3-none-any.whl |
|---|---|
| Size | 3.1 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5e27e032833f338fc3461325b269c307682634835620f5fd2635f7722c1084a0
|
|
BLAKE2b-256 checksum How to use checksums |
b1653b54b60ad5ecd93d90acb40a6efe555a88cacfe7b862177217c6f17ce758
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.
Transparency log