# How NVIDIA Plugin Contents Are Generated in OpenAI Plugins

> Discover how NVIDIA plugin contents are generated by router skills. Learn how they clone repositories and delegate execution to containerized sibling skills for efficient processing.

- Repository: [OpenAI/plugins](https://github.com/openai/plugins)
- Tags: how-to-guide
- Published: 2026-09-13

---

**NVIDIA plugin contents are generated by router skills that clone the upstream NVIDIA nurec-skills repository and delegate execution to containerized sibling skills rather than implementing heavy computation locally.**

The openai/plugins repository contains lightweight router implementations for NVIDIA Physical AI capabilities. These routers do not contain the actual implementation code for neural reconstruction or rendering. Instead, they generate their content by dynamically referencing and delegating to upstream NVIDIA repositories and Docker containers.

## Router Skill Definition Structure

Each NVIDIA plugin is defined by a [`SKILL.md`](https://github.com/openai/plugins/blob/main/SKILL.md) file that acts as a routing manifest. In [`plugins/nvidia/skills/physical-ai-neural-reconstruction/SKILL.md`](https://github.com/openai/plugins/blob/main/plugins/nvidia/skills/physical-ai-neural-reconstruction/SKILL.md), the file declares:

- **Compatibility requirements**: Docker, NVIDIA Container Toolkit, GPU access, NGC API key, Hugging Face token, and Python 3.10+
- **Upstream mapping**: A block pointing to `https://github.com/NVIDIA/nurec-skills` that lists sibling skills including `ncore`, `nre`, `asset-harvester`, and `nurec-fixer`
- **Hard rules**: The router must never execute mutable commands itself; it only forwards requests to appropriate sibling skills

This declarative approach ensures the OpenAI Plugins repository remains lightweight while maintaining access to cutting-edge NVIDIA tools.

## Upstream Cloning and Refresh Mechanism

The router generates content by first ensuring the upstream NVIDIA repository is available locally. A reproducible bash script handles the cloning or updating logic, storing files in `${NUREC_SKILLS_UPSTREAM_ROOT}` (defaulting to `$HOME/.physical-ai-skill-hub/upstreams`).

```bash
UPSTREAM_ROOT="${NUREC_SKILLS_UPSTREAM_ROOT:-$HOME/.physical-ai-skill-hub/upstreams}"
mkdir -p "$UPSTREAM_ROOT"
if [ -d "$UPSTREAM_ROOT/nurec-skills/.git" ]; then
  git -C "$UPSTREAM_ROOT/nurec-skills" fetch --tags
  git -C "$UPSTREAM_ROOT/nurec-skills" checkout main
  git -C "$UPSTREAM_ROOT/nurec-skills" pull --ff-only
else
  git clone --depth 1 https://github.com/NVIDIA/nurec-skills.git \
    "$UPSTREAM_ROOT/nurec-skills"
fi

```

This logic is documented precisely in [`references/upstream-fetch.md`](https://github.com/openai/plugins/blob/main/references/upstream-fetch.md) within the plugin directory. The script performs a shallow clone (`--depth 1`) to minimize storage while ensuring the latest `main` branch is always available for skill delegation.

## Skill Selection and Execution Delegation

When processing user requests, the router parses intent keywords such as `nurec`, `nre`, or `USDZ` to select the appropriate sibling skill from its routing table (defined in lines 58-78 of [`SKILL.md`](https://github.com/openai/plugins/blob/main/SKILL.md)).

**Mapping Examples:**
- **Rendering USDZ files**: Routes to the `nre` sibling skill
- **Dataset downloads**: Routes to `physical-ai-datasets`
- **Asset processing**: Routes to `asset-harvester` or `nurec-fixer`

After selection, the router prints the path to the sibling's [`SKILL.md`](https://github.com/openai/plugins/blob/main/SKILL.md) file (e.g., [`.../nre/SKILL.md`](https://github.com/openai/plugins/blob/main/.../nre/SKILL.md)) so the LLM can read exact command recipes. The downstream skill then executes Docker containers:

```bash

# View the sibling skill's commands

cat "$UPSTREAM_ROOT/nurec-skills/.agents/skills/nre/SKILL.md"

# Execute via containerized NVIDIA tools

docker run --gpus all -v "$UPSTREAM_ROOT/nurec-skills:/repo" \
  nvcr.io/nvidia/nre/nre render --scene my_scene.usdz

```

Runtime secrets including the **NGC API key** and **Hugging Face token** are passed via environment variables, never hard-coded in the router logic.

## Maintenance and Update Strategy

Because the router contains only routing tables and metadata, upstream NVIDIA repositories can evolve independently without requiring changes to the OpenAI Plugins codebase. The [`references/maintenance.md`](https://github.com/openai/plugins/blob/main/references/maintenance.md) file describes how to:

- Add new sibling skills to the routing table
- Rename existing skills without breaking delegation
- Adjust upstream URLs when NVIDIA reorganizes repositories

This architecture ensures that security updates, feature additions, and bug fixes in the NVIDIA container images are immediately available to users without plugin updates.

## Summary

- **NVIDIA plugin contents** are generated by thin router skills, not monolithic implementations
- The router clones or updates `https://github.com/NVIDIA/nurec-skills` into a local cache directory controlled by `NUREC_SKILLS_UPSTREAM_ROOT`
- **Skill delegation** routes requests to sibling containers like `nvcr.io/nvidia/nre/nre` based on intent parsing
- Hard rules prevent the router from executing mutable commands locally, isolating all heavy computation to upstream Docker containers
- Maintenance is simplified because the router only mirrors routing logic, allowing upstream NVIDIA tools to evolve independently

## Frequently Asked Questions

### What is the difference between the router and the upstream NVIDIA skills?

The router is a lightweight manifest stored in [`plugins/nvidia/skills/physical-ai-neural-reconstruction/SKILL.md`](https://github.com/openai/plugins/blob/main/plugins/nvidia/skills/physical-ai-neural-reconstruction/SKILL.md) that contains metadata, compatibility requirements, and routing tables. The upstream skills are the actual implementations hosted in `https://github.com/NVIDIA/nurec-skills` that perform computational work inside Docker containers. The router never implements the algorithms itself; it only delegates to these upstream siblings.

### How does the router handle authentication for NVIDIA NGC and Hugging Face?

The router passes authentication credentials via environment variables at runtime. The [`SKILL.md`](https://github.com/openai/plugins/blob/main/SKILL.md) specifies required secrets such as the **NGC API key** and **Hugging Face token** in its compatibility section, but these are never hard-coded in the repository. When executing sibling skills, the Docker runtime injects these variables into the containerized NVIDIA tools.

### Can the router work offline after initial cloning?

Yes, once the upstream repository is cloned to `${NUREC_SKILLS_UPSTREAM_ROOT}/nurec-skills`, the router can reference the local [`SKILL.md`](https://github.com/openai/plugins/blob/main/SKILL.md) files and cached containers without internet access. However, the initial `git clone` or subsequent `git pull` operations require network connectivity to `github.com/NVIDIA/nurec-skills` and `nvcr.io` for container images.

### What happens when NVIDIA updates the nurec-skills repository?

The router automatically incorporates upstream changes through its refresh mechanism. When the router executes its update script (documented in [`references/upstream-fetch.md`](https://github.com/openai/plugins/blob/main/references/upstream-fetch.md)), it performs a fast-forward pull from the `main` branch of the upstream repository. Because the router only references the upstream directory structure and command recipes, new features in NVIDIA's containerized tools are immediately available without modifying the OpenAI Plugins codebase.