The Brain works much like a human brain does. It is the central application that pools all the information from the collection services, processes it, and communicates out to the the other services. In its current form it accepts text data inputs (in JSON format) posted to its TCP service and will in turn send out requests to the appropriate devices once processing is complete and tasks are determined and executed.

The brain also hosts the “webgui” which is a simple control panel accessible via a web browser that allows an end user to directly send commands to the brain. This is especially helpful when testing out new skills.

Skills are how the brain processes incoming data/speech. They leverage “Padatious” (a product of the Mycroft community) to parse text and determine intent. Skills are often built around discrete tasks where a “right answer” can be clearly determined.

The minimum start options for the Brain are:

# Start the Brain service with standard HTTP
python3 --brain-start --use-http

# Start the Brain service with HTTPS (SSL)
python3 --brain-start \
  --ssl-keypath /path/to/key.pem \
  --ssl-certfile /path/to/cert.pem