Plugins let you add new object types to Data Designer without modifying the core library. Once installed, plugins behave like native Data Designer objects: they use the same declarative config patterns, builder APIs, discovery flow, and runtime execution paths as the built-in objects.
Data Designer supports three plugin types:
A Data Designer plugin is just a Python package configured with an entry point that points to a Data Designer Plugin object. Once installed, plugins are automatically discovered and ready to use — no additional registration or configuration needed.
Use the Data Designer CLI to discover and install published plugin packages from catalogs. See Discover Plugins for the catalog workflow. See the example plugin for a complete authoring walkthrough, or jump to FileSystemSeedReader Plugins for filesystem-backed seed reader authoring.
Creating a plugin involves three main steps:
Each plugin has three components, and we recommend organizing them into separate files within a plugin subdirectory:
config.py — Configuration class defining user-facing parameters
SingleColumnConfig with a column_type discriminatorSeedSource with a seed_type discriminatorProcessorConfig with a processor_type discriminatorimpl.py — Implementation class containing the core logic
ColumnGeneratorFullColumn or ColumnGeneratorCellByCellSeedReader or FileSystemSeedReader for directory-backed sourcesProcessor and override callback methods (process_before_batch, process_after_batch, process_after_generation)plugin.py — A Plugin instance that connects the config and implementation classespyproject.tomldata_designer.pluginsdata-designer)uv pip install -e . (editable mode)data-designer pluginExample entry point for a processor plugin:
Where my_processor_plugin is a Plugin instance with plugin_type=PluginType.PROCESSOR:
Ready to get started?
1:N filesystem reader example