NeMo Data Designer skill

NVIDIA's skill for Claude Code and Codex: the agent turns a dataset description into a config, validates it, previews it and generates synthetic data

  • 2,362 ★ on the repository
  • Last commit
  • Apache-2.0
SkillOfficial

Extended access

Why this level

  • Runs a command-line tool and Python scripts and writes config and dataset files into the working folder
  • Sends requests to paid model providers with your key, including during preview and dataset creation
  • The library by default passes anonymous telemetry to NVIDIA with model names and token counts
All reasons and checks

NVIDIA-NeMo/DataDesigner

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add skills/nemo-data-designer

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • Runs a command-line tool and Python scripts and writes config and dataset files into the working folder
  • Sends requests to paid model providers with your key, including during preview and dataset creation
  • The library by default passes anonymous telemetry to NVIDIA with model names and token counts

This is third-party code. Review the repository files before installing.

What it does

The data-designer skill works on top of NVIDIA's Data Designer Python library and its data-designer command-line tool. You describe the dataset you need in words, and the agent writes a Python file with a load_config_builder() function that returns the generation config: sampler columns, LLM-prompt columns, validators, judge models and processors. The file carries PEP 723 inline metadata with a data-designer dependency. The skill moves through steps. First it finds the tool, reads data-designer agent context and learns the available model aliases. Then in interactive mode it asks clarifying questions about axes of diversity, the final schema and the output structure, while in autopilot mode, when you ask it to decide on its own, it makes reasonable choices and lists them. Next come data-designer validate, fixing any warnings and data-designer preview --save-results, after which the agent gives a link to an HTML page of sample records and edits the config from your feedback. In interactive mode you run the data-designer create command with a record count yourself, while in autopilot the agent runs it if you named a record count. Generation columns can use samplers, LLMs, images, custom Python functions and seed datasets, if you name a file of starting records yourself. Separate reference files cover person sampling (names, demographics, addresses), preview review and working with seed data.

Who it is for. For engineers and researchers who need synthetic datasets for training, evaluation or testing and want to describe a dataset in words and get a ready config file for the library.

Good fit when

  • You need a set of texts, such as support requests or reviews, with controlled variety of categories, tone and length
  • You need structured output following a Pydantic schema: fields, types and constraints defined in advance
  • You want a judge model to score generated records and validators in Python or SQL to check them
  • You want to see the first records in HTML before spending tokens on the whole set
  • You need synthetic personas with demographics and addresses for test scenarios

Not a fit when

  • The data already exists and only needs transforming or cleaning: the skill is for generation, and it uses your own records as a seed only on explicit request
  • The machine has no Python 3.10 or newer and you cannot install it: the data-designer library is required
  • You have no access to any model provider: you need an NVIDIA Build, OpenAI or OpenRouter key, or your own endpoint
  • You need an exact statistical twin of a real sample: Data Designer creates plausible synthetic records from your configuration

Example request

Use data-designer to build a set of a thousand online-store support requests with a category, tone, an operator reply and a judge's quality score for the reply

Limitations

  • The skill needs the library: the data-designer package installs with pip install data-designer, and Python 3.10–3.14 is supported. If the tool is missing, the agent by its instructions asks permission and installs nothing itself.
  • Generation needs a provider key in NVIDIA_API_KEY, OPENAI_API_KEY or OPENROUTER_API_KEY, or your own endpoint set up with the data-designer config commands. If model aliases are not configured, the skill stops.
  • By default the library sends anonymous telemetry to NVIDIA: model names and input and output token counts. NEMO_TELEMETRY_ENABLED=false turns it off, and a third-party endpoint's terms apply separately.
  • How fast a dataset is created depends on the configuration and on your inference setup. For large sets the agent in autopilot mode warns and asks for confirmation.
  • By the NVSkills-Eval report the skill passed with static analysis observations. Over four tasks with two attempts each, effectiveness was 97 percent for Claude Code and for Codex, and token efficiency was 64 and 62 percent.

How to disable. Remove the skill from the agent's skills directory. pip uninstall data-designer removes the library and the tool. The NEMO_TELEMETRY_ENABLED=false variable turns telemetry off without removing the library. The config and dataset files it made sit in your working folder and are deleted by hand.

FAQ

How does the skill's interactive mode differ from autopilot?

In interactive mode the agent asks clarifying questions about ranges, schema and output structure, shows a plan and stays in the loop until you are satisfied. Autopilot is triggered by phrases like "you decide" or "make reasonable assumptions": the agent makes the decisions itself, names the main ones and brings the work to a preview. If you gave a record count, it runs creation.

Which model providers does the library offer by default?

The quick start offers NVIDIA Build, OpenAI and OpenRouter. Keys go in the NVIDIA_API_KEY, OPENAI_API_KEY and OPENROUTER_API_KEY variables, and your own providers and models are set up with the data-designer config providers and data-designer config models commands.

What does the data-designer agent context command do?

It gives the agent library context verified against the code in one read: column schemas, sampler types, validators, processors and the available model aliases. Thanks to it the agent does not crawl the engine's source, and the validate, preview and create commands cover the rest.

How do I connect generation to external tools?

The library can call local and remote MCP servers during generation and save the call trace. Examples sit in the docs/assets/recipes/mcp_and_tooluse recipes. For data sources and processing there are plugins, for example reading GitHub files as seed data: data-designer plugin install github.

What do I get after preview?

The data-designer preview <path> --save-results command saves sample records as HTML files, and the agent gives a link to sample_records_browser.html. On request it reviews the records itself using the preview-review.md reference and suggests config improvements.

Discussion

No questions or reviews yet.

Skills
Needs a VPN

Databricks Field Engineering's agent kit: an installer for Databricks skills, an MCP server and a visual Builder App

PluginBroad access2KRepository stars

A data visualization skill for agents: turns data into polished interactive HTML charts and full reports with one visual language

SkillMinimal access6.4KRepository stars

A Python library for typed, versioned datasets over S3, GCS, and Azure, with a datachain skill install command that teaches Claude Code, Cursor, and Codex your

SkillExtended access2.8KRepository stars

DataLens Dev MCP

datalens-dev-mcp

Russian stack

Local MCP server and Codex plugin for Yandex DataLens dashboard development: read, author, publish, back up and clean up objects

MCP serverBroad access6Repository stars

A skill and Python package for hyperparameter tuning: the agent reads the code, proposes the next set of values, and your own run measures the result

SkillBroad access797Repository stars

SciPilot Figure

scipilot-figure-skill

A scientific visualization advisor skill: it profiles the data and picks a chart for the argument first, then renders it to journal-grade quality

SkillExtended access2.7KRepository stars

README in short

The repository's main page starts with a description of the library, a three-step quick start (install, key, a Python example), a section on plugins and NVIDIA's catalog, links to documentation and tutorial notebooks, model setup from the console and installing the skill for agents. Next come sections on telemetry and how to turn it off and on the Apache 2.0 license with a link to the technical report. The repository holds documentation on the Fern platform, architecture notes, recipes with MCP and plugins, and a skills/data-designer folder with workflows, references, checks and an evaluation report.

README badge

Original SKILL.md

---
name: data-designer
description: Use when the user wants to create a dataset, generate synthetic data, or build a data generation pipeline.
argument-hint: [describe the dataset you want to generate]
license: Apache-2.0
metadata:
  owner: DataDesigner
---

# Before You Start

Do not explore the workspace first. The workflow's Learn step gives you everything you need.

# Goal

Build a synthetic dataset using the Data Designer library that matches this description:

$ARGUMENTS

# Workflow

Use **Autopilot** mode if the user implies they don't want to answer questions — e.g., they say something like "be opinionated", "you decide", "make reasonable assumptions", "just build it", "surprise me", etc. Otherwise, use **Interactive** mode (default).

Read **only** the workflow file that matches the selected mode, then follow it:

- **Interactive** → read `workflows/interactive.md`
- **Autopilot** → read `workflows/autopilot.md`

# Rules

- Keep all columns in the output by default. The only exceptions for dropping a column are: (1) the user explicitly asks, or (2) it is a helper column that exists solely to derive other columns (e.g., a sampled person object used to extract name, city, etc.). When in doubt, keep the column.
- Do not suggest or ask about seed datasets. Only use one when the user explicitly provides seed data or asks to build from existing records. When using a seed, read `references/seed-datasets.md`.
- When the dataset requires person data (names, demographics, addresses), read `references/person-sampling.md`.
- If a dataset script that matches the dataset description already exists, ask the user whether to edit it or create a new one.

# Usage Tips and Common Pitfalls

- **Sampler and validation columns need both a type and params.** E.g., `sampler_type="category"` with `params=dd.CategorySamplerParams(...)`.
- **Jinja2 templates** in `prompt`, `system_prompt`, and `expr` fields: reference columns with `{{ column_name }}`, nested fields with `{{ column_name.field }}`.
- **`SamplerColumnConfig`:** Takes `params`, not `sampler_params`.
- **LLM judge score access:** `LLMJudgeColumnConfig` produces a nested dict where each score name maps to `{reasoning: str, score: int}`. To get the numeric score, use the `.score` attribute. For example, for a judge column named `quality` with a score named `correctness`, use `{{ quality.correctness.score }}`. Using `{{ quality.correctness }}` returns the full dict, not the numeric score.

# Troubleshooting

- **`data-designer` CLI not found:** Tell the user that `data-designer` is not installed in this environment (requires Python >= 3.10). Ask if they would like you to create a virtual environment and install it, or if they prefer to do it themselves. Do not install anything without the user's permission.
- **Network errors during preview:** A sandbox environment may be blocking outbound requests. Ask the user for permission to retry the command with the sandbox disabled. Only as a last resort, if retrying outside the sandbox also fails, tell the user to run the command themselves.

# Output Template

Write a Python file to the current directory with a `load_config_builder()` function returning a `DataDesignerConfigBuilder`. Name the file descriptively (e.g., `customer_reviews.py`). Use PEP 723 inline metadata for dependencies.

```python
# /// script
# dependencies = [
#   "data-designer", # always required

Report a problem

Foxx AINeMo Data Designer
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.