@twilio/plugin-microvisor
=========================

Interact with your Twilio Microvisor devices

<!-- toc -->
* [Usage](#usage)
* [Commands](#commands)
<!-- tocstop -->

## Setup

Ensure you have [twilio-cli](https://www.twilio.com/docs/twilio-cli/quickstart) installed.

Then run

```
twilio plugins:install @twilio/plugin-microvisor
```

# Usage

```sh-session
$ twilio --help microvisor
USAGE
  $ twilio microvisor
...
```

# Commands
<!-- commands -->
* [`twilio microvisor:about`](#twilio-microvisorabout)
* [`twilio microvisor:apps:bundle ROM-FILE OUT`](#twilio-microvisorappsbundle-rom-file-out)
* [`twilio microvisor:apps:create FILE [UNIQUENAME]`](#twilio-microvisorappscreate-file-uniquename)
* [`twilio microvisor:debug DEVICESID DEBUGKEY`](#twilio-microvisordebug-devicesid-debugkey)
* [`twilio microvisor:debug:generate_keypair`](#twilio-microvisordebuggenerate_keypair)
* [`twilio microvisor:deploy PROJECTPATH`](#twilio-microvisordeploy-projectpath)
* [`twilio microvisor:factory:image OUT`](#twilio-microvisorfactoryimage-out)
* [`twilio microvisor:info:sid DEVICEPATH`](#twilio-microvisorinfosid-devicepath)
* [`twilio microvisor:info:version DEVICEPATH`](#twilio-microvisorinfoversion-devicepath)
* [`twilio microvisor:logs:stream DEVICESID`](#twilio-microvisorlogsstream-devicesid)
* [`twilio microvisor:wificonfig:clear DEVICEPATH`](#twilio-microvisorwificonfigclear-devicepath)
* [`twilio microvisor:wificonfig:get DEVICEPATH`](#twilio-microvisorwificonfigget-devicepath)
* [`twilio microvisor:wificonfig:ports`](#twilio-microvisorwificonfigports)
* [`twilio microvisor:wificonfig:set WIFISSID WIFIPWD DEVICEPATH`](#twilio-microvisorwificonfigset-wifissid-wifipwd-devicepath)

## `twilio microvisor:about`

About Microvisor...

```
USAGE
  $ twilio microvisor:about [-l debug|info|warn|error|none]

FLAGS
  -l=(debug|info|warn|error|none)  [default: info] Level of logging messages.

DESCRIPTION
  About Microvisor...
```

## `twilio microvisor:apps:bundle ROM-FILE OUT`

Manage app bundles

```
USAGE
  $ twilio microvisor:apps:bundle ROM-FILE OUT [-l debug|info|warn|error|none] [-k <value>] [--connection-grace-time
    <value>] [--minimum-check-in-time <value>]

ARGUMENTS
  ROM-FILE  Input ROM file.
  OUT       Output file for bundle zip.

FLAGS
  -k, --debug-auth-pubkey=<value>  Public key to be used for authentication while debugging
  -l=(debug|info|warn|error|none)  [default: info] Level of logging messages.
  --connection-grace-time=<value>  Connection grace time (in seconds) for the Device running this bundle as an App.
  --minimum-check-in-time=<value>  Time (in seconds) after which the Device running this bundle autonomously reconnects
                                   to check for updates.

DESCRIPTION
  Manage app bundles
```

## `twilio microvisor:apps:create FILE [UNIQUENAME]`

Create an App on the account

```
USAGE
  $ twilio microvisor:apps:create FILE [UNIQUENAME] [-l debug|info|warn|error|none] [-o columns|json|tsv|none] [--silent]
    [-p <value>] [--properties <value>] [-b <value>]

ARGUMENTS
  FILE        The App Bundle file
  UNIQUENAME  Unique name for the App

FLAGS
  -b, --bundle-out=<value>         Path to store the signed bundle to
  -l=(debug|info|warn|error|none)  [default: info] Level of logging messages.
  -o=(columns|json|tsv|none)       [default: columns] Format of command output.
  -p, --profile=<value>            Shorthand identifier for your profile.
  --properties=<value>             [default: sid, unique_name, hash] The app properties you would like to display (JSON
                                   output always shows all properties).
  --silent                         Suppress  output and logs. This is a shorthand for "-l none -o none".

DESCRIPTION
  Create an App on the account
```

## `twilio microvisor:debug DEVICESID DEBUGKEY`

```
USAGE
  $ twilio microvisor:debug DEVICESID DEBUGKEY [-l debug|info|warn|error|none] [-p <value>] [--listen-port <value>]

ARGUMENTS
  DEVICESID  The Sid of the device you wish to debug
  DEBUGKEY   Filename containing debug authentication private key

FLAGS
  -l=(debug|info|warn|error|none)  [default: info] Level of logging messages.
  -p, --profile=<value>            Shorthand identifier for your profile.
  --listen-port=<value>            [default: 8001] The port on which the debug tunnel should listen
```

## `twilio microvisor:debug:generate_keypair`

```
USAGE
  $ twilio microvisor:debug:generate_keypair [-l debug|info|warn|error|none] [-p <value>] [--debug-auth-privkey <value>]
    [--debug-auth-pubkey <value>] [-f]

FLAGS
  -f, --force
  -l=(debug|info|warn|error|none)  [default: info] Level of logging messages.
  -p, --profile=<value>            Shorthand identifier for your profile.
  --debug-auth-privkey=<value>     [default: debug-private-key.pem] Private key output filename
  --debug-auth-pubkey=<value>      [default: debug-public-key.pem] Public key output filename
```

## `twilio microvisor:deploy PROJECTPATH`

Build and/or deploy a Microvisor application using the standard Microvisor CMake-based workflow

```
USAGE
  $ twilio microvisor:deploy PROJECTPATH [-l debug|info|warn|error|none] [--privatekey <value>] [--publickey <value>]
    [--devicesid <value>] [-c] [-b] [-d] [--log] [--logonly] [--genkeys]

ARGUMENTS
  PROJECTPATH  The path to the project directory

FLAGS
  -b, --build                      Build without deploying
  -c, --clean                      Clean the build folder first
  -d, --deploy                     Deploy the most recent build without rebuilding
  -l=(debug|info|warn|error|none)  [default: info] Level of logging messages.
  --devicesid=<value>              [default: NONE] The SID of the device to which you will upload the build
  --genkeys                        Generate remote debugging keys
  --log                            Start logging after a deploy and/or build
  --logonly                        Start logging immediately without building or deploying
  --privatekey=<value>             [default: NONE] Path to your private key
  --publickey=<value>              [default: NONE] Path to your public key

DESCRIPTION
  Build and/or deploy a Microvisor application using the standard Microvisor CMake-based workflow
```

## `twilio microvisor:factory:image OUT`

Create SPI flash image for Microvisor factory process

```
USAGE
  $ twilio microvisor:factory:image OUT [-l debug|info|warn|error|none] [--purpose factory|application|kernel|custom]
    [--application <value>] [--application-test <value>] [--microvisor-test <value>] [--microvisor <value>]

ARGUMENTS
  OUT  Output file for file system image.

FLAGS
  -l=(debug|info|warn|error|none)  [default: info] Level of logging messages.
  --application=<value>            Path to application bundle
  --application-test=<value>       Path to test application bundle.
  --microvisor=<value>             Path to microvisor kernel bundle.
  --microvisor-test=<value>        Path to microvisor test bundle.
  --purpose=<option>               [default: factory] What the image is for: factory process, application sideloading,
                                   kernel sideloading or a custom image
                                   <options: factory|application|kernel|custom>

DESCRIPTION
  Create SPI flash image for Microvisor factory process
```

## `twilio microvisor:info:sid DEVICEPATH`

Get a device's SID

```
USAGE
  $ twilio microvisor:info:sid DEVICEPATH [-l debug|info|warn|error|none]

ARGUMENTS
  DEVICEPATH  The path to the device file or COM port

FLAGS
  -l=(debug|info|warn|error|none)  [default: info] Level of logging messages.

DESCRIPTION
  Get a device's SID
```

## `twilio microvisor:info:version DEVICEPATH`

Get a device's Microvisor version

```
USAGE
  $ twilio microvisor:info:version DEVICEPATH [-l debug|info|warn|error|none]

ARGUMENTS
  DEVICEPATH  The path to the device file or COM port

FLAGS
  -l=(debug|info|warn|error|none)  [default: info] Level of logging messages.

DESCRIPTION
  Get a device's Microvisor version
```

## `twilio microvisor:logs:stream DEVICESID`

```
USAGE
  $ twilio microvisor:logs:stream DEVICESID [-l debug|info|warn|error|none] [-p <value>] [-o json|text]

ARGUMENTS
  DEVICESID  The Sid of the device you wish to stream logging from

FLAGS
  -l=(debug|info|warn|error|none)  [default: info] Level of logging messages.
  -o=<option>                      [default: text] Format of command output.
                                   <options: json|text>
  -p, --profile=<value>            Shorthand identifier for your profile.
```

## `twilio microvisor:wificonfig:clear DEVICEPATH`

Clear a Microvisor device's WiFi credentials, if set

```
USAGE
  $ twilio microvisor:wificonfig:clear DEVICEPATH [-l debug|info|warn|error|none]

ARGUMENTS
  DEVICEPATH  The path to the device file or COM port

FLAGS
  -l=(debug|info|warn|error|none)  [default: info] Level of logging messages.

DESCRIPTION
  Clear a Microvisor device's WiFi credentials, if set
```

## `twilio microvisor:wificonfig:get DEVICEPATH`

Get a Microvisor device's WiFi credentials, if set

```
USAGE
  $ twilio microvisor:wificonfig:get DEVICEPATH [-l debug|info|warn|error|none]

ARGUMENTS
  DEVICEPATH  The path to the device file or COM port

FLAGS
  -l=(debug|info|warn|error|none)  [default: info] Level of logging messages.

DESCRIPTION
  Get a Microvisor device's WiFi credentials, if set
```

## `twilio microvisor:wificonfig:ports`

List possible connected Microvisor devices' Unix paths

```
USAGE
  $ twilio microvisor:wificonfig:ports [-l debug|info|warn|error|none]

FLAGS
  -l=(debug|info|warn|error|none)  [default: info] Level of logging messages.

DESCRIPTION
  List possible connected Microvisor devices' Unix paths
```

## `twilio microvisor:wificonfig:set WIFISSID WIFIPWD DEVICEPATH`

Set a Microvisor device's WiFi credentials

```
USAGE
  $ twilio microvisor:wificonfig:set WIFISSID WIFIPWD DEVICEPATH [-l debug|info|warn|error|none]

ARGUMENTS
  WIFISSID    The WiFi network name
  WIFIPWD     The WiFI password
  DEVICEPATH  The path to the device file or COM port

FLAGS
  -l=(debug|info|warn|error|none)  [default: info] Level of logging messages.

DESCRIPTION
  Set a Microvisor device's WiFi credentials
```
<!-- commandsstop -->
