Particle's full-stack Internet of Things (IoT) device platform gives you everything you need to securely and reliably connect your IoT devices to the web. For more details please visit www.particle.io.
Particle CLI
The Particle CLI is a powerful tool for interacting with your IoT devices and the Particle Cloud. The CLI uses node.js and can run on Windows, Mac OS X, and Linux. It's also open source so you can edit and change it, and even send in your changes as pull requests if you want to share!
For end-users, the most up-to-date installation instructions can be found here: macOS / Linux | Windows
Note: On some platforms (e.g. arm
), additional manual steps are required:
particle-cli uses npm packages
node-usb
andnode-serialport
. On some environments (ie: Raspberry Pi and Apple M1),node-serialport
does not provide prebuild environments, so their npm install script relies on creating a prebuild using node-gyp (See node-gyp requirements), and libudev (See node-usb installation. And these must be installed in order for their npm install script to succeed. As well, particle-cli uses openssl.As an example, to install these dependencies on Raspbian/Debian/Ubuntu:
sudo apt update && sudo apt upgrade sudo apt install build-essential libudev-dev python3 openssl
These next two commands are all you need to get started setting up an account, claiming a device, and discovering new features.
Guides you through creating a new account, and claiming your device!
$ particle setup
Shows you what commands are available, and how to use them. You can also give the name of a command for detailed help.
$ particle help
$ particle help keys
If you wish to easily update Device OS on your device to a later version, you can use the particle update
command. You can specify a version with the --target
argument.
particle update
.For the full list of commands, please see the CLI command reference.
Development
Currently development is supported on macOS only!
node@16.x
and npm@8.x
are required]$ git clone git@github.com:particle-iot/particle-cli.git && cd ./particle-cli
openssl
(e.g. brew install openssl
)$ npm install
$ npm run
$ npm test
$ npm start
When developing, run individual commands using:
$ npm start -- <command> <options>
- e.g. $ npm start -- library view dotstar --readme
Anything after the --
delimiter is passed directly to the CLI (docs).
To test the source as it will be published:
particle
command globally: $ npm link
$ particle --help
(using standard argument formatting)The Particle CLI has a number of automated test suites and related commands. The most important are:
npm test
- run all tests (NOTE: End-To-End tests require additional setup)npm run lint
- run the linter and print any errors to your terminalnpm run test:ci
- run all tests excluding device-dependent end-to-end test as CI doesnpm run test:unit
- run unit testsnpm run test:integration
- run integration testsnpm run coverage
- report code coverage statsAll tests use mocha, chai, and sinon with coverage handled by nyc.
We recommend running locally if you can as it greatly shortens your feedback loop. However, CI also runs against every PR and error reporting is publicly available.
See RELEASE.md.
Author: particle-iot
Source Code: https://github.com/particle-iot/particle-cli
License: Apache-2.0 license