Introduction
MoBro is a modular application that can be extended using plugins and widget packs.
Plugins primarily serve as data providers, but their functionality isn’t limited to just that. They can also enhance
various aspects of MoBro’s capabilities.
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.
Plugin Development
MoBro currently uses .NET 8 as its base framework for plugins, with plans to upgrade to .NET 10 in the near future.
SDK
The MoBro Plugin SDK provides everything needed to develop plugins for MoBro.
It is available on NuGet, and the source code is publicly accessible
on GitHub.
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 (the plugin’s parent process).
- 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.
- And much more...
CLI
The MoBro Plugin CLI simplifies the plugin development workflow by providing tools to:
- Publish a plugin.
- Install a plugin to MoBro for testing.
- Publish a plugin to the official Marketplace to make it widely available.
The CLI can be installed via NuGet using a single command:
dotnet tool install --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, enabling seamless integration of
additional features on the fly.
To make your plugin accessible to all MoBro users, you must publish it to the Marketplace.