> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo-helix/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo-helix/_mcp/server.

# Data Designer CLI

The NeMo Data Designer plugin adds the `nemo data-designer` command group. Use it to execute Data Designer workloads on NeMo Platform.

## Configuration Sources

The `preview` and `create` commands accept a configuration source path. The most flexible form is a Python file that defines `load_config_builder()` and returns a configured `DataDesignerConfigBuilder` instance. This file can have any name; the examples below use `product_reviews.py`.

```python
import data_designer.config as dd

def load_config_builder() -> dd.DataDesignerConfigBuilder:
    model_configs = [
        dd.ModelConfig(
            provider="default/nvidia-build",
            model="nvidia/nemotron-3-nano-30b-a3b",
            alias="text",
        )
    ]

    config_builder = dd.DataDesignerConfigBuilder(model_configs)
    # Add columns, constraints, seed datasets, processors, and profilers here.
    return config_builder
```

```bash
nemo data-designer preview product_reviews.py --workspace default
nemo data-designer create product_reviews.py --workspace default
```

## Validate

The `validate` command checks a configuration before you spend time on a preview or a create job. It accepts the same configuration sources as `preview` and `create`.

```bash
nemo data-designer validate product_reviews.py
```

```text
  ────────────────────────── Data Designer Validate ──────────────────────────

  Config: product_reviews.py

  ✅    ✔ Configuration is valid
```

Validation covers both the configuration itself and the NeMo Platform resources it depends on: Inference Gateway provider references, Files service seed sources, Nemotron Personas filesets, and the seed source types the service supports.

A single run reports every problem it detects rather than stopping at the first one:

```text
  ❌    ✘ The NeMo Platform Data Designer service only supports seed data from
HuggingFace or the NeMo Platform Files service (FilesetFile, Directory, or
FileContents seed sources referencing fileset paths). Upload your data to the
Files service, adjust your config, and try again.
  ❌    ✘ Errors in model configs: ["Cannot access provider
'default/does-not-exist'. Check that it exists and you have access to it."]
```

The command exits `0` only when no errors are reported, so you can gate a pipeline on it.

| Option                    | Description                                                                                                                        |
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `--workspace <WORKSPACE>` | Workspace used to resolve provider references and seed sources. Defaults to the workspace of the active CLI context, or `default`. |
| `--output <text\|json>`   | Output format. Defaults to `text`.                                                                                                 |

Use `--output json` to consume results programmatically:

```bash
nemo data-designer validate product_reviews.py --output json
```

```json
{
  "config_source": "product_reviews.py",
  "errors": [
    {
      "message": "Errors in model configs: [\"Cannot access provider 'default/does-not-exist'. Check that it exists and you have access to it.\"]"
    }
  ],
  "ok": false
}
```

## Retrieval SDG

Nemotron retrieval Stage 0/1 use dedicated jobs, not `create`. See [Retrieval SDG](/documentation/design-synthetic-data/retrieval-sdg) for the Stage 0 model choice: outside of examples, always use a larger model (for example [`nvidia/nemotron-3-ultra-550b-a55b`](https://huggingface.co/nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B-BF16) when the provider serves it). The `--chat-model` below is only a smaller IGW example.

```bash
nemo data-designer retrieval generate \
  --corpus default/my-docs \
  --provider default/nvidia-build \
  --chat-model nvidia/nemotron-3-nano-30b-a3b \
  --embed-model nvidia/nemotron-3-embed-1b
nemo data-designer retrieval-prepare --spec '{"sdg_input":"default/stage0-out"}'
```

## Personas

The plugin provides commands for Nemotron Personas datasets.

Create a Files API Fileset for a persona locale so workloads can use it:

```bash
nemo data-designer personas make-fileset \
  --locale en_US \
  --api-key-secret system/ngc-api-key
```

If you need to create the secret during the same command, set an environment variable with the NGC API key and pass `--api-key-env-var`:

```bash
nemo data-designer personas make-fileset \
  --locale en_US \
  --api-key-secret system/ngc-api-key \
  --api-key-env-var NGC_API_KEY
```