Google is committed to advancing racial equity for Black communities. See how.

Tools and Scripts

View source on GitHub

OpenThread Border Router (OTBR) includes a variety of tools and scripts that can be used for testing purposes.

PSKc generator

pskc generates a Pre-Shared Key for the Commissioner (PSKc). The PSKc is used to authenticate an external Thread Commissioner to a Thread network. Build and install OTBR to use this tool.

After building, pskc is located at /ot-br-posix/tools.


The PSKc is generated from the following parameters:

  • Commissioner Credential
  • Thread Network Extended PAN ID
  • Thread Network Name



pskc commissioner-credential extpanid network-name


./pskc J01NME 1234AAAA1234BBBB MyOTBRNetwork

See External Thread Commissioning for how to use this tool with ot-ctl.

Steering data generator

steering-data uses a Bloom filter to generate a hash of the set of Joiners intended for commissioning. During commissioning, the Joiner only looks for networks advertising steering data that includes the Joiner itself. Build and install OTBR to use this tool.

After building, steering-data is located at /ot-br-posix/tools.


The steering data is generated from the following parameters:

  • Joiner ID (EUI-64)
  • Byte length of steering data (optional, default is 16)



steering-data [length] joiner-id


./steering-data 0000b57fffe15d68

Use multiple Joiner IDs to include them all in the steering data:

./steering-data 0000b57fffe15d68 0000c57fffe15d68

Use the length parameter to change the byte length of the resulting steering data:

./steering-data 8 0000b57fffe15d68

OTBR commissioner

Use otbr-commissioner to commission a Thread device from the command line. This tool is used in MeshCop (Mesh Commissioning Protocol) tests during continuous integration. Build and install OTBR to use this tool.

After building, otbr-commissioner is located at /src/commissioner.


To successfully commissioner a Thread device with otbr-commissioner, we suggest using the following parameters at a minimum:

Network details
Thread network name.
Commissioner credential.
Thread extended PAN ID.
Joiner details
Factory-assigned IEEE EUI-64 of the joiner device.
Joiner credential.
Agent details
Agent IP address from mDNS broadcasts.
Agent port from mDNS broadcasts.

Use --help for a full list of parameters.


./otbr-commissioner --network-name MyOTBRNetwork --network-password J01NME --xpanid 1234AAAA1234BBBB --joiner-eui64 0000b57fffe15d68 --joiner-pskd J01NU5 --agent-host --agent-port 49191

For a shell script example, see the meshcop test script.

standalone_ipv6 script

Use the standalone_ipv6 script to test IPv6 functionality if your test or development environment does not have a full IPv6 infrastructure available (for example, if your network is not connected to an upstream IPv6 provider).

This script installs extra features on the platform running OTBR to enable the device to serve IPv6 addresses.

This script is located at /ot-br-posix/script/standalone_ipv6.