Official agent skill

Nemo Relay Plugin Build

by NVIDIA in NVIDIA/NeMo-Relay

A skill your agent uses when building or packaging reusable NeMo Relay runtime behavior as an embedded configuration component or a manifest-backed rustdynamic native or worker gRPC plugin, with…

OfficialApache-2.0Auto-check passedBackend & APIs

Install Nemo Relay Plugin Build

skills CLI
$ npx skills add NVIDIA/NeMo-Relay --skill nemo-relay-plugin-build -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install NVIDIA/NeMo-Relay nemo-relay-plugin-build --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/NVIDIA/NeMo-Relay.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/nemo-relay-plugin-build .claude/skills/nemo-relay-plugin-build && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
nemo-relay-plugin-build
GitHub stars
190
Token cost
~2.6k tokens
SKILL.md length
1,261 words
Files
5
Skills in repo
30
Repo updated
First seen
Licence
Apache-2.0

At a glance

A skill your agent uses when building or packaging reusable NeMo Relay runtime behavior as an embedded configuration component or a manifest-backed rustdynamic native or worker gRPC plugin, with…

  • Works in 12 steps: Decide whether a plugin is actually… → Choose an embedded component or a… → For native dynamic plugins, determine… → …
  • Packaging reusable NeMo Relay runtime behavior as an embedded configuration component
  • SKILL.md covers Use This When, Do Not Use This When, Choose A Delivery Model and Embedded Component Model, plus 8 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Nemo Relay Plugin Build is an agent skill from NVIDIA/NeMo-Relay, published by the product's own GitHub organization. Use this skill when building or packaging reusable NeMo Relay runtime behavior as an embedded configuration component or a manifest-backed rustdynamic native or worker gRPC plugin, with deterministic validation and rollback-safe registration.

Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files (for example `BENCHMARK.md`, `evals/evals.json` and `skill-card.md`).

It sits in Backend & APIs, covering gRPC and Protobuf. It works with gRPC and Rust. The repository describes itself as: Multi-language agent runtime and library for execution scope management, lifecycle events, and middleware on tool and LLM calls. The licence is Apache-2.0.

When your agent uses it

  • Packaging reusable NeMo Relay runtime behavior as an embedded configuration component
  • A manifest-backed rustdynamic native
  • Worker gRPC plugin
  • With deterministic validation and rollback-safe registration

Example prompts

  • “/nemo-relay-plugin-build”

Requirements

  • Node.js

Workflow steps

12 steps, taken from the first numbered list in SKILL.md.

  1. Decide whether a plugin is actually needed. Prefer direct instrumentation or
  2. Choose an embedded component or a discoverable dynamic package. For a
  3. For native dynamic plugins, determine the target Relay version from the
  4. Pick one first runtime surface: subscriber-oriented export, sanitize
  5. Choose a stable plugin kind and the smallest JSON-compatible config shape.
  6. Define diagnostics for missing fields, unsupported values, unknown fields,
  7. Validate config before initialization. Validation must not open network
  8. If validation returns error diagnostics, return them and stop without
  9. Register runtime behavior through PluginContext, not by hand-registering
  10. Test activation, disabled components, validation failures, and registration
  11. Document how to enable the plugin, what config fields are supported, and how
  12. For a dynamic plugin that should provide structured fields in

What it can do on your machine

Read from SKILL.md and the folder at commit 651453f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are json).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Nemo Relay Plugin Build loads about 2.6k tokens when it runs. Until then it costs about 68 tokens; SKILL.md has 1,261 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~68
When it runs · the whole SKILL.md, loaded when a task matches
~2.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from NVIDIA/NeMo-Relay at commit 651453f, republished under its Apache-2.0 licence (© NVIDIA). 1,261 words, ~2,565 tokens.

Download SKILL.mdSave it as .claude/skills/nemo-relay-plugin-build/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
nemo-relay-plugin-build
description
Use this skill when building or packaging reusable NeMo Relay runtime behavior as an embedded configuration component or a manifest-backed `rust_dynamic` native or `worker` gRPC plugin, with deterministic validation and rollback-safe registration.
license
Apache-2.0
metadata.author
NVIDIA Corporation and Affiliates

Build a Plugin

Use this skill when a user wants to package reusable NeMo Relay runtime behavior behind plugin configuration. Keep reusable plugin behavior separate from one-off application startup code.

Use This When

Use this skill when the behavior should be activated by shared config and reused across applications, teams, or process startup paths.

Common cases:

  • Register subscribers, guardrails, intercepts, or a small bundle of related runtime behavior.
  • Validate operator-supplied config before changing runtime behavior.
  • Give reusable behavior a stable plugin kind and activation lifecycle.
  • Package behavior that should be enabled, disabled, or rolled out through plugin config rather than repeated application startup code.

Do Not Use This When

Do not build a plugin when a narrower NeMo Relay surface is enough:

  • One request or tenant needs temporary behavior -> use scope-local middleware.
  • The user only needs first-time scopes, tool calls, or LLM calls -> nemo-relay-instrument-calls.
  • The user only needs to choose an exporter path -> nemo-relay-plugin-observability.
  • The behavior depends on live callables, provider clients, file handles, credentials, or framework objects inside config.

Choose A Delivery Model

Choose the delivery model before designing config or registration:

  • Embedded component: Use the shared plugin document when behavior ships with the Relay host application. Follow the embedded component model below.
  • Discoverable dynamic package: Use a relay-plugin.toml manifest when the plugin ships independently of the host. Use rust_dynamic for a trusted in-process native Rust library, or worker for a local grpc-v1 worker. Read the public native dynamic-plugin or gRPC worker guide before designing the package boundary. Do not reproduce native ABI or worker-protocol details from memory.

Native plugins are trusted C-ABI extensions that run in the Relay process and are not sandboxed. Worker plugins provide process isolation, not a security sandbox.

Embedded Component Model

  • Plugins package reusable process-level behavior.
  • A plugin exposes a stable kind string and receives component-local config from a shared plugin document.
  • Plugin config must be JSON-compatible across Rust, Python, Node.js, files, tests, and deployment systems.
  • Validation is deterministic and side-effect free. It inspects config and returns structured diagnostics before runtime behavior changes.
  • Registration runs after validation and installs real behavior through PluginContext, such as subscribers, guardrails, request intercepts, execution intercepts, or stream execution intercepts.
  • PluginContext gives the plugin system enough ownership to qualify runtime names and roll back partial setup when activation fails.
  • Disabled components should still validate when possible so operators can find config problems before rollout.

Default Path

  1. Decide whether a plugin is actually needed. Prefer direct instrumentation or scope-local behavior when the use case is not reusable process-level behavior.
  2. Choose an embedded component or a discoverable dynamic package. For a dynamic package, establish the manifest-backed native or worker boundary before implementing behavior.
  3. For native dynamic plugins, determine the target Relay version from the package constraint, lockfile, or deployment target before choosing callback APIs.
  4. Pick one first runtime surface: subscriber-oriented export, sanitize guardrail, conditional guardrail, request intercept, execution intercept, or stream execution intercept.
  5. Choose a stable plugin kind and the smallest JSON-compatible config shape.
  6. Define diagnostics for missing fields, unsupported values, unknown fields, unsafe config, and invalid field combinations.
  7. Validate config before initialization. Validation must not open network connections, create clients, register middleware, or mutate process state.
  8. If validation returns error diagnostics, return them and stop without initialization or registration.
  9. Register runtime behavior through PluginContext, not by hand-registering global behavior inside application startup.
  10. Test activation, disabled components, validation failures, and registration failure rollback.
  11. Document how to enable the plugin, what config fields are supported, and how to roll back the component.
  12. For a dynamic plugin that should provide structured fields in nemo-relay plugins edit, declare the config_schema capability and reference a local Draft 7 or Draft 2020-12 JSON Schema file from [config_schema].path in relay-plugin.toml. Schema-less plugins remain editable as raw JSON objects.

Config Shape

The top-level plugin document contains version, components, and policy. Each component supplies the plugin kind, enabled, and component-local config:

json
{
  "version": 1,
  "components": [
    {
      "kind": "redaction-policy",
      "enabled": true,
      "config": {
        "preset": "strict"
      }
    }
  ],
  "policy": {
    "unknown_component": "warn",
    "unknown_field": "warn",
    "unsupported_value": "error"
  }
}

Keep business logic in plugin code, not in config. Use references to secrets or endpoints rather than embedding sensitive values.

Binding Pointers

  • Python: nemo_relay.plugin
  • Node.js: nemo-relay-node/plugin
  • Rust: nemo_relay::plugin
  • Go and raw FFI are source-first or advanced surfaces.

Use the same canonical snake_case config keys across bindings and files. Node helper functions can be camelCase, but plugin config objects remain snake_case.

Dynamic Package Essentials

Keep the manifest package contract separate from the operator's plugin document. The manifest must declare the lane-specific kind and load contract, a normal SemVer Relay compatibility range, artifact integrity, and only the capabilities the plugin needs. Use a local config_schema only when structured CLI editing is needed.

Show full SKILL.md (497 more words)Show less

Native Version Compatibility

Choose the native callback model from the target Relay version; do not present the 0.8 SDK as source-compatible with 0.7:

  • Relay 0.7: Keep typed Rust middleware callbacks synchronous. Use the raw native ABI v3 completion-based registration path only when asynchronous work is required, and constrain the manifest to compat.relay = ">=0.7,<0.8".
  • Relay 0.8: Return futures through the typed Rust SDK and constrain the manifest to compat.relay = ">=0.8.0,<1.0". The SDK runs typed middleware on an SDK-owned Tokio executor; subscribers and raw synchronous ABI registrations remain synchronous. Do not block executor workers. Scope context does not automatically propagate to tasks created with tokio::spawn, and teardown must stop new callbacks and drain accepted work before unload.

The 0.8 typed SDK lets native components configure its executor with a positive executor.worker_threads value. When their manifest exposes a config_schema, include that SDK-owned object and field in the schema. For native ABI details, callback settlement or cancellation, and the full worker protocol, use the relevant public dynamic-plugin guide rather than expanding this skill.

Failure Modes To Avoid

  • Do not put callables, clients, credentials, framework objects, file handles, or caches in plugin config.
  • Do not perform runtime registration during validation.
  • Do not skip validation for disabled components.
  • Do not register directly through global startup code when PluginContext should own the runtime behavior.
  • Do not combine unrelated subscribers, request transforms, and policy checks in the first plugin unless one config document clearly owns the bundle.
  • Do not export raw production payloads or secrets. Add telemetry sanitization before data leaves the process.
  • Do not ignore partial activation failures. Roll back or surface a clear diagnostic.
  • Do not treat native process isolation as a security boundary, or claim that a worker is sandboxed.
  • Do not apply the 0.8 typed-async callback contract to Relay 0.7, or the 0.7 raw completion contract to typed 0.8 middleware.
  • Do not block the 0.8 SDK-owned executor.

Validation Checklist

  • Stable plugin kind chosen.
  • Delivery model selected: embedded component, rust_dynamic, or worker.
  • Config shape is JSON-compatible and uses snake_case.
  • Required fields and unsupported values produce stable diagnostics.
  • Unknown fields follow the configured policy.
  • Disabled components still report config problems where possible.
  • Initialization installs behavior through PluginContext.
  • A forced registration failure does not leave partial runtime behavior active.
  • Docs or examples show how to enable and roll back the plugin.
  • Dynamic plugins that need structured CLI editing package a valid local JSON Schema and declare config_schema in relay-plugin.toml.
  • Dynamic manifests validate their lane-specific kind, load contract, SemVer compatibility, integrity, and disabled-record behavior.
  • Native callback APIs and compatibility constraints match the target Relay version: synchronous typed callbacks and raw ABI v3 completion work for 0.7; typed async SDK middleware and executor configuration for 0.8.
  • Async native paths cover cancellation, settlement, and drain-before- unload behavior.

Use Another Skill When

  • You only need to wrap direct tool or LLM calls -> nemo-relay-instrument-calls
  • You need to set up traces or exporters without packaging a plugin -> nemo-relay-plugin-observability
  • You need to debug plugin activation, missing events, or load failures -> nemo-relay-debug-runtime-integration

© NVIDIA, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files in skills/nemo-relay-plugin-build of NVIDIA/NeMo-Relay.

  • SKILL.md
  • BENCHMARK.md
  • evals/evals.json
  • skill-card.md
  • skill.oms.sig

Open the folder on GitHubat commit 651453f

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders. This page covers the copy in NVIDIA/NeMo-Relay, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Nemo Relay Plugin Build next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Nemo Relay Plugin Build compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Nemo Relay Plugin Build this skillNVIDIA/NeMo-Relay190—~2.6kAutomated safety check: PassApache-2.0
Dev Rulesrust-dd/tako162—~810Automated safety check: PassMIT
SpikardGoldziher/spikard123—~799Automated safety check: PassMIT
Release Rebasejito-foundation/geyser-grpc-plugin145—~836Automated safety check: PassCustom licence
Docs Writingrust-dd/tako162—~2.8kAutomated safety check: PassMIT
Release WorkflowGoldziher/spikard123—~909Automated safety check: PassMIT

Similar skills

  • Dev Rules

    rust-dd/tako

    General coding-style rules to apply to every project. An agent skill from rust-dd/tako.

    162 GitHub stars~810 tokensUpdated 6 days ago
    Backend & APIsAuto-check passed
  • Spikard

    Goldziher/spikard

    Scaffold Spikard projects and generate code from OpenAPI, AsyncAPI, OpenRPC, GraphQL, and Protobuf schemas using the Spikard CLI or its MCP server.

    123 GitHub stars~799 tokensUpdated 3 days ago
    Backend & APIsAuto-check passed
  • Release Rebase

    jito-foundation/geyser-grpc-plugin

    A skill your agent uses when updating this repo to match a new jito-solana release line such as v4.0.

    145 GitHub stars~836 tokensUpdated 1 mo ago
    Backend & APIsAuto-check passed
  • Docs Writing

    rust-dd/tako

    Conventions for writing and maintaining tako documentation pages under website/content/docs/.

    162 GitHub stars~2.8k tokensUpdated 6 days ago
    Backend & APIsAuto-check passed
  • Release Workflow

    Goldziher/spikard

    Release/publish the spikard Rust core crate and CLI end-to-end.

    123 GitHub stars~909 tokensUpdated 3 days ago
    Backend & APIsAuto-check passed
  • Databricks Zerobus Ingest

    databricks/databricks-agent-skills

    Official

    Build Zerobus Ingest clients for near real-time data ingestion into Databricks Delta tables via gRPC.

    345 GitHub stars~3.1k tokensUpdated yesterday
    Backend & APIsAuto-check passed

More from NVIDIA/NeMo-Relay

All 30 skills in this repo
  • Draft Release Notes

    NVIDIA/NeMo-Relay

    Official

    Compare NeMo Relay release refs and draft the current documentation release-notes page from verified repository evidence.

    190 GitHub stars~575 tokensUpdated today
    Auto-check passed
  • Official

    A skill your agent uses when migrating applications, examples, integrations, documentation, manifests, or repository code from NeMo Flow to NeMo Relay across Python, Rust, Node.js, Go, C FFI, CLI…

    190 GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Add Middleware

    NVIDIA/NeMo-Relay

    Official

    Add a new NeMo Relay guardrail or intercept type, registration surface, or pipeline stage.

    190 GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Contribute Docs

    NVIDIA/NeMo-Relay

    Official

    Author or edit NeMo Relay documentation or examples when repository-specific MDX, public API, integration, or release-history conventions matter.

    190 GitHub stars~710 tokensUpdated today
    Auto-check passed
  • Maintain CI

    NVIDIA/NeMo-Relay

    Official

    Change or review NeMo Relay GitHub Actions workflows where permissions, pinned actions, caching, reusable workflows, or release gates require repository-specific handling.

    190 GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Nemo Relay Install

    NVIDIA/NeMo-Relay

    Official

    A skill your agent uses when choosing or running NeMo Relay installation for the CLI, Python, Node.js, Rust, OpenClaw, or maintained framework integrations, or when explaining Hermes Agent's…

    190 GitHub stars~1.7k tokensUpdated today
    Auto-check passed

Works with

Questions about Nemo Relay Plugin Build

What does Nemo Relay Plugin Build do?

A skill your agent uses when building or packaging reusable NeMo Relay runtime behavior as an embedded configuration component or a manifest-backed rustdynamic native or worker gRPC plugin, with…. Nemo Relay Plugin Build is an agent skill from NVIDIA/NeMo-Relay, published by the product's own GitHub organization. Use this skill when building or packaging reusable NeMo Relay runtime behavior as an embedded configuration component or a manifest-backed rustdynamic native or worker gRPC plugin, with deterministic validation and rollback-safe registration.

When should I use Nemo Relay Plugin Build?

Nemo Relay Plugin Build fits situations like: packaging reusable NeMo Relay runtime behavior as an embedded configuration component; A manifest-backed rustdynamic native; worker gRPC plugin; with deterministic validation and rollback-safe registration.

How do I install Nemo Relay Plugin Build in Claude Code?

Run `npx skills add NVIDIA/NeMo-Relay --skill nemo-relay-plugin-build -a claude-code`. Or copy the skill folder (skills/nemo-relay-plugin-build in NVIDIA/NeMo-Relay) into .claude/skills/nemo-relay-plugin-build in your project. Claude Code loads it when a task matches its description.

How do I install Nemo Relay Plugin Build in Codex?

Run `npx skills add NVIDIA/NeMo-Relay --skill nemo-relay-plugin-build -a codex`. Or copy the skill folder (skills/nemo-relay-plugin-build in NVIDIA/NeMo-Relay) into .agents/skills/nemo-relay-plugin-build in your project. Codex loads it when a task matches its description.

Can I use Nemo Relay Plugin Build in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add NVIDIA/NeMo-Relay --skill nemo-relay-plugin-build -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/nemo-relay-plugin-build, .gemini/skills/nemo-relay-plugin-build, .github/skills/nemo-relay-plugin-build and .opencode/skills/nemo-relay-plugin-build in your project.

What does Nemo Relay Plugin Build need to run?

SKILL.md names no scripts, command-line tools or credentials: Nemo Relay Plugin Build is instructions for the agent only. Our summary lists: Node.js.

Does Nemo Relay Plugin Build access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Nemo Relay Plugin Build safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Nemo Relay Plugin Build use?

Nemo Relay Plugin Build is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Nemo Relay Plugin Build use?

About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Nemo Relay Plugin Build?

Skills that share tags, products or a category with Nemo Relay Plugin Build: Dev Rules (rust-dd/tako, 162 stars), Spikard (Goldziher/spikard, 123 stars), Release Rebase (jito-foundation/geyser-grpc-plugin, 145 stars) and Docs Writing (rust-dd/tako, 162 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Nemo Relay Plugin Build?

NVIDIA (a GitHub organization, an official publisher) maintains it in NVIDIA/NeMo-Relay, which has 190 GitHub stars. The repository holds 30 skills in this directory. The repository was last updated on October 7, 2026.

Source: NVIDIA/NeMo-Relay on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.