Build with Valence#
This section is task-oriented. Each page gets you to something running.
| Page | Gets you |
|---|---|
| Quickstart | A connected client in about 20 lines |
| JavaScript · C# · C++ · Python | A working client in your language |
| Plugin guide | An app integration, with a shipped plugin as the worked example |
| Hub implementer guide | Your own firmware answering as a conforming hub |
| CLI guide | The command-line tooling, including motion-versus-planner graphing |
| Local testing | A simulator, a probe, the fuzz harnesses, and the regression patterns that matter |
Before you start#
Read How it works. Clients that skip the mental model tend to fight the protocol: they build optimistic local state, then discover the hub disagrees with them.
Keep the Dictionary open. Every term on this site has exactly one meaning, and the guides assume it.
The one rule that catches everyone#
Your shadow updates from the hub, never from your own request.
You send an intent. The hub clamps it. The echo tells you what was actually applied. Render that. If you render what you asked for, your interface is lying, and on a machine that moves that is a safety defect.