Agent skill / nvidia
Use to call the VIOS REST API (sensor list, timelines, clip extraction, snapshots, add/delete sensors and streams). Not for VLM inference or search.
Core file
AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versionvss-manage-video-io-storageExecute the skills CLI command in your project's root directory to begin installation:
Package manager
npx skills install nvidia/skills/vss-manage-video-io-storageFetches vss-manage-video-io-storage from nvidia/skills and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
Restart Cursor to activate vss-manage-video-io-storage. Access via /vss-manage-video-io-storagein your agent's command palette.
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your environment. Always review source, verify the publisher, and test in isolation before production.
Submit your Claude Code skill and start earning
Create detailed user stories, acceptance criteria, and feature specs
Example
Generate user stories for 'password reset feature' with acceptance criteria, edge cases, and test scenarios
Reduce spec writing time by 50%, ensure comprehensive coverage
Research competitors, compare features, identify gaps
Example
Analyze 5 competitor products, create feature comparison matrix, suggest differentiation opportunities
Complete competitive research in 2 hours instead of 2 days
Evaluate features using frameworks (RICE, ICE, Kano) and create prioritized backlogs
Example
Score 20 feature ideas using RICE framework, generate prioritized roadmap with rationale
Copy the command for your terminal
Package manager
npx skills install nvidia/skills/vss-manage-video-io-storageWorks with
| name | vss-manage-video-io-storage |
| description | Use to call the VIOS REST API (sensor list, timelines, clip extraction, snapshots, add/delete sensors and streams). Not for VLM inference or search. |
| license | Apache-2.0 |
| metadata | version: "3.2.0" github-url: "https://github.com/NVIDIA-AI-Blueprints/video-search-and-summarization" tags: "nvidia blueprint operational" |
Manage VIOS and NvStreamer API operations for VSS video input/output and storage workflows: sensors, streams, uploads, snapshots, clips, timelines, and recording status.
$HOST_IP (see vss-deploy-profile and references/).$NGC_CLI_API_KEY and $NVIDIA_API_KEY for any image pulls.curl, jq, and Docker available on the caller.Call the VIOS REST API to manage cameras/sensors, RTSP streams, recordings, snapshots, and storage. Use when asked to: add a camera, add an RTSP stream, list sensors, show configured sensors/cameras/streams, check stream status, get a snapshot, download a clip, upload a video file, or manage video storage. Query the VIOS API directly using curl — do not navigate the UI.
Upload routing rule:
<file>.mp4 to VIOS", "upload a video file", or otherwise means storing a local video as a VIOS file-backed sensor, use the direct VIOS API: PUT /vst/api/v1/storage/file/{filename} from references/api-reference.md Section 8./sensor/add handoff for a plain VIOS MP4 upload request.Do NOT use this skill for:
vss-ask-video.vss-search-archive.vss-summarize-video.vss-generate-video-report Mode B.vss-query-analytics.This skill bundles four reference files under references/. Read whichever applies to the task in front of you:
| File | Purpose | Audience |
|---|---|---|
references/api-reference.md | The full VIOS REST API reference (the runtime contract) — sensor management, storage, snapshots, clip extraction, WebRTC live/replay, RTSP proxy, recorder, service configuration, service discovery. Read this when invoking any VIOS API operation. | Operational users + this skill itself |
references/nvstreamer-api-reference.md | The NvStreamer REST API reference — version, sensor list/info/status/streams, the three upload methods (PUT v2 / PUT v1 / POST multipart) with the nvstreamer-* custom headers, delete, snapshots (frame-indexed live, timestamp-indexed storage), storage info, filesystem scan. NvStreamer (vss-vios-nvstreamer, the streamer-adaptor variant of launch_vst) is brought up by the same profiles that bring VIOS up — dev-profile-alerts, dev-profile-lvs, dev-profile-search, all warehouse profiles. See integrate-vios-service.md § Topology B for the deployment side. Read this when serving test / sample videos as synthetic RTSP, retrieving the RTSP URL NvStreamer generated for a file, or driving the canonical NvStreamer → VIOS handoff (upload to NvStreamer → read RTSP URL → register that URL with VIOS via /sensor/add). | Operational users + skill authors composing the upload → RTSP URL → VIOS /sensor/add flow |
references/integrate-vios-service.md | The integration contract — how VIOS plugs into other VSS microservices. Documents required peer services (RT-VLM, ELK, Kafka, Redis, sdr-controller / SDRC), the structured component_services: block consumed by the vss-build-vision-agent skill's Step 4, integration inputs/outputs (Kafka topics, REST endpoints, file paths), environment variables, network requirements, and known integration constraints (e.g. the /url-variant double-http:// bug, the VIOS + SDRC patching requirement). Read this when authoring a skill that talks to VIOS as a peer, when composing a new VSS deployment, or when debugging caption-pipeline wiring. | Skill authors, deployment composers, pair-file maintainers |
references/deploy-vios-service.md | The deployment contract — what it takes to bring VIOS up. Documents container images and tags (nvcr.io/nvidia/vss-core/vss-vios-*:3.2.0), GPU / CPU / memory / storage requirements, startup behavior + healthcheck tuning, required environment variables (notably VST_INSTALL_ADDITIONAL_PACKAGES=true for the libav apt-install step that gates uploads), known deployment issues (volume drift, libav missing, 502 from leftover containers), prerequisites, dry-run, verify-deployment, and tear-down commands. Read this when VIOS isn't running and you (or your caller) need to deploy it standalone, when debugging container-startup failures, or when authoring a deploy skill that wraps VIOS. | Operators, deploy-skill authors |
This skill is primarily an API client and assumes VIOS is already up and reachable at the VST ingress (default http://${HOST_IP}:30888). It does not deploy VIOS itself, but when VIOS is unreachable it coordinates a deploy using its bundled deployment runbook (references/deploy-vios-service.md) or hands off to the full-stack /vss-deploy-profile skill. Before doing any work:
Probe VIOS:
curl -sf --max-time 5 "http://${HOST_IP}:30888/vst/api/v1/sensor/version" >/dev/null
If the probe fails, VIOS is not deployed. Offer two paths forward:
"VIOS is not reachable at
http://${HOST_IP}:30888— no deployment is currently up. You have two options: (a) Bring up VIOS standalone using this skill's bundledreferences/deploy-vios-service.mdrunbook — image tags, env vars (notablyVST_INSTALL_ADDITIONAL_PACKAGES=true), host directories, NGC login, bring-up command, healthcheck loop, and known deployment issues are all documented there. This is the right path if you only need VIOS itself (no RT-VLM / ELK / etc.) or if you're composing a custom profile. (b) Deploy a full VSS profile that includes VIOS via the/vss-deploy-profileskill —base(recommended),lvs,search, oralertsall bring VIOS up alongside other components. This is the right path if you want a complete VSS stack. Which would you like?"
references/deploy-vios-service.md step by step. Pay particular attention to its § Environment Variables — Required for Upload-to-Caption Path and § Known Deployment Issues sections — the libav-missing failure (VST_INSTALL_ADDITIONAL_PACKAGES=true) and the volume-drift hang (docker compose up --yes or docker volume rm first) are the two most common bring-up blockers. After deploy succeeds and the probe in step 1 passes, return here./vss-deploy-profile -p <profile> (default base). Return here once it succeeds.Pre-authorized autonomous mode: if your caller has granted explicit pre-authorization to deploy prerequisites (e.g. the request says "pre-authorized to deploy prerequisites", or you are running in a non-interactive evaluation harness with that permission), skip the confirmation and prefer path (a) — bring up VIOS standalone via this skill's bundled references/deploy-vios-service.md — unless the request explicitly asks for a full VSS profile, in which case invoke /vss-deploy-profile -p base.
If the probe passes, proceed. VIOS is up; all operations below are safe to execute.
GET /vst/api/v1/sensor/list and GET /vst/api/v1/sensor/<sensorId>/streams
can return HTTP 502 Bad Gateway or stale results when leftover *-smc
VST containers from an earlier deploy survive teardown and win the
network_mode: host port-bind race on :30000 / :30888. Remediation:
re-run /vss-deploy-profile — its Step 0 teardown grep clears the full
sensor-ms-* / vst-ingress-* / sdr-* / sdrc-* / rtspserver-ms-* set.
Other paths (storage/file/* upload, */picture/url snapshot, */url clip
extraction) are unaffected. Full failure-mode catalogue, remediation, and the
current routing contract (direct vs SDRC; SDR/Envoy removed in PR #711) live in
references/deploy-vios-service.md § Known Deployment Issues and
issue #151.
Base URL: http://<VST_ENDPOINT>/vst/api/v1
Endpoint Resolution:
Availability Check:
curl -sf --connect-timeout 5 http://<VST_ENDPOINT>/vst/api/v1/sensor/version
Fallback:
Run all curl commands yourself — never instruct the user to run commands manually.
Auth: Optional. Most deployments run without auth. If a 401 is returned, retry with -H "Authorization: Bearer <token>" and ask the user for the token.
Start/end time handling: Any API that requires startTime/endTime:
Resolving sensorId / streamId: If the user has not provided a sensorId or streamId, look it up automatically using one of:
GET /sensor/list — lists all sensors with their sensorIdGET /sensor/{sensorId}/streams — lists streams for a specific sensor with their streamIdGET /sensor/streams — lists all streams across all sensorsGET /live/streams — lists all active live streamsGET /replay/streams — lists all available replay streamsIf a sensor has only one stream, sensorId and streamId are equal and can be used interchangeably.
| Capability | URL prefix | Authoritative reference |
|---|---|---|
| Version / health check | /vst/api/v1/sensor/version | references/api-reference.md |
| Sensor list / info / status / add / delete | /vst/api/v1/sensor/ | references/api-reference.md |
| Sensor streams | /vst/api/v1/sensor/streams, /vst/api/v1/sensor/{id}/streams | references/api-reference.md |
| Network scan | /vst/api/v1/sensor/scan | references/api-reference.md |
| Recording timelines | /vst/api/v1/storage/ | references/api-reference.md |
| Video clip download / URL | /vst/api/v1/storage/ | references/api-reference.md (operations) + references/integrate-vios-service.md § Known Integration Constraints (Finding 8: /url double-http:// bug — prefer binary direct endpoints) |
| File upload / delete | /vst/api/v1/storage/ | references/api-reference.md (PUT v2 + legacy v1 endpoints) + references/deploy-vios-service.md § Known Deployment Issues (Finding 9: libav-missing failure mode) |
| Live streams / snapshot (picture) | /vst/api/v1/live/ | references/api-reference.md |
| Replay streams / historical snapshot | /vst/api/v1/replay/ | references/api-reference.md (operations) + references/integrate-vios-service.md § Known Integration Constraints (Finding 8) |
| NvStreamer: file-to-RTSP republisher (upload, retrieve generated RTSP URL, filesystem scan, frame snapshots) | http://${HOST_IP}:${NVSTREAMER_HTTP_PORT:-31000}/vst/api/v1/ | references/nvstreamer-api-reference.md (the streamer endpoint is separate from the VIOS gateway — different port, type: "streamer" on /version) |
The full VIOS REST API reference — sensor management, storage, snapshots, clip extraction, WebRTC live/replay, RTSP proxy, recorder, service configuration, and service discovery — lives in references/api-reference.md. Read that file when invoking any operation.
When a request involves serving an on-disk video file as a synthetic RTSP camera (upload a sample to NvStreamer, retrieve the auto-generated RTSP URL, register that URL with VIOS), point at the NvStreamer endpoint and follow references/nvstreamer-api-reference.md for the surface. NvStreamer comes up automatically with any VIOS-using profile that ships it; do not deploy it separately.
For integration- and deployment-time questions about how VIOS interacts with other microservices or how it's brought up, defer to references/integrate-vios-service.md and references/deploy-vios-service.md respectively (see the Reference contracts table above for what each covers).
When the user has a sensor name or IP but needs a clip or snapshot:
curl -sf --connect-timeout 5 "http://<VST_ENDPOINT>/vst/api/v1/sensor/version"
sensorId:
curl -s "http://<VST_ENDPOINT>/vst/api/v1/sensor/list" | jq .
streamId (prefer isMain: true):
curl -s "http://<VST_ENDPOINT>/vst/api/v1/sensor/<sensorId>/streams" | jq .
curl -s "http://<VST_ENDPOINT>/vst/api/v1/storage/<streamId>/timelines" | jq .
streamId. Prefer the binary direct endpoints (/storage/file/<streamId>?startTime=...&endTime=..., /replay/stream/<streamId>/picture?startTime=..., /storage/stream/<streamId>/picture?startTime=...) over the /url JSON envelope variants — see references/integrate-vios-service.md § Known Integration Constraints Finding 8 (the /url variants return double-http:// URLs in 3.2.0 and require client-side stripping).Success with data: JSON object or array.
Success with no data: null — a null response means the API call succeeded but there is no data to return (e.g. no schedule configured, scan returned no results). It is not an error.
Success with boolean: Some endpoints return true on success (e.g. DELETE /sensor/{sensorId}).
Error: JSON object with error_code and error_message:
{
"error_code": "VMSInternalError",
"error_message": "VMS internal processing error"
}
Common codes: VMSInternalError, VMSNotFound, VMSInvalidParameter.
If you see InvalidParameterError: Failed to get media information on a PUT upload, this is the libav-missing failure mode — VIOS was deployed without VST_INSTALL_ADDITIONAL_PACKAGES=true. See references/deploy-vios-service.md § Known Deployment Issues Finding 9 for the fix.
If you see double-http:// prefixes in imageUrl or videoUrl fields on /url-variant responses, that's Finding 8 — strip the leading http:// client-side or switch to binary direct endpoints.
Example operation prompts:
${VST_CONTAINER_ROOT} as a neutral
placeholder for the VST install root inside the container. Resolve it from the
active deployment before using path examples.Failed to get media information. Cause:
libav packages were not installed in the VIOS container. Solution: set
VST_INSTALL_ADDITIONAL_PACKAGES=true and redeploy./url responses contain http://http://.... Cause: known URL
construction defect. Solution: use binary direct endpoints or strip the
duplicated prefix.jq . for readability. Binary responses (clip download, snapshot) are not — they use -o <file> instead.2026-04-10T10:30:00Z or 2026-04-10T10:30:00.000Z.streamId as BOTH a path parameter AND a request header — include both./storage/file/<id>?...&container=mp4 endpoint with -o clip.mp4 for direct streaming. The /url envelope variant has the Finding 8 double-http:// defect — avoid until upstream fixes it or use client-side prefix stripping.sensorId identifies a camera; streamId identifies a specific video stream from that camera (a sensor can have a main stream and sub-streams).GET /sensor/<sensorId>/streams and inspect the url field of each stream. If url starts with rtsp:// it is a live RTSP/IP camera stream. If url is a file path (e.g. "${VST_CONTAINER_ROOT}/streamer_videos/TruckAccident.mp4") it is an uploaded file sensor. This determines which delete flow to use — see Section 8.PUT /vst/api/v1/storage/file/<filename>?timestamp=<iso>, the timeline returned by GET /storage/<streamId>/timelines is anchored at the supplied timestamp, not the upload wall-clock time. Subsequent snapshot / clip queries MUST use timestamps within this range — fetch the timeline first. See references/api-reference.md § 8 and references/integrate-vios-service.md § Integration Interfaces > Inputs > Upload video file for the authoritative contract.<VST_ENDPOINT> as a placeholder — substitute the resolved endpoint before executing.Make data-driven prioritization decisions faster
Draft PRDs, status updates, and stakeholder presentations
Example
Create executive summary of Q3 roadmap, monthly progress report, feature launch announcement
Save 3-5 hours/week on communication overhead
Prerequisites
Time Estimate
30-60 minutes to see productivity improvements
Steps
Common Pitfalls
✓ Do
✗ Don't
💡 Pro Tips
✓ Use when
Use for user story writing, competitive research, roadmap prioritization, stakeholder communication, and PRD drafting. Best for reducing repetitive documentation and research work.
✗ Avoid when
Avoid for strategic product vision (requires deep customer empathy), pricing decisions (needs market and financial expertise), or when face-to-face customer discovery is more valuable than speed.
nvidia/skills
nvidia/skills
nvidia/skills
nvidia/skills
nvidia/skills
nvidia/skills
I recommend vss-manage-video-io-storage for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
Useful defaults in vss-manage-video-io-storage — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
We added vss-manage-video-io-storage from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
Keeps context tight: vss-manage-video-io-storage is the kind of skill you can hand to a new teammate without a long onboarding doc.
vss-manage-video-io-storage has been reliable in day-to-day use. Documentation quality is above average for community skills.
Solid pick for teams standardizing on skills: vss-manage-video-io-storage is focused, and the summary matches what you get after install.
vss-manage-video-io-storage is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
Registry listing for vss-manage-video-io-storage matched our evaluation — installs cleanly and behaves as described in the markdown.
Useful defaults in vss-manage-video-io-storage — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
vss-manage-video-io-storage reduced setup friction for our internal harness; good balance of opinion and flexibility.
showing 1-10 of 75