## 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 Manipulation with channels help Help about any command msg Send or retrieve messages things things users users create/token version Get version of Mainflux Things Service 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: ``` Manipulation with channels: create, delete or update channels Usage: mainflux-cli channels [flags] mainflux-cli channels [command] Available Commands: create create delete delete get get all/ update update ``` ### Service #### Get the service verison ``` ./mainflux-cli version ``` ### User 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 #### Provision Device ``` ./mainflux-cli things create '{"type":"device", "name":"nyDevice"}' ``` #### Provision Application ``` ./mainflux-cli things create '{"type":"app", "name":"nyDevice"}' ``` #### Retrieve All Things ``` ./mainflux-cli things get all --offset=1 --limit=5 ``` #### Retrieve Thing By ID ``` ./mainflux-cli things get ``` #### Remove Thing ``` ./mainflux-cli things delete ``` #### Provision Channel ``` ./mainflux-cli channels create '{"name":"nyChannel"}' ``` #### Retrieve All Channels ``` ./mainflux-cli channels get all --offset=1 --limit=5 ``` #### Retrievie Channel By ID ``` ./mainflux-cli channels get ``` #### Remove Channel ``` ./mainflux-cli channels delete ``` ### Access control #### Connect Thing to a Channel ``` ./mainflux-cli things connect ``` #### Disconnect Things from a Channel ``` ./mainflux-cli things disconnect ``` ### Messaging #### Send a message over HTTP ``` ./mainflux-cli msg send '[{"bn":"some-base-name:","bt":1.276020076001e+09, "bu":"A","bver":5, "n":"voltage","u":"V","v":120.1}, {"n":"current","t":-5,"v":1.2}, {"n":"current","t":-4,"v":1.3}]' ```