For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
  • Getting Started
    • Welcome
    • Contributing
  • Concepts
    • Columns
    • Seed Datasets
    • Agent Rollout Ingestion
    • Custom Columns
    • Validators
    • Processors
    • Person Sampling
    • Traces
    • Architecture & Performance
    • Deployment Options
    • Security
  • Tutorials
    • Overview
    • The Basics
    • Structured Outputs, Jinja Expressions, and Conditional Generation
    • Seeding with an External Dataset
    • Providing Images as Context
    • Generating Images
    • Image-to-Image Editing
  • Recipes
    • Recipe Cards
  • Plugins
    • Overview
    • Example Plugin
    • FileSystemSeedReader Plugins
    • Discover
  • Code Reference
    • Overview
  • Dev Notes
    • Overview
    • Push Datasets to Hugging Face Hub
    • Text-to-SQL for Nemotron Super
    • Async All the Way Down
    • Owning the Model Stack
    • Data Designer Got Skills
NVIDIANVIDIA
Developer-friendly docs for your API
Privacy Policy | Manage My Privacy | Do Not Sell or Share My Data | Terms of Service | Accessibility | Corporate Policies | Product Security | Contact

Copyright © 2026, NVIDIA Corporation.

LogoLogoNeMo Data Designer
On this page
  • What are plugins?
  • Supported plugin types
  • How do you use plugins?
  • How do you create plugins?
  • 1. Implement the Plugin Components
  • 2. Package Your Plugin
  • 3. Install and Test Locally
  • 4. Share Your Plugin (Optional)
Plugins

Data Designer Plugins

||View as Markdown|
Previous

Nemotron Super Search Agent

Next

Example Plugin: Column Generator

Experimental in this version Plugins were experimental in v0.5.8 and v0.5.9. For stable plugin docs, see the v0.6.0 plugin docs.

What are plugins?

Plugins are Python packages that extend Data Designer’s capabilities without modifying the core library. Similar to VS Code extensions and Pytest plugins, the plugin system empowers you to build specialized extensions for your specific use cases and share them with the community.

Supported plugin types

Current capabilities: Data Designer supports three plugin types:

  • Column Generator Plugins: Custom column types you pass to the config builder’s add_column method.
  • Seed Reader Plugins: Custom seed dataset readers that let you load data from new sources (e.g., databases, cloud storage, custom formats).
  • Processor Plugins: Custom processors that transform data before batches, after batches, or after generation completes. Pass them to the config builder’s add_processor method.

How do you use plugins?

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.

How do you create plugins?

Creating a plugin involves three main steps:

1. Implement the Plugin Components

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
    • Column generator plugins: inherit from SingleColumnConfig with a column_type discriminator
    • Seed reader plugins: inherit from SeedSource with a seed_type discriminator
    • Processor plugins: inherit from ProcessorConfig with a processor_type discriminator
  • impl.py — Implementation class containing the core logic
    • Column generator plugins: inherit from ColumnGeneratorFullColumn or ColumnGeneratorCellByCell
    • Seed reader plugins: inherit from SeedReader or FileSystemSeedReader for directory-backed sources
    • Processor plugins: inherit from Processor and override callback methods (process_before_batch, process_after_batch, process_after_generation)
  • plugin.py — A Plugin instance that connects the config and implementation classes

2. Package Your Plugin

  • Set up a Python package with pyproject.toml
  • Register your plugin using entry points under data_designer.plugins
  • Define dependencies (including data-designer)

3. Install and Test Locally

  • Install your plugin locally with uv pip install -e . (editable mode)
  • No publishing required — your plugin is usable immediately after a local install
  • Iterate on your plugin code with fast feedback

4. Share Your Plugin (Optional)

  • Publish to PyPI, another package index, or a direct package reference when you want others outside your environment to install the plugin
  • Add the package to a plugin catalog so users can discover and install it through data-designer plugin

Example entry point for a processor plugin:

1[project.entry-points."data_designer.plugins"]
2my-processor = "my_plugin.plugin:my_processor_plugin"

Where my_processor_plugin is a Plugin instance with plugin_type=PluginType.PROCESSOR:

1from data_designer.plugins.plugin import Plugin, PluginType
2
3my_processor_plugin = Plugin(
4 config_qualified_name="my_plugin.config.MyProcessorConfig",
5 impl_qualified_name="my_plugin.impl.MyProcessor",
6 plugin_type=PluginType.PROCESSOR,
7)

Ready to get started?

  • See the Example Plugin for a column generator walkthrough
  • See FileSystemSeedReader Plugins for filesystem-backed seed reader plugins
  • See the Markdown Section Seed Reader recipe for a runnable single-file 1:N filesystem reader example