Each MOS application has a configuration file config.yaml that's required to have, in order to run.

What this file does:

  1. Sets meta information for the application, which is used in the MATRIX App Store.
  2. Defines a schema for sending data from the device.
  3. Identifies which sensors, services, events and integrations an application utilizes.
  4. Defines dynamic settings variables, which are available to the application and end-user modifiable.
  5. Defines the widgets and their layout in the dashboard
  6. Generates a policy on install, asking the user for specific access to their device.

Configuration Options

  • name - Name of the application that appears as part of the application store when viewing it.
  • description - Short description that appears as part of the application when deploying or pushing to App Store.
  • keywords - a few values about the application. ex: face, door, unlock
  • version - this field will be updated by the CLI on publish.
  • configVersion - This field defines what version is the configuration. don't touch this.
  • settings - runtime variables for MOS applications
  • dataTypes - schema for structured data from an application
  • sensors - which sensors to activate for this application
  • integrations - which external integrations does this application support ie. ifttt
  • events - which events this application has listeners for
  • screens - layout for widgets. see Layout
  • widgets - widget definitions. see Widgets
  • services - service definitions.
#example config.yaml

name: example-app
displayName: The Example App
description: An example application config.yaml.


  - example
  - configuration

  - entertainment

  - temperature
  - gyroscope

Usage Notes

The config.yaml is standardized before installation, which will modify it somewhat, especially in the widget definations. Do not be alarmed if your installed config.yaml does not match the original, this is normal.

More info

See the helper library with examples at: