A simple ZeroMQ-based driver for the Hello Robot Stretch 3.
This monorepo contains two installable packages that share the stretch3_zmq namespace:
| Package | Import root | Purpose |
|---|---|---|
stretch3-zmq-core |
stretch3_zmq.core |
Shared message schemas (Pydantic + msgpack). Lightweight — no robot hardware deps. |
stretch3-zmq-driver |
stretch3_zmq.driver |
Full robot driver: ZeroMQ services, TTS/ASR, camera support, robot control. |
Optional: For TTS/ASR functionality, create a .env file with your API keys:
cp .env.example .env
# Edit .env and add your API keysNote
The main branch is unstable (trunk-based development). Use a specific tagged
version for production use.
On Stretch 3, install and run directly with uvx.
Recommended — specific version (e.g., v0.0.3):
set -a; source .env; set +a # Only needed if using TTS/ASR
uvx --python 3.12 --from "stretch3-zmq-driver @ git+https://github.com/lnfu/stretch3-zmq.git@v0.0.3#subdirectory=packages/driver" stretch3-zmq-driverLatest (unstable main branch):
set -a; source .env; set +a # Only needed if using TTS/ASR
uvx --python 3.12 --from "stretch3-zmq-driver @ git+https://github.com/lnfu/stretch3-zmq.git#subdirectory=packages/driver" stretch3-zmq-driverIf you only need the message schemas (e.g., for a remote client), install stretch3-zmq-core
without the heavy driver dependencies.
Using uv:
uv add "stretch3-zmq-core @ git+https://github.com/lnfu/stretch3-zmq.git#subdirectory=packages/core"Using pip:
pip install "git+https://github.com/lnfu/stretch3-zmq.git#subdirectory=packages/core"Specific version (e.g., v0.0.3):
pip install "git+https://github.com/lnfu/stretch3-zmq.git@v0.0.3#subdirectory=packages/core"Then import from stretch3_zmq.core:
from stretch3_zmq.core.messages.command import ManipulatorCommand
from stretch3_zmq.core.messages.status import Status
from stretch3_zmq.core.messages.protocol import decode_with_timestampdocs/protocols.md — ZeroMQ service reference: ports, patterns, topics, and message schemas.