quickstart·
⏱ 60s to first wave
1 · clone & run·
make run builds the Docker image (if needed), brings up the compose stack,
and attaches you to the agent.py REPL — auto-starting bidirectional voice
(g1_speak). For a bare-metal venv instead (DEV only), use make run-bare,
which clones the Unitree SDK (the pip wheel is broken) and exports
CYCLONEDDS_URI + PYTHONPATH.
2 · pick a model·
NEON runs on a Bedrock model by default. Provide Bedrock credentials before
make run:
export AWS_BEARER_TOKEN_BEDROCK=... # Bedrock bearer token (preferred)
export AWS_DEFAULT_REGION=us-west-2
export NEON_MODEL_ID=global.anthropic.claude-opus-4-8 # override the default
3 · talk to it·
> check state
mode=ai · fsm=500 · arm_ready=True · soc=86%
> wave hello
g1_arm_action('high wave') rc=0 · released
You want arm_ready=True and fsm ∈ {500, 501, 801}. If arm_ready=False,
say set fsm 500 first — the arm won't move from Damp.
🕹 enable control (arm the G1)·
Before the robot can walk, switch it to walk/control mode in the Unitree app. This hands motor control to neon over DDS.
safe first commands·
Green zone
check state · battery · wave · shake hand · heart · clap ·
hug · stand up · sit down · damp · set stand height 0.75
Walking is opt-in
walk forward 50cm needs FSM 501 and your explicit yes. Tools refuse
otherwise. See safety.
prerequisites·
- Unitree G1+ reachable (
192.168.123.161MCU ·192.168.123.164Jetson) - Interface
eth0reaches the motor bus - Python 3.10+ on the Jetson