A project showcasing how to leverage AI coding assistants (Cursor, Claude Code, etc.) for accelerated NVIDIA DeepStream SDK application development using a curated agentic skill and structured prompts.
Disclaimer: Code generated with AI coding assistants is intended as a development starting point. All generated code must undergo your full software development lifecycle (SDLC) — including code review, testing, and security validation — before production use.
- AI coding assistant that supports agentic skills (e.g., Cursor, Claude Code)
No GPU, SDK, or special hardware is required — the skill and example prompts work on any system.
The following are required on the target execution environment:
- NVIDIA DeepStream SDK — installed locally or available via NVIDIA NGC container
- Python 3.12+ with the
pyservicemakerpackage - NVIDIA GPU with driver version 595 or later
- CUDA 13.2 and TensorRT 10.16.0.72
- Supported OS: Ubuntu 24.04 (x86_64 or ARM64/Jetson)
The
deepstream-import-vision-modelanddeepstream-eval-and-finetuneskills run their toolchains insidenvcr.io/nvidia/deepstream:9.1-triton-multiarch; the host needs Docker, NVIDIA Container Toolkit, and a compatible NVIDIA driver. Their setup and preflight scripts create and verify the mounted Python environments and runtime tools.
For detailed environment setup, refer to the DeepStream SDK Developer Guide.
Some skills may document a specific DeepStream SDK version or container image that is not the latest DeepStream release version. Use the version documented by the skill unless you have a reason to test with a newer DeepStream image.
Skills that mention older DeepStream base images may still work out of the box with newer DeepStream versions. If you need to use a newer image, update the image tag and run the skill's setup, test, or benchmark steps to confirm the workflow.
This README sits under skills/ inside the DeepStream mono-repo. Layout of this subtree, plus the related top-level example_prompts/ directory:
deepstream/ # mono-repo root
├── skills/ # Agentic skills for guided DeepStream development
│ ├── README.md # This file
│ ├── deepstream-dev/ # DeepStream development skill with condensed references
│ ├── deepstream-generate-pipeline/ # Interactive gst-launch pipeline builder (BM25 retrieval over 270+ pipelines)
│ ├── deepstream-profile-pipeline/ # Nsight Systems profiling & config derivation skill
│ ├── deepstream-import-vision-model/ # Autonomous vision-model onboarding & benchmarking pipeline skill
│ ├── deepstream-eval-and-finetune/ # DeepStream accuracy evaluation + AutoML fine-tuning skill
│ ├── deepstream-run-mv3dt/ # MV3DT reference-app operations skill
│ ├── deepstream-sop/ # DeepStream SOP microservice skill (step-sequence compliance via GEBD + VLM)
│ ├── amc-setup-calibration-stack/ # AutoMagicCalib MS + UI launch skill
│ ├── amc-run-sample-calibration/ # AutoMagicCalib bundled-sample validation skill
│ ├── amc-run-video-calibration/ # AutoMagicCalib user-video calibration skill
│ ├── amc-run-rtsp-calibration/ # AutoMagicCalib RTSP-stream calibration skill
│ ├── rtvi-cv-customize-model/ # Swap CV detection model in RTVI-CV (VSS Alerts Blueprint)
│ ├── rtvi-vlm-customize-model/ # Swap VLM in the VSS Alerts Blueprint
│ └── rtvi-cv-scaffold-vss-service/ # Scaffold a custom RTVI CV microservice for VSS
└── example_prompts/ # Pre-built prompts for code generation
This project provides the tooling and reference material needed to:
- Supply domain-specific context to AI coding assistants through a curated agentic skill
- Generate production-ready DeepStream code using well-structured prompts
- Accelerate development of video analytics pipelines with AI assistance
An agentic skill is a structured knowledge package that an AI coding assistant can automatically discover and activate during code generation. It contains domain-specific rules, reference documentation, and guardrails that guide the AI agent to produce accurate, idiomatic code — without the developer needing to manually reference files in every conversation.
Each subdirectory under skills/ contains a DeepStream agentic skill that follows the standard SKILL.md convention supported by AI coding assistants such as Cursor, Claude Code, and others.
This project ships fourteen complementary skills:
| Skill | Mode | Use when you want to… |
|---|---|---|
deepstream-dev |
Reference-rich (you write code, the agent consults docs) | Hand-author or refine a pyservicemaker / GStreamer DeepStream pipeline with the agent answering API questions correctly. |
deepstream-generate-pipeline |
Interactive questionnaire + retrieval | Generate a ready-to-run gst-launch-1.0 pipeline by answering a few questions; the agent retrieves and adapts from 270+ verified pipelines and validates the result. |
deepstream-profile-pipeline |
Measure-then-derive (Nsight Systems) | Build an efficient/performant pipeline or benchmark, tune, and measure FPS — the agent profiles with nsys, derives configs from the measured inference plateau batch and HW ceiling, and reports per-plugin NVTX timings. |
deepstream-import-vision-model |
Autonomous orchestration (the agent runs an end-to-end pipeline) | Take any HuggingFace or NGC object-detection model and produce a TensorRT engine, a DeepStream multi-stream benchmark, and a PDF report — fully unattended. |
deepstream-eval-and-finetune |
Accuracy evaluation + fine-tuning orchestration | Deploy an object-detection model to DeepStream (TensorRT FP16), measure mAP and performance on a KPI dataset through the real pipeline, fine-tune it with a single run or AutoML sweep, re-deploy, and produce a before/after report. |
deepstream-run-mv3dt |
Reference-app operations (the agent sets up and runs MV3DT) | Run the DeepStream Multi-View 3D Tracking reference app on shipped samples or synchronized MP4 datasets, including calibration handoff, Kafka metadata, and OSD/BEV outputs. |
deepstream-sop |
Microservice scaffold + evaluate-and-fix loop | Build, deploy, evaluate, debug, or measure latency for a DeepStream SOP (Standard Operating Procedure) inference microservice — GPU-accelerated operator step-sequence compliance on industrial video via GEBD + VLM (Cosmos Reason 1/2), with file / RTSP / Basler camera inputs and SSE / Kafka output. |
amc-setup-calibration-stack |
Deployment runbook | Launch the AutoMagicCalib microservice and web UI from NGC release images via Docker Compose. |
amc-run-sample-calibration |
Validation runbook + script | Verify a running AMC stack with the bundled synthetic sample dataset. |
amc-run-video-calibration |
Calibration runbook + script | Calibrate a camera rig from user-provided pre-recorded MP4 files via the AMC REST API. |
amc-run-rtsp-calibration |
RTSP capture + calibration runbook | Calibrate a camera rig from live RTSP streams through VIOS capture and the AMC REST API. |
rtvi-cv-customize-model |
Model swap + redeployment | Swap the CV detection model in RTVI-CV (VSS Alerts Blueprint verification mode) — covers ONNX staging, custom bbox parser, nvinfer config, runtime TRT engine build, and redeployment. |
rtvi-vlm-customize-model |
VLM endpoint / deployment swap | Swap the VLM in the VSS Alerts Blueprint across all three consumers (rtvi-vlm, vlm-as-verifier, vss-agent) via OpenAI-compatible endpoint or in-container vLLM. |
rtvi-cv-scaffold-vss-service |
Microservice scaffold | Scaffold a custom RTVI CV microservice (YOLO26 reference) that publishes detection metadata to VSS via Kafka mdx-raw. |
Skip ahead to Skill: deepstream-import-vision-model for the model-onboarding workflow, or Skill: deepstream-run-mv3dt for the MV3DT reference-app workflow.
My DeepStream app dynamically adds and removes RTSP sources and latency rises below the configured streammux batch size. Diagnose it without writing application code.
This skill targets NVIDIA DeepStream SDK development using the Python pyservicemaker API. When activated, it instructs the AI agent to consult bundled reference documents before generating any code, significantly reducing inaccuracies and ensuring correct API usage.
Bundled reference topics:
| Reference | Coverage |
|---|---|
gstreamer_plugins.md |
GStreamer plugin properties |
service_maker_api.md |
Pipeline/Flow API, metadata access, probes |
use_cases_pipelines.md |
Pipeline patterns: playback, multi-inference, cascaded GIE |
kafka_messaging.md |
Kafka/message broker setup and configuration |
best_practices.md |
Design patterns, pitfalls, anti-patterns |
buffer_apis.md |
BufferProvider/Feeder and BufferRetriever/Receiver |
media_extractor_advanced.md |
MediaExtractor, MediaChunk, FrameSampler |
utilities_config.md |
PerfMonitor, EngineFileMonitor, SourceConfig |
nvinfer_config.md |
nvinfer config file format and all parameters |
tracker_config.md |
nvtracker config (NvDCF, IOU, DeepSORT, NvSORT) |
troubleshooting.md |
Error messages and solutions |
rest_api_dynamic.md |
REST API, dynamic source management |
metamux_config.md |
nvdsmetamux config, parallel multi-model inference, metadata merging |
docker_containers.md |
Docker images, Dockerfile examples, pyservicemaker install, container run commands |
streaming_sources.md |
Streaming ingest sources: HTTP progressive, HLS, MPEG-DASH, RTSP |
nvds_msgapi_adapter.md |
nvds_msgapi protocol adapter interface for message brokers |
Copy the deepstream-dev skill directory (including its references/ subdirectory) into the skills folder recognized by your AI coding assistant. You can install it at the user level (available across all projects) or at the workspace level (scoped to a single project).
| Tool | User-level path | Workspace-level path |
|---|---|---|
| Cursor | ~/.cursor/skills/deepstream-dev/ |
<workspace>/.cursor/skills/deepstream-dev/ |
| Claude Code | ~/.claude/skills/deepstream-dev/ |
<workspace>/.claude/skills/deepstream-dev/ |
| Codex | ~/.codex/skills/deepstream-dev/ |
<workspace>/.codex/skills/deepstream-dev/ |
| Other tools | Consult your tool's documentation for the skills directory location |
# Example: Cursor user-level
mkdir -p ~/.cursor/skills/
# Example: Claude Code user-level
mkdir -p ~/.claude/skills/
# Example: Codex user-level
mkdir -p ~/.codex/skills/
# Example: workspace-level (replace .cursor with your tool's directory)
mkdir -p <workspace>/.cursor/skills/# User-level (replace path with your tool's skills directory)
cp -r skills/deepstream-dev ~/.cursor/skills/
# Example: Claude Code user-level
cp -r skills/deepstream-dev ~/.claude/skills/
# Example: Codex user-level
cp -r skills/deepstream-dev ~/.codex/skills/
# Or workspace-level
cp -r skills/deepstream-dev <workspace>/.cursor/skills/After copying, the directory structure should look like:
<skills-directory>/
└── deepstream-dev/
├── SKILL.md # Skill definition with rules and quick references
└── references/ # Condensed reference documents
├── best_practices.md
├── buffer_apis.md
├── gstreamer_plugins.md
├── kafka_messaging.md
├── media_extractor_advanced.md
├── nvinfer_config.md
├── rest_api_dynamic.md
├── service_maker_api.md
├── tracker_config.md
├── troubleshooting.md
├── use_cases_pipelines.md
├── utilities_config.md
├── metamux_config.md
├── docker_containers.md
├── streaming_sources.md
└── nvds_msgapi_adapter.md
- Open (or restart) your AI coding assistant.
- Open the agent / chat panel.
- Ask a DeepStream-related question, for example:
Create a DeepStream pipeline that reads a video file and runs object detection using ResNet18. - The agent should automatically activate the
deepstream-devskill and consult its reference documents before generating code.
Tip: The skill is most effective in Agent mode. In agent mode, the AI assistant automatically selects and activates relevant skills based on the task context — no manual file referencing needed.
deepstream-generate-pipeline builds ready-to-run gst-launch-1.0 pipelines interactively. It collects pipeline requirements through a short questionnaire (input source, stream count, inference, tracker, sink, platform, extras), then assembles the pipeline using a standalone BM25 retrieval backend with structural metadata boosting over 270+ verified pipelines — pure Python stdlib, zero external dependencies. The result is validated (syntax, elements, properties, live parse) before it is presented.
Supported configurations:
| Parameter | Options |
|---|---|
| Input | Local video (.mp4/.h264/.h265), local image (.jpg/.png), RTSP, USB camera, test pattern |
| Inference | None, primary (nvinfer), primary+secondary, with preprocessor, Triton (nvinferserver) |
| Tracker | None, NvDCF, IOU, NvSORT, DeepSORT |
| Sink | Display (dGPU/Jetson), save (JPG/PNG/MP4/H264), RTSP out, fakesink |
| Platform | x86 dGPU (T4, A100, L40, RTX, …) or aarch64 — Jetson (Orin, Xavier, Nano) / SBSA (Grace, GH200) |
| Extras | Resize, rotate/flip, crop, color-format conversion |
Bundled scripts:
| Script | Purpose |
|---|---|
scripts/generate_pipeline.py |
BM25 retrieval engine — scores/ranks pipelines from data/data.csv |
scripts/validate_pipeline.py |
4-stage validator: syntax, elements, properties, live parse |
scripts/lint_data.py |
Data-quality linter for the pipeline CSV (--fix to auto-repair) |
Bundled references: assembly-rules.md, output-format.md, requirement-extraction.md, security-and-limitations.md.
Install (same paths as deepstream-dev):
cp -r skills/deepstream-generate-pipeline ~/.cursor/skills/ # or ~/.claude/skills/ , ~/.codex/skills/Try it — the skill activates from natural pipeline phrasing, no @-mention needed:
detect and track on 4 rtsp streams and display on jetson
give me a pipeline to infer on an image
build a pipeline
Tip: Works best in Agent mode. Run the bundled test suite with
python3 -m unittest discover -s <skill-path>/tests -v.
deepstream-profile-pipeline replaces performance guesswork with measurement. When the user wants an efficient / fast / performant pipeline — or asks to benchmark, tune, or measure FPS — this skill profiles the pipeline with Nsight Systems (nsys profile + nsys stats, fully headless, no GUI), establishes two measured numbers (the inference plateau batch and the HW ceiling), and derives every other config from them. It then reports per-plugin NVTX timings for the end-to-end pipeline.
The skill is model- and pipeline-agnostic: it assumes only that the inference element is nvinfer or nvinferserver, and reads the user's actual config to discover model dims, target FPS, and source properties. It works for detection (with or without tracker), classification, segmentation, VLM, and embedding pipelines, with file / RTSP / USB-camera sources.
Bundled references:
| Reference | Coverage |
|---|---|
nvtx-coverage.md |
Per-plugin NVTX range coverage and interpretation |
hw-ceiling-formulas.md |
HW ceiling derivation formulas |
config-derivation-rules.md |
Deriving pipeline configs from measured numbers |
nsys-cli-recipes.md |
nsys profile / nsys stats CLI recipes |
boundedness-rules.md |
Compute- vs memory- vs IO-boundedness rules |
Container requirement: Run from the
nvcr.io/nvidia/deepstream:9.0-triton-multiarchdev image. The slimmersamples-multiarchvariant strips the nsys NVTX injector and produces empty per-plugin traces — do not use it for profiling. Requiresnsys(Nsight Systems 2024+) andnvidia-smionPATH.
Install (same paths as deepstream-dev):
cp -r skills/deepstream-profile-pipeline ~/.cursor/skills/ # or ~/.claude/skills/ , ~/.codex/skills/Try it:
build an efficient pipeline for this GPU
how many streams can this GPU handle at 30 FPS?
profile and tune my deepstream pipeline
Tip: Works best in Agent mode — it activates when a prompt carries efficiency/benchmarking intent.
deepstream-import-vision-model is an autonomous skill: instead of helping you write code, it executes a complete model bring-up pipeline and hands you back a benchmarked TensorRT engine plus a publication-ready PDF report.
Pipeline (runs unattended):
- Model Acquire — parses a HuggingFace or NVIDIA NGC URL, downloads ONNX (or exports SafeTensors → ONNX via
optimum-cli), extracts labels. - Engine Build — builds a dynamic TensorRT engine via
trtexec, with iterative batch-size scaling and warm-cache reuse. - DeepStream Pipeline — generates a custom
nvinferbbox parser, builds the.so, runs single-stream KITTI validation, then a multi-stream sweep. - Report — produces 5 benchmark charts and a Markdown / HTML / PDF report under
models/<model_name>/reports/.
Supported model scope: Object detection models only. Classification, segmentation, pose estimation, and other vision tasks are rejected up front (architecture detected from config.json — downloaded for HuggingFace models, extracted from the archive for NGC models).
The following detection architecture families are supported:
- Transformer-based detectors — query-based encoder-decoder designs (e.g., DETR and RT-DETR family, including TAO Transformer variants from NGC)
- One-stage grid-based detectors — single-pass, anchor-based or anchor-free designs that predict boxes directly from spatial feature grids (e.g., YOLO family)
- Open-vocabulary / zero-shot detectors — vision-language models that localize objects described by free-form text queries at inference time (e.g., GroundingDINO / OWL-ViT)
Models that fall outside these families are untested; custom bbox parsers may need manual adjustment for novel output tensor layouts.
| Reference | Coverage |
|---|---|
model-acquire.md |
HF / NGC URL parsing, ONNX vs SafeTensors detection, optimum export, label extraction |
engine-build.md |
trtexec flags, dynamic shapes, batch-size scaling, timing-cache reuse, PEAK_GPU_STREAMS derivation |
pipeline-run.md |
Custom nvinfer bbox parser (with the mandatory obj = {} zero-init), single-stream KITTI validation, multi-stream sweep |
report-generation.md |
benchmark_data.json schema, 5-chart generation, 12-section Markdown report, HTML + PDF render via wkhtmltopdf |
Same install paths as deepstream-dev:
# Example: Cursor user-level
cp -r skills/deepstream-import-vision-model ~/.cursor/skills/
# Example: Claude Code user-level
cp -r skills/deepstream-import-vision-model ~/.claude/skills/
# Example: Codex user-level
cp -r skills/deepstream-import-vision-model ~/.codex/skills/
# Or workspace-level
cp -r skills/deepstream-import-vision-model <workspace>/.cursor/skills/After copying:
<skills-directory>/
└── deepstream-import-vision-model/
├── SKILL.md # Top-level skill definition + critical rules
├── references/ # 4 phase references (model-acquire, engine-build, pipeline-run, report-generation)
└── scripts/ # Helpers: model/, engine/, deepstream/, report/
-
Open (or restart) your AI coding assistant on a workspace where you want bring-up artifacts to land (the skill writes to
models/<model_name>/relative to the project root). -
Ask:
Use deepstream-import-vision-model to onboard and benchmark this detection model end-to-end, and produce the PDF benchmark report: https://catalog.ngc.nvidia.com/orgs/nvidia/teams/tao/models/rtdetr_2d_warehouse Use the default sample video at /opt/nvidia/deepstream/deepstream/samples/streams/sample_720p.mp4.In Cursor:
@deepstream-import-vision-model onboard and benchmark this detection model end-to-end, and produce the PDF benchmark report: https://catalog.ngc.nvidia.com/orgs/nvidia/teams/tao/models/rtdetr_2d_warehouse Use the default sample video at /opt/nvidia/deepstream/deepstream/samples/streams/sample_720p.mp4.For an interactive variant that prompts for inputs with defaults, see
example_prompts/import_vision_model_detection_pipeline.md. -
The agent should activate
deepstream-import-vision-model, run the containerized setup and preflight checks (Docker, GPU, DeepStream 9.1, Python environment, TensorRT, and report tooling), and proceed through Steps 1–8 without further prompting.
models/<model_name>/
model/ # ONNX file(s)
parser/ # custom nvinfer bbox parser (.cpp, .so)
config/ # nvinfer config, ds-app config, labels.txt
benchmarks/ # TRT engines + trtexec / DS logs
reports/ # benchmark_report.md / .html / .pdf + charts/
samples/ # output .mp4, KITTI detections, test frames
The final PDF (reports/benchmark_report_<model_name>.pdf) being >500 KB is the skill's own success signal that charts were embedded correctly.
Tip: Like
deepstream-dev, this skill works best in Agent mode. Manual@-mention is not required after install — the assistant picks it up from the URL pattern in your prompt.
deepstream-run-mv3dt operates the DeepStream Multi-View 3D Tracking reference app in src/apps/reference_apps/deepstream-tracker-3d-multi-view. It supports setup checks, shipped 4-camera and 12-camera sample runs, synchronized MP4 datasets, AutoMagicCalib handoff for missing calibration, display or headless execution, OSD/BEV outputs, and Kafka metadata inspection.
Same install paths as deepstream-dev:
# Example: Cursor user-level
cp -r skills/deepstream-run-mv3dt ~/.cursor/skills/
# Example: Claude Code user-level
cp -r skills/deepstream-run-mv3dt ~/.claude/skills/
# Example: Codex user-level
cp -r skills/deepstream-run-mv3dt ~/.codex/skills/
# Or workspace-level
cp -r skills/deepstream-run-mv3dt <workspace>/.cursor/skills/Ask for an MV3DT workflow, for example:
Run the DeepStream MV3DT 4-camera sample headlessly and save output artifacts.
The agent should activate deepstream-run-mv3dt, resolve the MV3DT reference-app directory, run preflight checks, request approval before privileged Docker launch commands, and verify current-run artifacts rather than stale files.
Deploy MV3DT on the default sample dataset.
Run the MV3DT 12-camera sample headlessly with RTDETR and save videos.
Run MV3DT on synchronized MP4s under /path/to/my-dataset using PeopleNetTransformer.
My MV3DT videos under /path/to/my-dataset do not have calibration. Use AutoMagicCalib with resnet, then run MV3DT.
deepstream-sop is a domain-specific skill for building, deploying, evaluating, debugging, and measuring latency on the DeepStream SOP (Standard Operating Procedure) Inference Microservice — a GPU-accelerated FastAPI service that combines GEBD (Generic Event Boundary Detection, e.g. DDM) with VLM-based step classification (Cosmos Reason 1/2 via embedded vLLM) to verify operator step sequence on industrial video. It supports file, RTSP, and Basler GigE camera inputs, and emits results over SSE and/or Kafka.
The skill ships an 18-section progressive-disclosure reference layout: the agent loads only the sections relevant to the current task (generate, evaluate, latency-measurement, etc.), not the whole thing.
Bundled reference topics:
| Reference | Coverage |
|---|---|
skill_01_fastapi_endpoints.md |
FastAPI endpoints, server init, Prometheus metrics |
skill_02_pydantic_schemas.md |
Request/response Pydantic models |
skill_03_deepstream_pipeline.md |
DeepStream pyservicemaker pipeline + tensor parser |
skill_04_config_templates.md |
nvdspreprocess / nvinferserver templates |
skill_05_triton_ddm_model.md |
Triton model repo, config.pbtxt, GEBD model swap |
skill_05b_custom_postprocess.md |
C++ postprocess plugin (DeepStream IOptions API) |
skill_06_sop_process_manager.md |
SOPProcessManager, SOPVideoProcessor, VLM wiring |
skill_06b_sop_checker.md |
Cycle detection, missing / mis-ordered step compliance |
skill_07_sse_streaming.md |
SSE generator, dummy test mode |
skill_08_basler_camera.md |
Basler GigE camera, Pylon SDK, camera emulation |
skill_09_docker_build_deploy.md |
Docker build, deploy, .env configuration |
skill_10_test_suite.md |
Test suite coverage, assertions |
skill_11_env_variables.md |
All environment variables |
skill_12_evaluation_workflow.md |
Generate-evaluate-iterate workflow with watchdog |
skill_13_verification_curl.md |
Verification steps + curl examples |
skill_14_implementation_checklist.md |
File copy map + Docker prereqs + post-build verification |
skill_15_latency_measurement.md |
File-input TTFC and C2C latency measurement |
skill_16_message_schema.md |
Kafka message schema (JSON / NvProto) |
skill_17_camera_latency_measurement.md |
Live-stream chunk_e2e latency measurement |
skill_18_rtsp_streaming_output.md |
RTSP streaming output as a natively generated feature |
Generate the microservice scaffold:
Please follow @references/example_sop_prompt.md to generate a SOP microservice
in a folder named ds_sop_microservice.
Evaluate the microservice and fix issues until the test suite is green:
Please follow @references/eval_sop_prompt.md to evaluate the SOP microservice
in ds_sop_microservice. Fix any issues found.
Live-camera question — the skill activates without being named:
How do I send a chat completion request using a Basler GigE camera with serial 40748152?
Measure file-input latency:
Measure TTFC and C2C latency on /path/to/test_video.mp4 — follow the deepstream-sop skill.
Tip: Like the other skills,
deepstream-sopworks best in Agent mode — the assistant picks it up automatically when a prompt matches its trigger list (SOP / step-sequence / VLM-on-video / Basler camera / SOP-checker, etc.).
The AMC skills provide guided AutoMagicCalib setup and calibration workflows. When these skills mention the root README.md, assets/, compose/, projects/, or models/, they mean the resolved auto-magic-calib checkout. The setup skill finds an existing checkout or asks before cloning one.
These AMC skills are runtime-operation skills. Running setup or calibration requires a host with an NVIDIA GPU with NVENC, NVIDIA driver, Docker without sudo, NVIDIA Container Toolkit, and NGC image access. Optional VGGT refinement also requires HuggingFace access and the VGGT model. In restricted or no-GPU sandboxes, use the skills for planning and command preparation only.
| Skill | What it does |
|---|---|
amc-setup-calibration-stack |
Launches the AMC microservice and UI from NGC release images, handles NGC login, resolves ports, configures compose/.env, verifies /v1/ready, and reports MS, Swagger, and UI URLs. |
amc-run-sample-calibration |
Runs the shipped sample dataset (assets/sdg_08_2_sample_data_010926.zip) through the AMC REST API using the bundled Python script or a documented Swagger UI path. |
amc-run-video-calibration |
Runs calibration for user-supplied cam_*.mp4 videos through the AMC REST API, with local config/alignment/layout detection, UI fallback, optional GT, focal lengths, detector selection, and optional VGGT refinement. |
amc-run-rtsp-calibration |
Records live RTSP streams through VIOS, ingests clips into AMC, then runs the same verify, calibrate, poll, and results workflow. |
Copy all AMC skill directories into your assistant's skill directory. Examples:
# Claude Code user-level
mkdir -p ~/.claude/skills
cp -r skills/amc-* ~/.claude/skills/
# Codex user-level
mkdir -p ~/.codex/skills
cp -r skills/amc-* ~/.codex/skills/Restart or reopen the coding assistant after copying the skills.
launch auto calibration
calibrate sample dataset
calibrate these videos - /path/to/NV-Warehouse-4Cam/videos
calibrate these streams - rtsp://<host>:<port>/<path>/cam_00.mp4, rtsp://<host>:<port>/<path>/cam_01.mp4, rtsp://<host>:<port>/<path>/cam_02.mp4. Use resnet; I will upload alignment/layout/settings in the UI.
rtvi-cv-customize-model covers swapping the DeepStream CV detection model in the VSS Alerts Blueprint verification (2d_cv) mode. It walks through ONNX staging, custom bbox parser build and symbol alignment, nvinfer config, runtime TRT engine build via trtexec, and redeployment of perception-alerts. YOLO11 is the reference example; the same steps apply to any ONNX-format detector.
# Claude Code user-level
cp -r skills/rtvi-cv-customize-model ~/.claude/skills/
# Codex user-level
cp -r skills/rtvi-cv-customize-model ~/.codex/skills/Replace the VSS Alerts Blueprint verification-mode detector with a custom ONNX model and redeploy perception-alerts.
How do I use a different detection model with the VSS Alerts Blueprint?
rtvi-vlm-customize-model covers swapping the VLM in the VSS Alerts Blueprint. It handles all three VLM consumers (rtvi-vlm, vlm-as-verifier, vss-agent), both deployment methods (OpenAI-compatible endpoint and in-container vLLM), and health checks.
# Claude Code user-level
cp -r skills/rtvi-vlm-customize-model ~/.claude/skills/
# Codex user-level
cp -r skills/rtvi-vlm-customize-model ~/.codex/skills/Point the VSS Alerts Blueprint at a host-side NIM on http://host.docker.internal:30082 for all RTVI-VLM calls.
Run rtvi-vlm standalone with Qwen3-VL-8B-Instruct served inside the container.
rtvi-cv-scaffold-vss-service scaffolds a deployable custom RTVI CV microservice that plugs into VSS Search and Alerts profiles via Kafka mdx-raw. The shipped scaffold is a YOLO26 reference implementation and generates a runnable repo with a Dockerfile, DeepStream pipeline configs, compose definition, Python adapter, tests, and a smoke-test consumer.
# Claude Code user-level
cp -r skills/rtvi-cv-scaffold-vss-service ~/.claude/skills/
# Codex user-level
cp -r skills/rtvi-cv-scaffold-vss-service ~/.codex/skills/Create a custom RTVI CV microservice that runs YOLO26 in DeepStream and publishes object metadata so VSS Search and Alerts can consume it.
Scaffold a custom perception microservice for VSS Alerts using my YOLO26 ONNX and wire it into mdx-raw.
The example_prompts/ directory contains pre-built prompts for generating DeepStream applications. Each prompt file provides a complete specification that an AI agent can follow to produce working code.
Getting started? Begin with
video_infer_app.mdfor a minimal single-stream inference example, then progress tomulti_stream_tracker.mdfor multi-stream and tracking capabilities.
| Prompt File | Purpose |
|---|---|
multi_stream_tracker.md |
Multi-stream RTSP app with tracker and 2x2 tiled display |
rtvi_vlm_core_app.md |
Complete RTSP video processing app with VLM integration |
rtvi_vlm_openapi_spec.md |
FastAPI microservice with OpenAPI specification. Should be used after the core app is generated using @rtvi_vlm_core_app.md |
video_infer_app.md |
Basic video file inference with bounding box display |
video_object_count.md |
Video inference with object detection counting |
video_parallel_infer_app.md |
Parallel multi-model inference with demux stream selection and metadata merging |
yolov26s_detection.md |
YOLOv26s model download, ONNX export, and custom parsing library |
nvdsdynamicsrcbin_app.md |
Use of nvdsdynamicsrcbin plugin |
nvdsanalytics_config_sample.md |
Video inference with nvdsanalytics — ROI filtering, line-crossing, overcrowding, and direction detection |
msgconv_kafka.md |
Video inference with message converter sending detection results to Kafka |
msgbroker_nats.md |
Publish detection results to NATS via a custom NATS protocol adapter (JetStream, auth, TLS) |
ds_profiling_efficient_pipeline.md |
Build and profile an efficient multi-stream RTSP pipeline; report bottleneck and max sustainable streams (pairs with deepstream-profile-pipeline) |
import_vision_model_detection_pipeline.md |
Interactive detection-model onboarding & benchmark prompt (pairs with deepstream-import-vision-model) |
single_view_3d_tracker.md |
The single-view 3D tracking. Given the camera matrix and human model of a static camera, estimates and keeps tracking of object states in the 3D physical world |
Open the agent or chat panel in your AI coding assistant. Most tools provide a keyboard shortcut or sidebar icon for this.
Use your tool's file-referencing feature (e.g., @ mentions) to include the prompt file:
@example_prompts/rtvi_vlm_core_app.md
Or simply type @ and start typing the filename to search.
Option A: Direct execution
Reference the file in the chat and instruct the agent to follow it:
Follow the instructions in @example_prompts/rtvi_vlm_core_app.md to generate the application.
Option B: Incremental execution
For complex prompts, break them into smaller steps:
Based on @example_prompts/rtvi_vlm_core_app.md, first implement the vLLM backend module.
Then follow up with:
Now implement the frame selection logic as described in the prompt.
- Review the generated code in the diff view.
- Accept or reject individual changes.
- Ask follow-up questions for refinements:
Can you optimize the GPU memory usage in the generated stream_processor.py?
Here's a complete workflow for generating the RTVI VLM application:
1. Generate Core Application
@example_prompts/rtvi_vlm_core_app.md
Generate the complete application following these instructions.
2. Add FastAPI Microservice
@example_prompts/rtvi_vlm_openapi_spec.md
Create the FastAPI server with all endpoints shown in @rtvi_vlm_openapi_spec.png
- Be specific — Include exact requirements, constraints, and expected outputs
- Reference context — Use
@mentions to include relevant files and documents - Break down complex tasks — Divide large features into smaller, focused prompts
- Include examples — Show expected input/output formats when applicable
- Specify the deployment target — Mention whether the application targets dGPU (x86_64) or Jetson (ARM64), as pipeline elements and sink choices may differ
- Review before accepting — Always inspect generated pipelines for correct element linking and property values
- Test incrementally — Run the pipeline after each major change rather than building the entire application at once
- Use the troubleshooting reference — If a pipeline fails, ask the agent to consult
troubleshooting.mdfor known error patterns - Provide error output — When debugging, paste the full GStreamer or DeepStream error log into the chat for more accurate fixes