Skip to content

Tools

Generated from strands_robots/tools/*.py at build.

Every tool is a plain function first. Mutating tools take dry_run=True, default to mode="sim", and refuse real motion without confirm=True; on top sits the strands HITL gate for anything that moves hardware. The list is strands_robots.tools.STRANDS_ROBOTS_TOOLS.

14 tools in 6 modules.

tool module parameters does
camera_list camera_tools max_index: int = MAX_INDEX Probe camera indices 0..max_index and list the ones that open, with their frame size.
camera_snap camera_tools index: int = 0
path: str | None = None
Grab one frame from camera index and save it as PNG (default under $STRANDS_ROBOTS_HOME/snaps).
mesh_fleet mesh_tools wait_s: float = 2.0
backend: str | None = None
Listen on the mesh for wait_s seconds and list every peer heard: robot, liveness, state age, last state.
mesh_ask mesh_tools peer: str
verb: str
args: dict[str, Any] | None = None
timeout_s: float = 5.0
backend: str | None = None
dry_run: bool = True
confirm: bool = False
Send one verb to a mesh peer and return its reply. Motion verbs (act, execute) pass the consent rail.
mhs_fleet mhs_tools broker: str | None = None
allow_insecure: bool | None = None
Discover every device on the MHS broker: id, type, labels, status, procedures and state keys.
mhs_invoke mhs_tools device: str
procedure: str
args: dict[str, Any] | None = None
broker: str | None = None
dry_run: bool = True
confirm: bool = False
allow_insecure: bool | None = None
timeout_s: float = 30.0
Invoke one procedure on one device. Motion (act, execute_op) passes the consent rail; stop always goes.
list_policies policy_tools - List the policy providers: name, the extra that installs it, the frame it emits, whether it needs images.
run_policy policy_tools name: str
policy: str = 'mock'
instruction: str = 'hold still'
max_steps: int = 100
mode: str = 'sim'
port: str | None = None
control_hz: float = 50.0
replan_ratio: float = 0.5
dry_run: bool = True
confirm: bool = False
record: str | None = None
Roll out a policy on a robot and report the steps, why it stopped and the final joints.
record_episode record_tools name: str
repo_id: str
policy: str = 'mock'
instruction: str = 'demonstration'
max_steps: int = 300
mode: str = 'sim'
port: str | None = None
leader: str | None = None
leader_port: str | None = None
fps: int = 30
root: str | None = None
dry_run: bool = True
confirm: bool = False
Record one episode into a lerobot dataset: a policy rollout, or a leader-arm teleop when leader is set.
dataset_info record_tools path: str Episodes, frames, fps, robot type and feature names of a lerobot dataset directory.
list_robots robot_tools - List every robot in the registry with its joints and the modes (sim, real, twin) it can open.
observe robot_tools name: str
mode: str = 'sim'
port: str | None = None
Read one observation from a robot: joints in its frame, camera names, scalar sensors. Never moves it.
move robot_tools name: str
action: Action
mode: str = 'sim'
port: str | None = None
dry_run: bool = True
confirm: bool = False
settle_s: float = 1.0
Move joints to targets and hold until they settle; report the commanded, observed and remaining error.
preflight robot_tools name: str
policy: str
mode: str = 'sim'
port: str | None = None
Check that policy can drive name: frame and DOF match and the policy's inputs are observed.
from strands import Agent
from strands_robots.tools import STRANDS_ROBOTS_TOOLS

agent = Agent(tools=STRANDS_ROBOTS_TOOLS)
agent("observe so101 in simulation")