Skip to main content

Introduction

MoBro is a modular application that can be extended using plugins and widget packs.
Plugins primarily serve as data providers: they read data from hardware sensors, other programs or external APIs and provide it to MoBro as metrics, which can then be displayed on dashboards. Plugins can also provide actions that users trigger from their dashboards.

Users can install and manage plugins directly from MoBro through the built-in Marketplace.

Plugins for MoBro are written in C#, utilizing the MoBro Plugin SDK and MoBro Plugin CLI for development.


Quick Start

Get started immediately by building your first simple plugin. Follow the step-by-step instructions in the Getting Started guide.


How Plugins Work

  • MoBro starts every installed plugin in its own process on the Windows PC where MoBro is installed.
  • The plugin registers its metrics and pushes their values. The SDK handles the entire communication with MoBro.
  • MoBro passes the user's plugin settings to the plugin and invokes the plugin's actions when triggered by the user.
  • Dashboards on other devices (browsers, phones, a Raspberry Pi) only display the data. Plugins never run on those devices.

Depending on its execution mode, a plugin runs either in the background with administrative privileges (the default), or within the session of the logged-in user.


Requirements

  • .NET SDK 10.0 or later
  • Windows 10 or 11 (x64) — plugins are Windows-only
  • MoBro installed on the same machine to test your plugin in the app
  • An IDE supporting C#, e.g. JetBrains Rider, Visual Studio or Visual Studio Code

Plugin Development

SDK

The MoBro Plugin SDK provides everything needed to develop plugins for MoBro.
It is available on NuGet as MoBro.Plugin.SDK, and the source code is publicly accessible on GitHub. MoBro.Plugin.SDK is the only package a plugin needs to reference.

With this SDK, developers can focus on key tasks such as reading sensor data or accessing external APIs to provide metrics, while the SDK handles the underlying infrastructure, including:

  • Inter-process communication with MoBro.
  • Resource management for file-based metrics (e.g., icons, images).
  • Plugin settings management (including persistence).
  • Scheduling of recurring tasks (e.g., polling sensors).
  • Error handling and logging.
  • Localization support.
  • Data persistence.
  • Running and testing the plugin locally, without MoBro.

CLI

The MoBro Plugin CLI simplifies the plugin development workflow by providing tools to:

  • Publish a plugin as a .zip file.
  • Install a plugin to MoBro for testing.
  • Publish a plugin to the official Marketplace and manage its listing.

The CLI can be installed from NuGet using a single command:

dotnet tool install --global MoBro.Plugin.Cli

To update an existing installation to the latest version:

dotnet tool update --global MoBro.Plugin.Cli

Marketplace

The Marketplace acts as the central, official "store" for plugins and widget packs.
It allows users to browse, install, and manage plugins directly from within MoBro.

To make your plugin accessible to all MoBro users, you must publish it to the Marketplace.