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


Pyspinel is a Python CLI for the Spinel protocol, used to configure and manage OpenThread NCPs or RCPs. This CLI is primarily targeted to CI tests, but can be used manually to experiment with and test OpenThread Co-Processor instances.

Pyspinel is used to:

  • Add simulated Co-Processor testing to continuous integration.
  • Automate testing of testbeds running Co-Processor firmware on hardware.
  • Debug Co-Processor builds of OpenThread.
  • Convert an OpenThread Co-Processor into a packet sniffer.

For more information, see the README in the Pyspinel repository.

Get started

The quickest way to get started with Pyspinel is to try out the CLI:

  1. Install dependencies:
    sudo apt install python3-pip
    pip3 install --user pyserial ipaddress
  2. Clone the Pyspinel repository:
    git clone
  3. Install Pyspinel:
    cd pyspinel
    python3 install
  4. Clone and build a simiulated OpenThread NCP as described in How to build OpenThread. After cloning and bootstraping, build the sim example:
    make -f examples/Makefile-simulation
  5. Run the Pyspinel CLI, using the path to your simulated build:
    cd path-to-pyspinel -p path-to-openthread/output/simulation/bin/ot-ncp-ftd -n 1
  6. Verify the OpenThread version:
    OPENTHREAD/20180926-01310-g9fdcef20; SIMULATION; Feb 11 2020 14:09:56
  7. Start Thread on the simulated NCP and verify that it has become the leader in a Thread network:
    panid 1234
    ifconfig up
    thread start
  8. View the help menu to see what commands are available:


You can contribute to the ongoing development of Pyspinel by submitting bug reports and feature requests to the Issue Tracker.