Skip to main content

Module Guide: Plugins

The plugin system is DashAI's extensibility mechanism. It allows new capabilities — models, tasks, data formats, transformations, explainers, and metrics — to be added to the platform without modifying its core code. Plugins are distributed as standard Python packages on PyPI and installed directly from the DashAI interface.


How the Plugin System Works

DashAI discovers plugins through Python's entry points mechanism. When a Python package declares a dashai.plugins entry point in its pyproject.toml, DashAI's component registry automatically picks it up on startup and makes its components available in the appropriate sections of the interface.

This means:

  • A plugin that adds a new model will appear in the Models module's available model list for the task it supports.
  • A plugin that adds a new converter will appear in the Notebook's CONVERT panel.
  • A plugin that adds a new dataloader will appear in the upload format selection.

No manual registration or configuration is required — the entry point declaration is sufficient.


What Plugins Can Contribute

A single plugin package can contribute any combination of the following component types:

Component TypeWhere it appears in DashAI
ModelsModels module — available model list for the relevant task
TasksModels module — task selection landing page
Data LoadersDatasets module — upload format selector
ConvertersNotebook module — CONVERT tab
ExplainersModels module — EXPLAINABILITY tab
MetricsModels module — evaluation metrics for the relevant task

Installing Plugins

Navigate to the PLUGINS section in the top navigation bar. From there you can:

  1. Search for plugins published on PyPI by name or keyword.
  2. View plugin descriptions, supported component types, and version information.
  3. Install with a single click — DashAI handles the pip installation and component registration automatically.
  4. Restart DashAI if prompted — some plugins require a restart to fully register their components.

Once installed, new components appear immediately (or after restart) in their respective sections without any further configuration.


Plugin Structure

A DashAI plugin is a standard Python package with a specific structure:

plugin_name/
├── LICENSE
├── pyproject.toml
├── README.md
└── src/
└── plugin_name/
├── my_model.py
└── MyModel.json

Each component is implemented as a Python class that extends the appropriate DashAI base class, paired with a JSON schema file that describes its parameters for the interface.

The pyproject.toml must declare one entry point per component class:

[project.entry-points.'dashai.plugins']
MyModel = 'plugin_name.my_model:MyModel'

And must include the appropriate keywords so DashAI can categorize the plugin:

[project]
keywords = ["DashAI", "Package", "Model", "Task"]

Valid keywords: DashAI, Package, Task, Model, Dataloader, Converter, Explainer


Notable Published Plugins

DashAI's image generation capabilities are themselves distributed as plugins:

PluginWhat it adds
dashai-stable-diffusion-v1-model-packageStable Diffusion v1 for text-to-image generation
dashai-flux-model-packageFlux model for text-to-image generation
dashai-stable-diffusion-controlnet-canny-modelControlNet with Canny edge conditioning

This architecture — where even first-party capabilities are plugins — means the core platform stays lean and every feature is opt-in based on your hardware and use case.


Developing Your Own Plugins

Building a plugin requires:

  1. Creating a Python class that extends the right DashAI base class for your component type (e.g., TabularClassificationModel for a tabular classification model).
  2. Creating a JSON schema file that describes the component's parameters — this is what DashAI uses to generate the configuration UI automatically.
  3. Packaging the code with proper pyproject.toml entry points.
  4. Testing locally by placing the plugin in a plugins/ folder inside your DashAI development directory.
  5. Publishing to PyPI when ready.

For a complete development guide including code examples, base class references, and a publishing walkthrough, see the Plugin Development section.

info

The entry point mechanism means any package on PyPI with the correct structure will work — there is no approval process or central registry beyond PyPI itself. You can also install plugins from local paths during development.