Build Holoscan SDK from source via the in-tree ./run script. Use only when published packages don't meet the user's needs.
npx skills add https://github.com/NVIDIA/skills --skill holoscan-install-source
Build the Holoscan SDK from the nvidia-holoscan/holoscan-sdk source tree using its ./run script (which builds inside a Docker container), producing a local install tree consumable as a CMake dependency.
nvidia-smi).git, Docker with NVIDIA Container Toolkit (docker run --gpus all works), and docker-buildx-plugin../run script builds inside a container; this is not a true bare-metal build.qemu-user-static on the host.Always fetch the "Build from Source" section of https://docs.nvidia.com/holoscan/sdk-user-guide/sdk_installation.html (and the linked GitHub README.md / DEVELOP.md for the chosen tag) before building. Extract: required ./run flags for the target architecture and CUDA major, supported branches/tags, any Dockerfile patches called out for the release, and the test names recommended for verification. If the doc disagrees with anything below, the doc wins.
Check that git and Docker (with GPU passthrough) are available:
git --version
docker --version
docker run --rm --gpus all ubuntu:22.04 nvidia-smi
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
| sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
| sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker && sudo systemctl restart docker
sudo apt-get install docker-buildx-pluginClone repo to ~/holoscan/holoscan-sdk if needed
mkdir -p ~/holoscan/
git clone https://github.com/nvidia-holoscan/holoscan-sdk.git
cd ~/holoscan/holoscan-sdk
To build a specific release tag (recommended for stability):
git tag | grep -E '^v[0-9]' | sort -V | tail -5 # list recent tags
git checkout v<VERSION> # e.g. v4.1.0
The ./run build script handles container creation, CMake configuration, compilation, and install in one step. Warn the user this takes 10–30 minutes on first run (downloads base image + compiles).
./run build
Common options:
| Flag | Purpose |
|------|---------|
| --type debug | Debug build (symbols, no optimization) |
| --type RelWithDebInfo | Release + debug symbols |
| --arch aarch64 | Cross-compile for ARM64 (needs sudo apt install qemu-user-static) |
| --gpu igpu | iGPU build for Jetson/IGX |
| --dryrun | Preview commands without executing |
If CMake cache errors occur after changing options:
./run clear_cache && ./run build
Output lands in these folders, and can be retrieved with ./run get_build_dir and ./run get_install_dir
build-cu<N>-<arch>/install-cu<N>-<arch>/.Run the following tests
./run test
To run all six required tests at once, use a single-quoted regex (the | must be quoted to prevent bash from treating it as a pipe):
./run test --options "-R 'EXAMPLE_CPP_HELLO_WORLD_TEST|EXAMPLE_PYTHON_HELLO_WORLD_TEST|EXAMPLE_CPP_TENSOR_INTEROP_TEST|EXAMPLE_PYTHON_TENSOR_INTEROP_TEST|EXAMPLE_CPP_VIDEO_REPLAYER_TEST|EXAMPLE_PYTHON_VIDEO_REPLAYER_TEST' --output-on-failure"
Run a specific test by name or regex:
./run test --name <test_name>
./run test --options "-R '<regex>' --output-on-failure"
./run test --verbose
Important: Always single-quote the regex string when it contains | — without quotes, bash interprets | as a pipe and the command fails with command not found.
Expected: all tests pass. Note any failures and report them to the user before continuing.
Once built, applications can use the install tree as a CMake dependency. Give the user this path:
/path/to/holoscan-sdk/install-cu<N>-<arch>/
They can set Holoscan_ROOT or CMAKE_PREFIX_PATH to this directory when building their own applications.
| Symptom | Fix |
|---------|-----|
| bash: <TEST_NAME>: command not found when running tests | The regex contains \| — wrap it in single quotes: --options "-R '<regex>'" |
| CMake cache errors after option change | ./run clear_cache && ./run build |
| Docker buildx not found | sudo apt-get install docker-buildx-plugin |
| GPU not visible inside build container | Verify NVIDIA Container Toolkit and re-run sudo nvidia-ctk runtime configure --runtime=docker |
| Cross-compile fails (aarch64) | Install qemu: sudo apt-get install qemu-user-static |
Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).
Automatically creates user-facing changelogs from git commits by analyzing commit history, categorizing changes, and transforming technical commits into clear, customer-friendly release notes. Turns hours of manual changelog writing into minutes of automated generation.
Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for merge, PR, or cleanup
Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).
React Native and Expo best practices for building performant mobile apps. Use when building React Native components, optimizing list performance, implementing animations, or working with native modules. Triggers on tasks involving React Native, Expo, mobile performance, or native platform APIs.
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.
Next.js best practices - file conventions, RSC boundaries, data patterns, async APIs, metadata, error handling, route handlers, image/font optimization, bundling
Use when starting feature work that needs isolation from current workspace or before executing implementation plans - creates isolated git worktrees with smart directory selection and safety verification
Take nvidia/holoscan-install-source from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference apt, docker.
Without those the skill loads but fails at the first command.