Contextpilot Savings
EfficientContext/ContextPilot
A skill your agent uses when a user asks how many tokens (or how much context/cost) ContextPilot has saved, or wants a ContextPilot savings status/summary inside Hermes Agent — e.g.
Agent skill
by NVIDIA-AI-Blueprints in NVIDIA-AI-Blueprints/video-search-and-summarization
A skill your agent uses when summarizing a recorded video through HITL-gated LVS, falling back to vss vlm run when LVS is not ready.
The automated check flagged lines worth reading first. See the safety section below.
$ npx skills add NVIDIA-AI-Blueprints/video-search-and-summarization --skill vss-summarize-video -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install NVIDIA-AI-Blueprints/video-search-and-summarization vss-summarize-video --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/NVIDIA-AI-Blueprints/video-search-and-summarization.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/operations/vss-summarize-video .claude/skills/vss-summarize-video && rm -rf skills-srcUse ~/.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/
Install the "vss-summarize-video" agent skill from https://github.com/NVIDIA-AI-Blueprints/video-search-and-summarization/tree/develop/skills/operations/vss-summarize-video into .claude/skills/vss-summarize-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vss-summarize-video", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/NVIDIA-AI-Blueprints/video-search-and-summarization/tree/develop/skills/operations/vss-summarize-videoType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add NVIDIA-AI-Blueprints/video-search-and-summarization --skill vss-summarize-video -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install NVIDIA-AI-Blueprints/video-search-and-summarization vss-summarize-video --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/NVIDIA-AI-Blueprints/video-search-and-summarization.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/operations/vss-summarize-video .agents/skills/vss-summarize-video && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "vss-summarize-video" agent skill from https://github.com/NVIDIA-AI-Blueprints/video-search-and-summarization/tree/develop/skills/operations/vss-summarize-video into .agents/skills/vss-summarize-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vss-summarize-video", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add NVIDIA-AI-Blueprints/video-search-and-summarization --skill vss-summarize-video -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install NVIDIA-AI-Blueprints/video-search-and-summarization vss-summarize-video --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/NVIDIA-AI-Blueprints/video-search-and-summarization.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/operations/vss-summarize-video .cursor/skills/vss-summarize-video && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "vss-summarize-video" agent skill from https://github.com/NVIDIA-AI-Blueprints/video-search-and-summarization/tree/develop/skills/operations/vss-summarize-video into .cursor/skills/vss-summarize-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vss-summarize-video", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/NVIDIA-AI-Blueprints/video-search-and-summarization.git --path skills/operations/vss-summarize-video--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add NVIDIA-AI-Blueprints/video-search-and-summarization --skill vss-summarize-video -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install NVIDIA-AI-Blueprints/video-search-and-summarization vss-summarize-video --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/NVIDIA-AI-Blueprints/video-search-and-summarization.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/operations/vss-summarize-video .gemini/skills/vss-summarize-video && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "vss-summarize-video" agent skill from https://github.com/NVIDIA-AI-Blueprints/video-search-and-summarization/tree/develop/skills/operations/vss-summarize-video into .gemini/skills/vss-summarize-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vss-summarize-video", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install NVIDIA-AI-Blueprints/video-search-and-summarization vss-summarize-videoInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add NVIDIA-AI-Blueprints/video-search-and-summarization --skill vss-summarize-video -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/NVIDIA-AI-Blueprints/video-search-and-summarization.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/operations/vss-summarize-video .github/skills/vss-summarize-video && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "vss-summarize-video" agent skill from https://github.com/NVIDIA-AI-Blueprints/video-search-and-summarization/tree/develop/skills/operations/vss-summarize-video into .github/skills/vss-summarize-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vss-summarize-video", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add NVIDIA-AI-Blueprints/video-search-and-summarization --skill vss-summarize-video -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install NVIDIA-AI-Blueprints/video-search-and-summarization vss-summarize-video --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/NVIDIA-AI-Blueprints/video-search-and-summarization.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/operations/vss-summarize-video .opencode/skills/vss-summarize-video && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "vss-summarize-video" agent skill from https://github.com/NVIDIA-AI-Blueprints/video-search-and-summarization/tree/develop/skills/operations/vss-summarize-video into .opencode/skills/vss-summarize-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vss-summarize-video", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
vss-summarize-videoA skill your agent uses when summarizing a recorded video through HITL-gated LVS, falling back to vss vlm run when LVS is not ready.
Vss Summarize Video is an agent skill from NVIDIA-AI-Blueprints/video-search-and-summarization. Use when summarizing a recorded video through HITL-gated LVS, falling back to vss vlm run when LVS is not ready. Not for reports, archive search, or live RTSP captioning.
Its SKILL.md is about 5.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 17 other files, including reference files and assets (for example `evals/evals.json`, `evals/lvs_api_ops.json` and `evals/lvs_profile_summarize.json`).
It sits in AI & LLM Engineering, covering Summarization. The repository describes itself as: NVIDIA AI Blueprint for video search and summarization (VSS) is a GPU-accelerated reference architecture for building video analytics agents with real-time verified alerts… The licence is Apache-2.0.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit fdb6a7a. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
uvdockerkubectlFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use uv, docker and kubectl, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Vss Summarize Video loads about 5.3k tokens when it runs, and up to ~25k if it reads all its reference files. Until then it costs about 48 tokens; SKILL.md has 2,825 words of instructions outside code blocks.
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.
The automated check found patterns that need a careful read before installing.
- Run API commands yourself; do not tell the user to run them.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.
The full file from NVIDIA-AI-Blueprints/video-search-and-summarization at commit fdb6a7a, republished under its Apache-2.0 licence (© NVIDIA-AI-Blueprints). 2,825 words, ~5,303 tokens.
.claude/skills/vss-summarize-video/SKILL.md (or your agent's skills folder). This skill also uses 14 other files; get the full folder from GitHub.vss vios list --sensor <name>; never reuse an earlier file classification.
Reject a stream; if the type is unclear or the lookup fails, report that
limitation and stop. Local/uploaded files follow the recorded-video workflow,
including Stage 2 registration when absent; do not classify their paths as sensors.Runnable scenarios live under evals/. The command implementations are in
references/end-to-end-example.md.
Use when summarizing a recorded video through HITL-gated LVS, to produce one polished narrative summary with timestamped events when LVS is available.
Do not use this skill for:
vss-deploy-dense-captioning.vss-generate-video-report Mode B.vss-search-archive.Load these files only as directed:
references/end-to-end-example.md: load
before executing the recorded-video workflow. It contains the exact
readiness, VIOS preparation, single-run summarize, and VLM fallback commands.references/cli_usage.md: load before Stage 4.
vss summarize run issues the summarize request and applies the operator's
configured memory policy; this reference has its flags, exit codes, output
shape, and read verbs.references/video-summarization-api.md:
load before constructing a live LVS operation by hand — a direct API
question. Follow its Runtime OpenAPI
Discovery procedure: the LVS schema is /openapi.json under
services.lvs.url; the origin's own /openapi.json is the Agent's. The ordered
workflow does not build a summarize payload; the CLI owns that.references/hitl-prompts.md: load when
collecting LVS scenario, events, and optional objects of interest.references/video-summarization-debugging.md:
load only when diagnosing a failed or empty response.references/video-summarization-deployment.md:
load only for deployment, configuration, logs, or service operations.references/video-summarization-environment-variables.md
and assets/video-summarization.env.example: use when configuring the
service environment.../vss-build-vision-ai/references/deployment_resolution.md:
Kubernetes VSS_PUBLIC_URL contract and the /lvs mount, for deployment
questions. The workflow itself reads its service URLs from vss configure show.references/deploy-lvs-service.md: load
when asked about LVS's own container image, GPU/CPU/storage sizing, or
deployment contract as a peer service (heavier than
video-summarization-deployment.md, which covers operating an already
running deployment).references/integrate-lvs-service.md:
load when another agent or skill needs to integrate with LVS as a peer
service — required peers, integration interfaces, API schema, and network
requirements./v1/ready selects LVS. Empty response bodies do not mean
unavailable./v1/chat/completions endpoint.vss summarize run per recorded segment. One run is
one POST /v1/summarize. Never retry, hedge, broaden events, or run a second
backend automatically.vss configure recorded. Never pass an
endpoint, index, or model flag the caller did not name, and never replace a
failed run with hand-rolled curl against /v1/summarize.video_summary and every returned event verbatim. Do not paraphrase,
truncate descriptions, add fields, or fabricate id.vss vlm run directly. Do not ask
first, and do not offer to deploy LVS.lvs profile, reachable through the origin recorded by vss configure.curl for the readiness probe only, and jq for reading CLI JSON. Capture
stdout before piping it, or use set -o pipefail. Exit codes and the common
CLI rules live in the repository root AGENTS.md.vss-lvs; Kubernetes: deploy must mint a URL the LVS pod can fetch).vss CLI on PATH. The OpenClaw and Hermes harness images ship it; anywhere else, install it from the same checkout as this skill so the CLI and the skill match: uv tool install <checkout>/libs/vss/cli.vss summarize run --help >/dev/null || exit 1
vss configure showvss configure show fails when nothing is recorded. Then the only setup is
vss configure --base-url "${VSS_PUBLIC_URL}", with the ingress origin the
operator gave you. If VSS_PUBLIC_URL is unset, stop and ask for that origin;
do not substitute HOST_IP, localhost, or a port.
Configure against the ingress origin, never :38111 — that LVS container port
exposes no Elasticsearch, so a deployment recorded from it cannot persist.
The vss-build-vision-ai skill can deploy the profile.
vss summarize run per recorded segment, with no automatic retry.Every URL the recorded-video workflow and a direct API question touch is one
vss configure recorded. Read it from vss configure show; never assemble it
from VSS_PUBLIC_URL, HOST_IP, or a port (the one exception is the Stage 2
rewrite of a loopback media_url host to the host's routable IP), and ignore leftover LVS_BACKEND_URL / VLM_BASE_URL /
RTVI_VLM_BASE_URL. Do not use kubectl port-forward, Service DNS, NodePorts,
docker exec, or docker inspect, and do not scan ports or configuration
files for an endpoint.
| Service | Recorded as | Called by the workflow |
|---|---|---|
| LVS | services.lvs.url (the /lvs mount) | only GET …/v1/ready, the readiness probe; vss summarize run resolves the rest |
| VLM / RT-VLM | services.rt_vlm.url (the /rtvi-vlm mount) | only GET …/v1/models, a reachability check in the same probe; vss vlm run resolves the rest |
The readiness probe is the only direct HTTP the workflow makes, and it exists because the CLI
has no readiness verb: vss configure records LVS on liveness (/lvs/v1/live),
while routing needs HTTP 200 from /v1/ready. It is not a fallback. When a
vss command fails, report that failure; never repeat the work with curl
against /v1/summarize or /v1/chat/completions.
Do not treat the origin's /openapi.json as the LVS schema; on stock Ingress
that path is the Agent's.
Probe LVS /v1/ready using the loop in the end-to-end reference. Readiness is
the HTTP status only: retry 503 warmup responses for about 30 seconds, and do
not inspect the body. No recorded lvs service counts as not ready.
| LVS result | Action |
|---|---|
| HTTP 200 | Use LVS for every video duration. |
| Anything else | Use the VLM fallback (vss vlm run) without asking. |
Load the end-to-end and CLI references. Run the LVS readiness probe before preparing the clip.
The summarization model needs no discovery: vss configure recorded the id LVS
reports serving, and vss summarize run defaults to it on both Docker and
Kubernetes. The VLM fallback needs none either: vss vlm run defaults to the
model the deployment's RT-VLM reports. Pass --model only when the caller
named one, and read the recorded value from vss configure show when it has to
be reported.
A non-200 LVS readiness result after warmup is the only unavailability signal. An empty summary, empty events, missing optional fields, or empty readiness stdout must not trigger fallback.
Use the vss CLI for every step; no VIOS REST calls, and do not invoke a
separate skill.
vss vios list --sensor <stem>; reuse the recording when present. VIOS names an uploaded sensor by
its filename stem.vss vios add <file>. It
waits for the timeline; its default timestamp is 2025-01-01T00:00:00.000Z.vss vios timeline --sensor <name>, then for each segment vss vios clip --sensor <name> --start-time <start> --end-time <end>. Always pass the
segment's bounds: a window may not span a gap, and an RTSP sensor has no
default window. Pass media_url to --url as returned, except that a
localhost / 127.0.0.1 host becomes the host's routable IP: vss-lvs
cannot fetch loopback and rejects it.warmed is false, stop and report it. warmed: true shows only that
the CLI host fetched the URL, not that LVS can.Require the exact recording, full timeline, and fresh clip URL before continuing. When the source file is available, compare VIOS timeline duration with source duration.
If preparation fails, stop and report the missing prerequisite. Do not choose
an arbitrary /tmp video, alternate recording, local HTTP server, NvStreamer,
or RTSP source unless the user explicitly requested that source.
When LVS is selected, load the HITL reference and collect scenario, events,
and optional objects_of_interest before the summarize run.
When the caller explicitly says to run autonomously without prompting and asks for defaults or supplies no settings, use these values verbatim:
scenario="activity monitoring"
events=["notable activity"]This is the only HITL bypass. Do not infer defaults from filenames or sensor names. Mention defaults in the final response and offer a separate rerun with specific settings.
Load the CLI reference. vss summarize run issues the summarize request on both
Docker and Kubernetes, and persists only when static memory policy enables it.
Do not build a /v1/summarize payload by hand, and do not fetch
/openapi.json to construct one — the CLI owns the request shape,
vss configure owns the endpoint, and vss configure memory owns persistence.
Use the invocation in the end-to-end reference. It passes the fresh VIOS URL
from Stage 2, the exact HITL values from Stage 3, --chunk-duration 10, and
--seed 1; repeat --event per event and add --object-of-interest only when
the caller provided objects. Pass no endpoint flag.
Do not pass --persist or --memory-index; those per-request controls do not
exist. The standard workflow also does not pass --no-persist, so the
operator's configured persistence default applies. When persistence is enabled,
the record needs two values:
--video-id, required alongside --url. Use the recording's VIOS sensor
id — the sensor_id from Stage 2's vss vios clip output — never the
stream id. It becomes the record's sensor, which is what list --sensor-id
and time-windowed recall key on. Without --video-id the run exits 2 before
summarizing rather than after.--creation-time, the media's absolute start. LVS reports event times as
offsets into the clip unless this anchors them, and unified memory stores
instants — so without it the events cannot be written and the run degrades to
exit 6. For uploaded sample media use the same 2025-01-01T00:00:00.000Z
Stage 2 uploaded with.Do not pass --num-frames-per-chunk in the standard workflow. RT-VLM owns frame
sampling; unset fields are absent from the request, so the deployment's own
default applies.
The final line of stdout is one JSON object naming the job. Read that line and the exit code; the prose on stderr is a diagnostic, not the result. A call refused before a job exists prints no marker at all and stderr is the whole result — check stdout is non-empty before parsing it. Emptiness, not the exit code, is what says whether a job was created.
| exit | meaning | action |
|---|---|---|
| 0 | summarized; persistence followed configured policy | present the result and report persisted truthfully |
| 2 | a flag the CLI refused, before anything was submitted | fix the call, then run once |
| 2 | LVS rejected the request it was sent; the marker names a job closed as failed | report the failure with that job_id |
| 3 | LVS unreachable or returned 5xx | report it with the marker's job_id |
| 4 | deployment configuration is missing, or an explicit Markdown note lacks static sink configuration | no job, no marker — run the remediation command from stderr |
| 6 | summary produced; Elasticsearch or Markdown cache write failed | present the summary; report ES and Markdown outcomes separately |
| 7 | timed out | reconcile with vss summarize get --job-id; do not re-run |
Exits 6 and 7 both mean the summarization already happened. Never repeat the run
to obtain a different view of it, and never repeat it for diagnosis — a second
run requires a separate user request. The exit 2 that carries a marker is the
same story earlier: the request reached LVS and came back refused, so the one
submission this request had is spent and a corrected call belongs to a new
request. Once a job exists, every outcome names its job_id; use it rather than
re-running. A call refused before a job exists names
nothing, which is why empty stdout is the test.
The completion marker's persisted boolean is the authoritative Elasticsearch
outcome. The result body includes persist only when persistence was attempted
and reports its index and event count; optional Markdown status is separate
under memory_note. record says what the job_id is worth to a later read:
closed, absent when policy skipped persistence, or stale when a submitted
record could not be closed. Do not read the record back to confirm it, and never
read Elasticsearch directly — recalling memory is a separate skill's job. The
one read that belongs here is reconciling an exit 7, whose outcome is genuinely
unknown until vss summarize get --job-id <job_id> answers.
If video_summary and events are empty, inspect the same payload's
summary.usage.total_chunks_processed. A positive integer confirms processing;
zero or missing means processing was not confirmed. Do not claim "no
detections."
Use the fallback when LVS remained unavailable after warmup; do not ask first.
Do not run LVS HITL, and never use fallback to repair or replace an LVS
response. Run one vss vlm run --sensor <name> --start-time <start> --end-time <end> per recorded segment from vss vios timeline --sensor <name>, with the
default prompt in the end-to-end reference. The CLI resolves the clip and the
model itself; do not call /v1/chat/completions by hand.
Before the result, include:
Note: Input video
<name>is<N>s long. The video summarization service is not deployed, so this summary was produced by the VLM alone with a generic default prompt. Deploy thelvsprofile for higher-quality summaries with scenario/events targeting.
A non-zero vss vlm run exit is the result to report; do not retry it.
Start with exactly one header:
Summary of <video_name> (<duration>)Use Ns below 60 seconds and Mm Ss otherwise.
For LVS, the CLI nests the service's own envelope under summary: parse the
JSON string in summary.choices[0].message.content while preserving
summary.usage. Render video_summary verbatim, followed by every event in
service order. Preserve every returned field and the full description; use a
per-event list if a table would truncate text.
Close with the job's identity: the job_id, the completion marker's
persisted value, and any separate memory_note result. An absent persist
object with persisted=false means static policy chose stdout-only execution,
not a failure.
For VLM, render choices[0].message.content verbatim. For Cosmos output, omit
the <think>...</think> block and show the answer. Do not add emojis or
re-voice either backend's content.
| Symptom | Action |
|---|---|
/v1/ready remains 503 | Treat LVS as unavailable after the warmup loop. |
| Readiness stdout is empty | Use the HTTP status; a 200 body may be empty. |
| Summary and events are empty | Inspect saved summary.usage.total_chunks_processed; do not retry. |
vss not found | Install it from this skill's checkout (uv tool install <checkout>/libs/vss/cli), or report the image problem. |
| Run exits 4 | Follow stderr: configure the deployment, or configure the Markdown sink requested explicitly. |
| Run exits 6 | A post-operation memory write failed. Present the summary and separate ES/Markdown status; do not re-run. |
| Run exits 7 | Timed out. vss summarize get --job-id <id>; do not re-run. |
VLM returns <think> | Remove reasoning through </think> when rendering. |
K8s /openapi.json looks like Agent | Expected — do not use it as LVS schema. |
/models 404 / HTML | Probing the bare origin — use services.lvs.url + /models or services.rt_vlm.url + /v1/models from vss configure show. |
Use the debugging reference for deeper diagnostics and the deployment
reference for logs or configuration. The LVS image is a multi-arch manifest, so
LVS_TAG=3.3.0-rc2 is the x86/Jetson Thor default; use 3.3.0-rc2-sbsa on SBSA/DGX Spark/Grace. RT-VLM likewise needs a host-matched tag (3.3.0-26.08.2 on x86/Jetson Thor, 3.3.0-26.08.2-sbsa on SBSA/DGX Spark/Grace).
For direct API questions such as models, readiness, recommended configuration,
metrics, schemas, or 422 responses, use the API reference instead of the
recorded-video workflow, with services.lvs.url from vss configure show as
the base. /lvs is a Prefix mount, so everything LVS serves is public under it
— /v1/ready, /v1/summarize, /models, /metrics — where the previous
Exact-path Ingress published only readiness and summarize. A direct API
question is never a substitute for a failed vss command. For deployment,
restart, teardown, backend selection, or service logs, prefer
vss-build-vision-ai and use the deployment reference.
vss-build-vision-ai: deploy the lvs profile.vss-manage-video-io-storage: general VIOS administration outside this
ordered workflow.vss-search-archive: search archived video.vss-query-analytics: query stored incidents and events.vss-generate-video-report and vss-ask-video: hand off here for recordings of 120 s or longer.bump:3
© NVIDIA-AI-Blueprints, 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
SKILL.md and 14 other files (references, assets) in skills/operations/vss-summarize-video of NVIDIA-AI-Blueprints/video-search-and-summarization.
Open the folder on GitHubat commit fdb6a7a
Vss Summarize Video 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Vss Summarize Video this skillNVIDIA-AI-Blueprints/video-search-and-summarization | 1.9k | — | ~5.3k | Automated safety check: Warn | Apache-2.0 | |
| Contextpilot SavingsEfficientContext/ContextPilot | 141 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Context Compressionguanyang/open-agent-hub | 977 | 2 repos | ~4.6k | Automated safety check: Pass | MIT | |
| News Aggregator Skillcclank/news-aggregator-skill | 1.3k | — | ~2.1k | Automated safety check: Pass | None | |
| Memory Configzilliztech/memsearch | 2.7k | — | ~2.9k | Automated safety check: Pass | MIT | |
| Ideer Daily Paper ChatbotAI45Lab/iDeer | 416 | — | ~3k | Automated safety check: Notes | AGPL-3.0 |
EfficientContext/ContextPilot
A skill your agent uses when a user asks how many tokens (or how much context/cost) ContextPilot has saved, or wants a ContextPilot savings status/summary inside Hermes Agent — e.g.
guanyang/open-agent-hub
This skill should be used when long-running agent sessions need context compression, structured summarization, compaction, token-per-task optimization, or durable handoff summaries that preserve…
cclank/news-aggregator-skill
Comprehensive news aggregator that fetches, filters, and deeply analyzes real-time content from 44+ sources including Hacker News, Lobsters, Dev.to, GitHub, arXiv, Hugging Face Papers, AIHOT, TLDR…
zilliztech/memsearch
Diagnose and configure MemSearch memory behavior. An agent skill from zilliztech/memsearch.
AI45Lab/iDeer
Use iDeer as a daily paper-reading workflow for chatbot-first users such as Codex, Gemini, or ChatGPT.
deepgram/deepgram-js-sdk
A skill your agent uses when writing or reviewing JavaScript/TypeScript in this repo that calls Deepgram Text Intelligence / Read (/v1/read) for sentiment, summarization, topic detection, and intent…
NVIDIA-AI-Blueprints/video-search-and-summarization
Measure retrieval quality and latency of a deployed VSS search profile by ingesting a labelled dataset and running the vss CLI across retrieval paths.
NVIDIA-AI-Blueprints/video-search-and-summarization
A skill your agent uses when a user wants to search archived VSS video that is already registered in a configured deployment — by natural-language, similarity, attribute, object-ID, or lexical tag…
NVIDIA-AI-Blueprints/video-search-and-summarization
Plan, run, and diagnose reproducible RT-VLM GPU performance canaries and benchmarks.
NVIDIA-AI-Blueprints/video-search-and-summarization
Add agent-ready vision capabilities — dense captioning, detection, search, alerting, summarization — to an agent or application through a customizable, self-contained vision stack built on the…
NVIDIA-AI-Blueprints/video-search-and-summarization
Measure whether an RT-VLM configuration change altered caption quality — capture paired baseline and candidate captions for a set of videos, score both against a ground truth with an LLM judge, and…
NVIDIA-AI-Blueprints/video-search-and-summarization
A skill your agent uses when adding, debugging, or validating a bring-your-own VLM in VSS RT-VLM, including custom Hugging Face or NGC checkpoints, vLLM adapters or plugins, model shims, and…
Categories
A skill your agent uses when summarizing a recorded video through HITL-gated LVS, falling back to vss vlm run when LVS is not ready. Vss Summarize Video is an agent skill from NVIDIA-AI-Blueprints/video-search-and-summarization. Use when summarizing a recorded video through HITL-gated LVS, falling back to vss vlm run when LVS is not ready.
Vss Summarize Video fits situations like: summarizing a recorded video through HITL-gated LVS; falling back to vss vlm run when LVS is not ready.
Run `npx skills add NVIDIA-AI-Blueprints/video-search-and-summarization --skill vss-summarize-video -a claude-code`. Or copy the skill folder (skills/operations/vss-summarize-video in NVIDIA-AI-Blueprints/video-search-and-summarization) into .claude/skills/vss-summarize-video in your project. Claude Code loads it when a task matches its description.
Run `npx skills add NVIDIA-AI-Blueprints/video-search-and-summarization --skill vss-summarize-video -a codex`. Or copy the skill folder (skills/operations/vss-summarize-video in NVIDIA-AI-Blueprints/video-search-and-summarization) into .agents/skills/vss-summarize-video in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add NVIDIA-AI-Blueprints/video-search-and-summarization --skill vss-summarize-video -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/vss-summarize-video, .gemini/skills/vss-summarize-video, .github/skills/vss-summarize-video and .opencode/skills/vss-summarize-video in your project.
Going by SKILL.md and its folder, Vss Summarize Video needs the command-line tools its instructions call (uv, docker and kubectl). Our summary lists: Docker.
SKILL.md contains no URLs. Its commands use uv and docker, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md flagged 1 warning(s): contains instruction-override wording (e.g. “without asking the user”). Read the flagged lines before installing; the check is not a guarantee either way.
Vss Summarize Video 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.
About 5.3k tokens (SKILL.md is roughly 21k 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 20k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Vss Summarize Video: Contextpilot Savings (EfficientContext/ContextPilot, 141 stars), Context Compression (guanyang/open-agent-hub, 977 stars), News Aggregator Skill (cclank/news-aggregator-skill, 1.3k stars) and Memory Config (zilliztech/memsearch, 2.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
NVIDIA-AI-Blueprints (a GitHub organization) maintains it in NVIDIA-AI-Blueprints/video-search-and-summarization, which has 1,919 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on October 10, 2026.
Source: NVIDIA-AI-Blueprints/video-search-and-summarization on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.