56 results available
Sign in
Skills directory

cuopt-numerical-optimization-api-cli

nvidia

·

Last changed
Hardened

This skill has been hardened by Chainguard

Last changed

This version passed the hardening gate. Hardening updated the skill content and independently checked the resulting changes. Classified findings before hardening: 1. Classified findings closed: 1. Classified findings remaining: 0. Unclassified scanner findings remaining: 0. Review findings closed: 0. Review findings remaining: 8.


Open before hardening

1

Medium
Open after hardening

None


Expand
File
Group
Subtype
Severity
Status
BENCHMARK.md

Sensitive Data & Secret Exposure

Agent snooping

Medium
Closed

1 finding


SKILL.md

cuOpt Numerical Optimization — CLI

Solve LP, MILP, and QP problems from MPS or LP files via cuopt_cli. The same command and options apply across all three; QP is supported in both MPS (QPS) and LP files.

Confirm problem type and formulation (variables, objective, constraints, variable types) before coding.

This skill is CLI only (MPS or LP file input).

Basic usage

cuopt_cli <problem-file> [options]

The first positional argument is the input file. The format is chosen automatically from the extension — MPS, QPS, and LP files are all accepted (including .gz / .bz2 compressed variants); run cuopt_cli --help for the exact list of supported extensions.

Options

cuopt_cli --help is the authoritative list — don't work from a hard-coded subset. The CLI exposes every solver setting as a flag, generated from the parameter list at runtime: take any parameter documented in the cuOpt settings reference and replace underscores with hyphens (time_limit → --time-limit, mip_relative_gap → --mip-relative-gap). So if a parameter is documented, the flag exists; --help and the solver-settings docs are the sources of truth for names, meanings, and defaults.

A few options are CLI-specific (not solver parameters) and worth knowing because you wouldn't derive them from a parameter name:

  • --params-file <file> — supply many parameters from a key = value config file instead of repeating flags.
  • --relaxation — solve the continuous relaxation of a MILP (drop integrality).
  • --initial-solution <file> — warm-start from a solution file.

Run cuopt_cli --help for the complete, current set.

Authoring input files

MPS, QPS, and LP are precise, externally-specified file formats. Don't hand-author them from memory or from a partial recollection of the layout — column-position rules, marker conventions, the quadratic-objective encoding, and sign/scaling conventions are easy to get subtly wrong, and a malformed file either fails to parse or silently encodes a different model than intended.

If you're building a model from data (rather than solving a file you already have), define the problem through the cuOpt Python API or your preferred modeling interface — don't generate an MPS or LP file by hand to feed the CLI. These interfaces take coefficients, bounds, and variable types as native data structures, so there's no text format to get wrong. The cuOpt Python API solves and returns the solution in the same program (see the cuopt-numerical-optimization-api-python skill); a separate modeling library (e.g. PuLP, Pyomo, JuMP) can export a valid file for the CLI or call its own solver. Reach for cuopt_cli when you already have a model file — e.g. a benchmark instance or a file exported by one of these tools.

When a file is genuinely the right artifact, still generate it programmatically rather than by hand:

  • From cuOpt's Python API — build the model, then export it with model.writeMPS("problem.mps") (emits a valid MPS file, including the quadratic objective for QP) and solve with cuopt_cli problem.mps.
  • From another modeling tool — most LP/MILP modeling libraries and solvers can export standard MPS or LP files; pass the exported file straight to cuopt_cli.

If you must read or write these formats by hand anyway, work from the format's full specification (and the cuOpt repo docs at docs/cuopt/source/cuopt-cli/ for cuOpt-specific conventions such as the quadratic-objective encoding) — not from an example alone.

Either way, validate before trusting the result: cuopt_cli logs Read file ... on a successful parse, and reports the variable/constraint counts and objective — sanity-check those against your intended model.

QP notes (beta): quadratic objectives are MINIMIZE only (for maximization, negate the objective, including the quadratic terms) and require continuous variables only (no integer variables mixed with a quadratic objective). Check cuopt_cli --help for QP-specific flags.

Troubleshooting

  • Parsing input file failed — Confirm the extension matches the format (.lp vs .mps/.qps); an unrecognized extension is rejected before parsing. The parser error names the offending line — fix it against the format spec, or (more reliably) regenerate the file from a modeling tool rather than patching it by hand.
  • Infeasible — Re-check the model against your intended formulation: constraint directions, right-hand sides, and variable bounds.

Examples

Getting the CLI

CLI is included with the Python package (cuopt). Install via pip or conda; then run cuopt_cli --help to verify.

Install

Install with chainctl
chainctl skill install public/nvidia/cuopt-numerical-optimization-api-cli:latest
Get started with chainctl
View source

Harden your own skills

Bring Chainguard's hardening pipeline to your first-party skills — custom rulesets, automated remediation, full audit trail.

Provenance

Upstream sourcehttps://github.com/nvidia/skills
Upstream commitc2c5cbf7de0efdb67a715933f28f88510d5c9f2d
OCI reference

skills.cgr.dev/public/github.com/nvidia/skills/cuopt-numerical-optimization-api-cli:latest

License

Apache-2.0

Files

BENCHMARK.md

HARDENING.md

LICENSE

SKILL.md

assets/README.md

assets/lp_production/README.md

assets/lp_production/production.mps

assets/lp_simple/README.md

assets/lp_simple/sample.mps

assets/milp_facility/README.md

assets/milp_facility/facility.mps

evals/evals.json

skill-card.md

skill.oms.sig


The trusted source for open source

Talk to an expert
PrivacyTerms

Product

Chainguard ContainersChainguard LibrariesChainguard VMsChainguard OS PackagesChainguard ActionsChainguard Agent SkillsIntegrationsPricing
© 2026 Chainguard, Inc. All Rights Reserved.
Chainguard® and the Chainguard logo are registered trademarks of Chainguard, Inc. in the United States and/or other countries.
The other respective trademarks mentioned on this page are owned by the respective companies and use of them does not imply any affiliation or endorsement.