## CLI Mainflux CLI makes it easy to manage users, things, channels and messages. CLI can be downloaded as separate asset from [project realeses](https://github.com/mainflux/mainflux/releases) or it can be built with `GNU Make` tool: ``` make cli ``` which will build `mainflux-cli` in `/build` folder. Executing `build/mainflux-cli` without any arguments will output help with all available commands and flags: ``` Usage: mainflux-cli [command] Available Commands: channels Channels management help Help about any command messages Send or read messages provision Bulk create things and channels from a config file things Things management users Users management version Mainflux system version Flags: -c, --content-type string Mainflux message content type (default "application/senml+json") -h, --help help for mainflux-cli -a, --http-prefix string Mainflux http adapter prefix (default "http") -i, --insecure Do not check for TLS cert -l, --limit uint limit query parameter (default 100) -m, --mainflux-url string Mainflux host URL (default "http://localhost") -o, --offset uint offset query parameter -t, --things-prefix string Mainflux things service prefix -u, --users-prefix string Mainflux users service prefix Use "mainflux-cli [command] --help" for more information about a command. ``` You can execute each command with `-h` flag for more information about that command, e.g. ``` ./mainflux-cli channels -h ``` will get you usage info: ``` Channels management: create, get, update or delete Channels and get list of Things connected to Channels Usage: mainflux-cli channels [flags] mainflux-cli channels [command] Available Commands: connections connections create create delete delete get get update update ``` ## Service #### Get the version of Mainflux services ``` mainflux-cli version ``` ### Users management #### Create User ``` mainflux-cli users create john.doe@email.com password ``` #### Login User ``` mainflux-cli users token john.doe@email.com password ``` ### System Provisioning #### Create Thing ``` mainflux-cli things create '{"name":"myThing"}' ``` #### Bulk Provision Things ```bash mainflux-cli provision things ``` * `file` - A CSV or JSON file containing things * `user_auth_token` - A valid user auth token for the current system #### Update Thing ``` mainflux-cli things update '{"id":"", "name":"myNewName"}' ``` #### Remove Thing ``` mainflux-cli things delete ``` #### Retrieve a subset list of provisioned Things ``` mainflux-cli things get all --offset=1 --limit=5 ``` #### Retrieve Thing By ID ``` mainflux-cli things get ``` #### Create Channel ``` mainflux-cli channels create '{"name":"myChannel"}' ``` #### Bulk Provision Channels ```bash mainflux-cli provision channels ``` * `file` - A CSV or JSON file containing channels * `user_auth_token` - A valid user auth token for the current system #### Update Channel ``` mainflux-cli channels update '{"id":"","name":"myNewName"}' ``` #### Remove Channel ``` mainflux-cli channels delete ``` #### Retrieve a subset list of provisioned Channels ``` mainflux-cli channels get all --offset=1 --limit=5 ``` #### Retrieve Channel By ID ``` mainflux-cli channels get ``` ### Access control #### Connect Thing to Channel ``` mainflux-cli things connect ``` #### Disconnect Thing from Channel ``` mainflux-cli things disconnect ``` #### Retrieve a subset list of Channels connected to Thing ``` mainflux-cli things connections ``` #### Retrieve a subset list of Things connected to Channel ``` mainflux-cli channels connections ``` ### Messaging #### Send a message over HTTP ``` mainflux-cli msg send '[{"bn":"Dev1","n":"temp","v":20}, {"n":"hum","v":40}, {"bn":"Dev2", "n":"temp","v":20}, {"n":"hum","v":40}]' ```