daemon reference·
⏱ 30s
TINY never touches hardware directly — it's a pure client of the Reachy Mini
daemon, a FastAPI service that owns the robot and exposes an HTTP/WS API on
port :8000.
where it runs·
| variant | daemon host | connection mode |
|---|---|---|
| Lite (USB to laptop) | localhost:8000 |
REACHY_CONNECTION_MODE=auto |
| Wireless (onboard CM4) | reachy-mini.local:8000 (or IP) |
REACHY_CONNECTION_MODE=network |
| Sim (MuJoCo) | spawned locally | REACHY_USE_SIM=1 |
the cached client·
All robot tools go through one cached singleton in _reachy_common.py:
from ._reachy_common import get_mini
mini = get_mini() # ReachyMini SDK client — connects once, reused everywhere
Never reconnect
Constructing a second ReachyMini() fights the daemon for control and
causes flaky motion. Always go through get_mini().
verified SDK surface (1.9)·
The daemon/SDK methods TINY's tools rely on:
goto_target · set_target · wake_up · goto_sleep
get_current_head_pose · get_current_joint_positions
enable_motors · disable_motors · enable_gravity_compensation
look_at_image · play_move · enable_wobbling
media.get_frame · media.play_sound · imu
RecordedMoves.list_moves()
check it's alive·
A live Wireless unit (from LIVE_DEPLOY.md) connects raw in ~0.7s and reads
head pose + antennas immediately.