Official agent skill

Cuopt Developer

by NVIDIA in NVIDIA/skills

Modify, build, test, debug, and contribute to NVIDIA cuOpt (C++/CUDA, Python, server, CI).

OfficialApache-2.0Auto-check: notesAI & LLM Engineering

Install Cuopt Developer

skills CLI
$ npx skills add NVIDIA/skills --skill cuopt-developer -a claude-code

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

GitHub CLI
$ gh skill install NVIDIA/skills cuopt-developer --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/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/cuopt-developer .claude/skills/cuopt-developer && 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
cuopt-developer
GitHub stars
3.5k
Token cost
~3.2k tokens
SKILL.md length
1,370 words
Files
14 (incl. references)
Skills in repo
380
Repo updated
First seen
Licence
Apache-2.0

At a glance

Modify, build, test, debug, and contribute to NVIDIA cuOpt (C++/CUDA, Python, server, CI).

  • Works in 5 steps: Ask Before Assuming → Verify Understanding → Follow Codebase Patterns → …
  • Solver internals
  • SKILL.md covers Refusal Rules — Read First, Developer Behavior Rules, Before You Start: Required… and Project Architecture, plus 11 more sections
  • Calls git, conda and pytest

What it does

Cuopt Developer is an agent skill from NVIDIA/skills, published by the product's own GitHub organization. Modify, build, test, debug, and contribute to NVIDIA cuOpt (C++/CUDA, Python, server, CI). Use for solver internals, PRs, DCO, and code conventions.

Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 17 other files, including reference files (for example `BENCHMARK.md`, `benchmark/evals.json` and `evals/evals.json`).

It sits in AI & LLM Engineering. It works with CUDA, NVIDIA AI Platform, C++ and Python. The repository describes itself as: Agent Skills for NVIDIA products — install into Claude Code, Codex, and other coding agents to run Physical AI, robotics, simulation, CUDA, and RAG workflows end to end. The licence is Apache-2.0.

When your agent uses it

  • Solver internals
  • Code conventions

Example prompts

  • “/cuopt-developer”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Ask Before Assuming
  2. Verify Understanding
  3. Follow Codebase Patterns
  4. Ask Before Running — Modified for Dev
  5. No Privileged Operations

What it can do on your machine

Read from SKILL.md and the folder at commit 0e0d506. 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

    Shell commands in SKILL.md call:

    • git
    • conda
    • pytest

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

  • Network

    Links to these hosts (documentation or services it may open):

    • docs.rapids.ai

    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

Cuopt Developer loads about 3.2k tokens when it runs, and up to ~11k if it reads all its reference files. Until then it costs about 41 tokens; SKILL.md has 1,370 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~41
When it runs · the whole SKILL.md, loaded when a task matches
~3.2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~11k

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: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteRuns commands with sudoSKILL.md:242
    Shell-execution, install, conda-env, and sudo policies are covered by [Refusal Rules — Read First](#refusal-rules--read-

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/skills at commit 0e0d506, republished under its Apache-2.0 licence (© NVIDIA). 1,370 words, ~3,210 tokens.

Download SKILL.mdSave it as .claude/skills/cuopt-developer/SKILL.md (or your agent's skills folder). This skill also uses 13 other files; get the full folder from GitHub.
name
cuopt-developer
description
Modify, build, test, debug, and contribute to NVIDIA cuOpt (C++/CUDA, Python, server, CI). Use for solver internals, PRs, DCO, and code conventions.
version
26.08.00
license
Apache-2.0
metadata.author
NVIDIA cuOpt Team
metadata.tags
cuopt, development, contributing, cpp-cuda, python-bindings

cuOpt Developer Skill

Contribute to the NVIDIA cuOpt codebase. This skill is for modifying cuOpt itself, not for using it.

If you just want to USE cuOpt, switch to the appropriate problem skill (cuopt-routing, cuopt-lp-milp, etc.)

First-time dev environment setup? See references/first_time_setup.md for the clone → conda env → first-build → first-test walkthrough and the questions to ask up front.


Refusal Rules — Read First

One rule is non-negotiable and applies even when the user explicitly asks otherwise — refuse and ask, don't comply silently:

Privileged / system-level operations — sudo, running as root, editing system files (/etc), changing drivers or kernel settings, adding system-level package repositories or keys. Do not run these. Reply:

I won't run sudo or change system-level state for cuOpt. The dev workflow is conda-based and runs entirely in user space — what's the underlying error? It's usually fixable without root.

Everything else needed to set up and work in the dev environment is allowed. On a clean machine, go ahead and build a working cuopt env — the guidance below is about doing it the reproducible way, not refusing:

  • Environment setup is allowed. You may create and activate the conda env from the checked-in conda/environments/all_cuda-*.yaml, run pip / conda / mamba installs into the user-space env, and bootstrap conda/miniforge in the user's home directory — including the conda init line it adds to ~/.bashrc. Bootstrapping conda must not require sudo; install it into $HOME, not a system path.
  • A new permanent project dependency is different from a one-off install. A package the project should always ship belongs in dependencies.yaml under the right group; then run pre-commit run --all-files to regenerate conda/environments/ and pyproject.toml so other contributors get it too. A throwaway install to unblock your own build doesn't need this round-trip.
  • Don't bypass CI checks (--no-verify, skipping pre-commit or tests). If hooks feel slow, diagnose with pre-commit run --all-files --verbose or tune the offending hook — don't skip it.
  • Be careful with destructive commands (rm -rf, git reset --hard, git push --force, killing processes, dropping data). Confirm intent before running and prefer the safer alternative (e.g. ./build.sh clean for a stale build dir).

Developer Behavior Rules

These rules are specific to development tasks. They differ from user rules.

1. Ask Before Assuming

Clarify before implementing:

  • What component? (C++/CUDA, Python, server, docs, CI)
  • What's the goal? (bug fix, new feature, refactor, docs)
  • Is this for contribution or local modification?
2. Verify Understanding

Before making changes, confirm:

"Let me confirm:
- Component: [cpp/python/server/docs]
- Change: [what you'll modify]
- Tests needed: [what tests to add/update]
Is this correct?"
3. Follow Codebase Patterns
  • Read existing code in the area you're modifying
  • Match naming conventions, style, and patterns
  • Don't invent new patterns without discussion
4. Ask Before Running — Modified for Dev

OK to run without asking (expected for dev work):

  • ./build.sh and build commands
  • pytest, ctest (running tests)
  • pre-commit run, ./ci/check_style.sh (formatting)
  • git status, git diff, git log (read-only git)
  • Environment setup: create/activate the conda env from conda/environments/*.yaml, and pip/conda/mamba installs into that env

Set up pre-commit hooks (once per clone):

  • pre-commit install — hooks then run automatically on every git commit. If a hook fails, the commit is blocked until you fix the issue.

Still ask before:

  • git commit, git push (write operations)
  • Any destructive or irreversible commands
5. No Privileged Operations

sudo/system-level changes are the one non-negotiable refusal; user-space installs and conda env setup are allowed. See Refusal Rules — Read First.


Before You Start: Required Questions

Ask these if not already clear:

  1. What are you trying to change?

    • Solver algorithm/performance?
    • Python API?
    • Server endpoints?
    • Documentation?
    • CI/build system?
  2. Do you have the development environment set up?

    • Built the project successfully?
    • Ran tests?
  3. Is this for contribution or local modification?

    • If contributing: will need to follow DCO signoff
  4. Which branch should this target?

    • During development phase: main
    • During burn down: release/YY.MM (e.g., release/26.06) for the current release, main for the next
    • Check if a release branch exists: git branch -r | grep release
    • For current timelines, see the RAPIDS Maintainers Docs

Project Architecture

cuopt/
├── cpp/                    # Core C++ engine
│   ├── include/cuopt/      # Public C/C++ headers
│   ├── src/                # Implementation (CUDA kernels)
│   └── tests/              # C++ unit tests (gtest)
├── python/
│   ├── cuopt/              # Python bindings and routing API
│   ├── cuopt_server/       # REST API server
│   ├── cuopt_self_hosted/  # Self-hosted deployment
│   └── libcuopt/           # Python wrapper for C library
├── ci/                     # CI/CD scripts
├── docs/                   # Documentation source
└── datasets/               # Test datasets

Supported APIs

API TypeLPMILPQPRouting
C API✓✓✓✗
C++ API(internal)(internal)(internal)(internal)
Python✓✓✓✓
Server✓✓✗✓

Safety Rules (Non-Negotiable)

Minimal Diffs
  • Change only what's necessary
  • Avoid drive-by refactors
  • No mass reformatting of unrelated code
No API Invention
  • Don't invent new APIs without discussion
  • Align with existing patterns in docs/cuopt/source/
  • Server schemas must match OpenAPI spec
Don't Bypass CI
  • Never suggest --no-verify or skipping checks
  • All PRs must pass CI
CUDA/GPU Hygiene
  • Keep operations stream-ordered
  • Follow existing RAFT/RMM patterns
  • No raw new/delete - use RMM allocators

Build & Test

Show full SKILL.md (652 more words)Show less
Pre-flight Checks (Required Before First Build or Test)

Skipping any of these surfaces as confusing runtime errors later. Run them in order:

  1. Check CUDA driver compatibility. Run nvidia-smi and read the CUDA Version in the top-right corner — that's the maximum CUDA your driver supports. Pick a conda env file from conda/environments/all_cuda-<ver>_arch-<arch>.yaml whose CUDA major version is ≤ that. A mismatch builds successfully but fails at runtime inside RMM with cudaMallocAsync not supported with this CUDA driver/runtime version — verify this before the build, not after.
  2. Create and activate the conda env before any build, test, or pre-commit command — this is allowed and expected (see Refusal Rules). Use a local prefix env (./.cuopt_env) per CONTRIBUTING.md, with the env file you picked in step 1 (swap conda→mamba if available):
    bash
    conda env create -p ./.cuopt_env --file conda/environments/all_cuda-<ver>_arch-$(uname -m).yaml
    conda activate ./.cuopt_env
    Tests link against libraries compiled inside that env; a fresh shell without conda activate ./.cuopt_env hits cryptic linker errors.
  3. Set PARALLEL_LEVEL if RAM is constrained — see references/build_and_test.md. The default $(nproc) can OOM mid-build because CUDA compilation needs ~4–8 GB per job.
  4. For tests, fetch datasets first. cuOpt tests need MPS files not in the repo — follow the dataset download steps in CONTRIBUTING.md ("Building for development" section) and export RAPIDS_DATASET_ROOT_DIR.
Quick Reference
bash
./build.sh             # Build everything
./build.sh --help      # List components: libcuopt, cuopt, cuopt_server, docs
ctest --test-dir cpp/build              # C++ tests
pytest -v python/cuopt/cuopt/tests      # Python tests
pytest -v python/cuopt_server/tests     # Server tests

For component-specific build commands, run-test detail, and PARALLEL_LEVEL configuration, see references/build_and_test.md.

Download test datasets before running tests

cuOpt tests depend on MPS/data files that are not checked into the repo. A missing dataset surfaces as a MPS_PARSER_ERROR ... Error opening MPS file test failure at 0ms — it is not a build or logic failure.

Before running any C++ or Python tests, follow the dataset download and RAPIDS_DATASET_ROOT_DIR export steps in the repo's CONTRIBUTING.md ("Building for development" section) — that is the canonical list and mapping.

If a test fails with a missing-file error, run the matching download step from CONTRIBUTING.md and re-run the test. Do not report missing-dataset failures back to the user as the task outcome.

Python Bindings

cuOpt uses Cython to bridge Python and C++. See references/python_bindings.md for the full architecture, parameter flow walkthrough, key files, and Cython patterns.

Contributing — Commits, PRs, Common Tasks

For pre-commit setup, DCO sign-off (git commit -s), the fork-based PR workflow, the draft-PR rule for agents, PR-description rules (keep it short — no "how it works" walkthroughs or file tables), script and CI/workflow authoring principles (extend existing files before adding new ones; no speculative flags, restated defaults, or silent fallbacks), and step-by-step common-task recipes (adding a solver parameter, dependency, server endpoint, or CUDA kernel), see references/contributing.md.

Coding Conventions

For C++ naming (snake_case, d_/h_ prefixes, _t suffix), file extensions (.hpp/.cpp/.cu/.cuh and which compiler each uses), include order, Python style, error handling (CUOPT_EXPECTS, RAFT_CUDA_TRY), memory management (RMM patterns, no raw new/delete), and test-impact rules, see references/conventions.md.

Troubleshooting & CI

For build/test pitfalls (Cython rebuild, OOM, CUDA driver mismatch, missing nvcc) and CI failure diagnostics (style checks, DCO failures, dependency drift), see references/troubleshooting.md.

Key Files Reference

PurposeLocation
Main build scriptbuild.sh
Dependenciesdependencies.yaml
C++ formatting.clang-format
Conda environmentsconda/environments/
Test datadatasets/
CI scriptsci/

Canonical Documentation

Shell-execution, install, conda-env, and sudo policies are covered by Refusal Rules — Read First at the top of this skill.

VRP dimension internals (routing engine)

When implementing or debugging VRP dimensions (constraints, objectives, forward/backward propagation, combine, local-search deltas), read:

  • references/vrp_skills.md — architecture contracts, required interfaces, and implementation checklist.

Read it before adding a new dimension or changing combine semantics.

Numerical issues in non-routing solver internals

When a bug surfaces as wrong-but-plausible solver output (invalid lower bound, unexpectedly large duals, 10× iteration blow-up after a small change) rather than a crash, read:

  • resources/numerical_debugging.md — methodology for locating catastrophic-cancellation sites, the cancellation patterns endemic to cMIR / flow-cover / MIR-style cut construction, and threshold guidance for numerical guards.

Apply the instrument-first, guard-at-the-exact-site workflow it describes before patching — speculative fixes on these symptoms usually miss.

© 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 13 other files (references) in skills/cuopt-developer of NVIDIA/skills.

  • SKILL.md
  • BENCHMARK.md
  • benchmark/evals.json
  • evals/evals.json
  • references/build_and_test.md
  • references/contributing.md
  • references/conventions.md
  • references/first_time_setup.md
  • references/python_bindings.md
  • references/troubleshooting.md
  • references/vrp_skills.md
  • resources/numerical_debugging.md
  • skill-card.md
  • skill.oms.sig

Open the folder on GitHubat commit 0e0d506

Compare with similar skills

Cuopt Developer 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.

Cuopt Developer compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Cuopt Developer this skillNVIDIA/skills3.5k—~3.2kAutomated safety check: NotesApache-2.0
Cutlass SkillslowlyC/agent-gpu-skills169—~1.3kAutomated safety check: PassMIT
Make Op VerifyCVCUDA/CV-CUDA2.7k—~433Automated safety check: PassCustom licence
Review Op SupportCVCUDA/CV-CUDA2.7k—~248Automated safety check: PassCustom licence
Review Op Test CoverageCVCUDA/CV-CUDA2.7k—~264Automated safety check: PassCustom licence
Paddle BuildPaddlePaddle/Paddle24k—~1kAutomated safety check: PassApache-2.0

Similar skills

  • Cutlass Skill

    slowlyC/agent-gpu-skills

    Write, debug, and optimize CUTLASS, CuTe, and CuTeDSL GPU kernels from local upstream source, examples, and headers.

    169 GitHub stars~1.3k tokensUpdated 2 mo ago
    AI & LLM EngineeringAuto-check passed
  • Make Op Verify

    CVCUDA/CV-CUDA

    Verify a new CV-CUDA operator against the deterministic final regression checklist (the /make-op done-gate).

    2.7k GitHub stars~433 tokensUpdated 21 days ago
    AI & LLM EngineeringAuto-check passed
  • Review Op Support

    CVCUDA/CV-CUDA

    Review a CV-CUDA operator's input-type, layout, dtype, and channel support matrix.

    2.7k GitHub stars~248 tokensUpdated 21 days ago
    AI & LLM EngineeringAuto-check passed
  • Review a CV-CUDA operator's test coverage, including C++ correctness, required cross-layout parity, correctness rigor, and the Python API surface.

    2.7k GitHub stars~264 tokensUpdated 21 days ago
    Testing & QAAuto-check passed
  • Paddle Build

    PaddlePaddle/Paddle

    A skill your agent uses when needing to compile, rebuild, or install Paddle from source after code changes.

    24k GitHub stars~1k tokensUpdated 7 days ago
    AI & LLM EngineeringAuto-check passed
  • Optimize Op

    CVCUDA/CV-CUDA

    Drive a single-operator optimization campaign per .agents/guidance/OPTIMIZATIONGUIDELINES.md, with a deterministically enforced definition-of-done and versioned MR summary.

    2.7k GitHub stars~834 tokensUpdated 21 days ago
    AI & LLM EngineeringAuto-check passed

More from NVIDIA/skills

All 380 skills in this repo
  • Official

    A skill your agent uses when the user wants to deploy, run, debug, tear down, or call the REST API of the RTVI-CV 2D detection / tracking microservice.

    3.5k GitHub starsUsed in 1 repo~4.5k tokens
    Auto-check passed
  • Official

    Generates, validates, compares and explains HOLOLINK_def.svh macro files for the HSB IP, using bundled Python scripts and asking before it writes anything.

    3.5k GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Official

    Runs and validates an end-to-end Mission Control demo in a locally installed Isaac Sim, with a Nova Carter robot driven through a Python server.

    3.5k GitHub stars~4.8k tokensUpdated today
    Auto-check passed
  • Orchestrates defect image generation for PCBA, metal surface and glass inspection with NVIDIA Cosmos AnomalyGen on OSMO, from cold-start Day 0 to real-photo Day 1 labeling.

    3.5k GitHub stars~5k tokensUpdated today
    Auto-check: notes
  • Orchestrates video data augmentation and auto-labeling workflows on OSMO, from flow selection and preflight checks to submission, monitoring and output download.

    3.5k GitHub stars~4.7k tokensUpdated today
    Auto-check: notes
  • Official

    Runs NVIDIA TAO Data Services KPI analysis on object detection results, comparing predictions to ground truth and writing per-class precision, recall and AP to a CSV.

    3.5k GitHub stars~2.7k tokensUpdated today
    Auto-check: notes

Questions about Cuopt Developer

What does Cuopt Developer do?

Modify, build, test, debug, and contribute to NVIDIA cuOpt (C++/CUDA, Python, server, CI). Cuopt Developer is an agent skill from NVIDIA/skills, published by the product's own GitHub organization. Modify, build, test, debug, and contribute to NVIDIA cuOpt (C++/CUDA, Python, server, CI).

When should I use Cuopt Developer?

Cuopt Developer fits situations like: solver internals; code conventions.

How do I install Cuopt Developer in Claude Code?

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

How do I install Cuopt Developer in Codex?

Run `npx skills add NVIDIA/skills --skill cuopt-developer -a codex`. Or copy the skill folder (skills/cuopt-developer in NVIDIA/skills) into .agents/skills/cuopt-developer in your project. Codex loads it when a task matches its description.

Can I use Cuopt Developer 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/skills --skill cuopt-developer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cuopt-developer, .gemini/skills/cuopt-developer, .github/skills/cuopt-developer and .opencode/skills/cuopt-developer in your project.

What does Cuopt Developer need to run?

Going by SKILL.md and its folder, Cuopt Developer needs the command-line tools its instructions call (git, conda and pytest). Our summary lists: Python 3.

Does Cuopt Developer access the network?

SKILL.md names 1 domain. As links in the text: docs.rapids.ai. This is read from the text; nothing was executed.

Is Cuopt Developer safe to install?

Our automated static check of SKILL.md found notes only (runs commands with sudo), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Cuopt Developer use?

Cuopt Developer 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 Cuopt Developer use?

About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 7.8k tokens, read only when the agent opens those files.

What are the alternatives to Cuopt Developer?

Skills that share tags, products or a category with Cuopt Developer: Cutlass Skill (slowlyC/agent-gpu-skills, 169 stars), Make Op Verify (CVCUDA/CV-CUDA, 2.7k stars), Review Op Support (CVCUDA/CV-CUDA, 2.7k stars) and Review Op Test Coverage (CVCUDA/CV-CUDA, 2.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Cuopt Developer?

NVIDIA (a GitHub organization, an official publisher) maintains it in NVIDIA/skills, which has 3,534 GitHub stars. The repository holds 380 skills in this directory. The repository was last updated on October 7, 2026.

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