
Holoscan Sensor Bridge Setup
OfficialFreeEfficiently configure and launch your Holoscan Sensor Bridge demo.
Free · Opens the source repo
What Holoscan Sensor Bridge Setup does
The Holoscan Sensor Bridge Setup skill is designed for developers and engineers looking to establish a complete demo environment for the NVIDIA Holoscan Sensor Bridge. This skill guides users through a series of structured phases, ensuring that all necessary configurations and setups are completed before launching the demo container. It provides a step-by-step interactive experience, prompting users for confirmations and input as needed, which helps prevent errors during the setup process.
To begin, users must ensure that their environment variables are correctly set, including remote devkit login details and the working directory. The skill checks for these variables and prompts the user if any are missing. Following this, it presents a clear phase plan to the user, outlining the steps involved in the setup process. This transparency allows users to understand what actions will be taken and to confirm their readiness before proceeding.
The skill also includes a mandatory token-budget preflight check to ensure that users have sufficient resources for the entire setup. This feature is crucial for avoiding interruptions during the process. Once the setup begins, the skill verifies the platform, clones the necessary repository, and builds the demo container while ensuring that the host environment is configured correctly according to the user guide. Connectivity to the sensor bridge is verified by pinging the appropriate IP address, and any issues encountered are reported back to the user with suggested resolutions.
Overall, this skill is tailored for users who are setting up the Holoscan Sensor Bridge for the first time or those needing to reconfigure their environment. Its structured approach minimizes the risk of errors and enhances the overall user experience by providing clear instructions and feedback throughout the setup process.
When to use it
Use this skill when you need to set up the Holoscan Sensor Bridge demo environment from scratch or reconfigure an existing setup.
When not to use it
This skill is not suitable for users who are not working with the Holoscan Sensor Bridge or those who require a different setup process not covered by this skill.
What you can build with it
First-time Setup
Use this skill to guide you through the initial setup of the Holoscan Sensor Bridge, ensuring all configurations are correct.
Reconfiguring Existing Setup
If you need to update or reconfigure your existing Holoscan Sensor Bridge environment, this skill provides a structured approach.
Connectivity Verification
Quickly verify connectivity to the Holoscan Sensor Bridge after making changes to your setup using this skill.
How to install Holoscan Sensor Bridge Setup
View source1. Install with the skills CLI
npx skills add nvidia/skills/hsb-setup --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by nvidiaHoloscan Sensor Bridge demo bring-up
Use this skill when the user wants to bring up the Holoscan Sensor Bridge demo environment end to end.
This workflow has side effects. Never run it automatically. Only run it when the user explicitly invokes it.
Before you start — required gates (do these first, in order)
Gate 1 — Read environment variables. Before doing anything else, check these variables and print their resolved values to the user:
SSH_TARGET Remote devkit login (e.g. nvidia@192.168.1.50). Ask the user if not set.
REMOTE_ROOT Remote working directory (e.g. /home/nvidia). Ask the user if not set.
REMOTE_SUDO sudo / sudo -n / "" — default to "sudo" if not set.
REMOTE_SSH_OPTS Additional SSH options (optional).
HSB_PLATFORM Platform hint — may be empty; will detect from hardware.
HSB_REPO Custom repo URL — defaults to https://github.com/nvidia-holoscan/holoscan-sensor-bridge.git
SSH_TARGET and REMOTE_ROOT are required. Stop and ask the user for them if either is missing.
Gate 2 — Present the phase plan. Before taking any action, show the user this exact plan and wait for acknowledgement:
HSB Setup — Phase Plan
Phase 0: Token-budget preflight
Phase 1: Confirm platform, set up SSH, clone repo, study user guide
Phase 2: Host prerequisite checks and network setup
Phase 3: Native CLI build (AGX Thor only — skipped for other platforms)
Phase 4: Build demo container, run it, ping 192.168.0.2, verify FPGA version
Phase 5: Issues report (with option to save)
Phase 6: Stop apps, exit container, hand control back to user
Gate 3 — Token-budget preflight (Phase 0). Run this before any SSH connection or devkit change. See ## Token-budget preflight section for the full procedure. Do not proceed to Phase 1 until the budget check passes.
Instructions
Invoke this skill by typing /hsb-setup [PLATFORM] [OPTIONS]. The skill walks through each phase interactively, prompting for confirmation before making changes.
What this skill must do
- Run the mandatory token-budget preflight before any remote command or devkit configuration change. Estimate the tokens needed to complete all setup phases, check the user's remaining subscription-plan usage with the best available Claude Code/account usage mechanism, display the estimate and result to the user, and stop if the available budget is insufficient or cannot be verified.
- prompt the user to confirm that the devkit is connected to the holoscan sensor bridge and everything is powered up and there is an active network connection to the outside world and that the devkit was installed with the proper OS version. if all profile parameters are known look into the repo user guide and draw a diagram of the devkit to sensor for the user to confirm that this is the setup they have.
- Once the user confirms the setup is ready, build the ssh connection to the devkit if the user is running the claude skill from an external computer. you can skip this step if claude installed directly on the devkit.
- Verify the host devkit platform by running
cat /sys/class/dmi/id/product_nameon the devkit and comparing the result to theHSB_PLATFORMenvironment variable using the product-name-to-platform mapping (see "Host platform auto-detection" section). If the command returns a recognized non-empty platform name that differs fromHSB_PLATFORM, or ifHSB_PLATFORMis empty, updateHSB_PLATFORMto match the detected platform and alert the user about the change. If the command returns empty or fails andHSB_PLATFORMis already set, keep the existing value. - Clone or refresh the GitHub repository from the latest
mainbranch. By default this is the publicnvidia-holoscan/holoscan-sensor-bridgerepo, but the user can override it with a custom repo URL via theHSB_REPOenvironment variable or the--repo <URL>command-line flag. if the repo is an ssh repo, alert the user if no ssh key is set and provide instructions how to set up the ssh key. - Ask the user which devkit/platform they want to use if it is not already clear.
- under the cloned repo root dir, study and understand the user guide at docs/user_guide to learn how to set up host environment for each devkit and OS, demo container, running applications inside and outside the container (where applicable) and flashing the FPGA.
- Map that platform to the correct host setup and container build mode and make sure host set up is configured properly per user guide instructions, fix and add any missing configuration or prompt the user with instruction how to fix.
- Build the demo container.
- Run the demo container.
- Verify connectivity to the board at
192.168.0.2. if the connection to the board fails, prompt the user for a possiblity of a different ip address. - Verify the FPGA version reading register 0x80. if the FPGA version on the sensor does not match the hsb host software that is on the devkit, suggest the user to use the hsb-flash-skill to flash the board to the proper FPGA version.
- Report progress in phases, explain failures clearly, and attempt safe fixes before giving up.
- For every issue encountered, create a report that specifies what was the issue and how you overcame it.
- Allow the user an option to export the final report to an md file.
- once you are done setup, stop any running apps and exit the container giving up control on the devkit to the user at repo home directory on terminal window.
Supported platforms and build mapping
Use the following mapping unless the repository or current docs in the working tree clearly say otherwise:
- IGX Orin with dGPU OS/configuration → build with
sh docker/build.sh --dgpu - IGX Orin iGPU → build with
sh docker/build.sh --igpu - AGX Orin → build with
sh docker/build.sh --igpu - AGX Thor → build with
sh docker/build.sh --igpu - DGX Spark → build with
sh docker/build.sh --igpu
If the user says only “IGX Orin”, explicitly ask whether it is iGPU or dGPU OS/configuration.
Host platform auto-detection
During Phase 1 (after SSH is established or when running locally), verify the actual devkit hardware by reading the DMI product name and comparing it to the HSB_PLATFORM environment variable.
Product-name-to-platform mapping
The following table maps known /sys/class/dmi/id/product_name values to supported HSB_PLATFORM values. Match using case-insensitive substring search — the product name may contain additional text (e.g., "Developer Kit", revision numbers).
product_name contains (case-insensitive) | Mapped HSB_PLATFORM | Notes |
|---|---|---|
IGX Orin | IGX Orin | Still need to ask iGPU vs dGPU if not already known |
AGX Orin | AGX Orin | |
AGX Thor | AGX Thor | |
DGX Spark | DGX Spark |
If the product name does not match any known pattern, treat it as unrecognized and fall through to the manual platform question in step 5.
Detection and reconciliation logic
Run the following on the devkit (inside the Phase 1 SSH heredoc or locally):
DETECTED_PRODUCT=""
if [ -f /sys/class/dmi/id/product_name ]; then
DETECTED_PRODUCT=$(cat /sys/class/dmi/id/product_name 2>/dev/null | tr -d '\n')
fi
DETECTED_PLATFORM=""
if echo "$DETECTED_PRODUCT" | grep -qi "IGX Orin"; then
DETECTED_PLATFORM="IGX Orin"
elif echo "$DETECTED_PRODUCT" | grep -qi "AGX Orin"; then
DETECTED_PLATFORM="AGX Orin"
elif echo "$DETECTED_PRODUCT" | grep -qi "AGX Thor"; then
DETECTED_PLATFORM="AGX Thor"
elif echo "$DETECTED_PRODUCT" | grep -qi "DGX Spark"; then
DETECTED_PLATFORM="DGX Spark"
fi
echo "DETECTED_PRODUCT=$DETECTED_PRODUCT"
echo "DETECTED_PLATFORM=$DETECTED_PLATFORM"
echo "HSB_PLATFORM=${HSB_PLATFORM:-}"
After collecting the output, apply the following reconciliation rules:
-
DETECTED_PLATFORMis non-empty andHSB_PLATFORMis empty → setHSB_PLATFORMtoDETECTED_PLATFORM. Alert the user:Platform auto-detected from hardware: <DETECTED_PLATFORM> (product_name: <DETECTED_PRODUCT>). HSB_PLATFORM was not set — updating to "<DETECTED_PLATFORM>". -
DETECTED_PLATFORMis non-empty and differs fromHSB_PLATFORM→ overrideHSB_PLATFORMwithDETECTED_PLATFORM. Alert the user:WARNING: Hardware reports "<DETECTED_PLATFORM>" (product_name: <DETECTED_PRODUCT>), but HSB_PLATFORM was set to "<HSB_PLATFORM>". Updating HSB_PLATFORM to match the detected hardware: "<DETECTED_PLATFORM>". -
DETECTED_PLATFORMis non-empty and matchesHSB_PLATFORM→ no change needed. Confirm:Platform verified: <HSB_PLATFORM> matches hardware (product_name: <DETECTED_PRODUCT>). -
DETECTED_PLATFORMis empty (file missing, unreadable, or unrecognized product name) andHSB_PLATFORMis set → keep the existingHSB_PLATFORM. Warn:Could not auto-detect platform from hardware (product_name: "<DETECTED_PRODUCT>"). Keeping existing HSB_PLATFORM: "<HSB_PLATFORM>". -
Both
DETECTED_PLATFORMandHSB_PLATFORMare empty → fall through to the manual platform question in step 5.
After reconciliation, persist the updated HSB_PLATFORM in the remote session state file so subsequent phases use the correct value.
Linux/Windows-friendly wrapper variables
When this skill is used from Linux/Windows with a local Claude Code session that shells out to SSH, prefer these environment variables when present:
SSH_TARGETfor the remote login target such asnvidia@agx-thor-hostREMOTE_ROOTfor the remote working directory where the repo should liveREMOTE_SUDOfor privileged commands. Acceptsudo,sudo -n, or empty stringREMOTE_SSH_OPTSfor additional SSH optionsHSB_PLATFORMas an optional platform hintHSB_REPOfor a custom GitHub repository URL to clone (e.g.https://github.com/myorg/my-hsb-fork.git). If not set, defaults tohttps://github.com/nvidia-holoscan/holoscan-sensor-bridge.git
If these are set, notify the user of these settings and use them without re-asking unless the user explicitly overrides them.
Before Phase 1, print the resolved remote execution settings you will use, with secrets redacted if needed.
Mandatory interaction pattern
Present the phase plan from Gate 2 above before making any changes. Skip Phase 3 for non-Thor platforms.
Then execute one phase at a time.
After each non-final phase (Phases 0–5):
- Show a phase summary. The detail level depends on
--verbosemode (see "Verbosity mode" section):- Verbose: full output + detailed status block (phase name, what ran, result, next action).
- Concise (default): bullet-point summary with issues highlighted.
- Prompt the user with
Proceed to Phase <N+1>? [Y/n]while specifing what is phase N+1 and wait for confirmation before continuing (see "Phase gate" section).
If something fails, do not just dump raw logs. Summarize:
- the exact command that failed
- the likely root cause
- what safe repair you will try next
- whether the repair succeeded
Token-budget preflight
Phase 0 - token-budget preflight
This phase is mandatory and must run before any SSH connection, repo clone, package/configuration check, container build, reboot, or devkit setting change.
-
Estimate the full-run token budget for the entire setup workflow, not just the next phase. The values below are conservative heuristics, not measured historical usage. Treat them as initial safety budgets and refine them from actual
/hsb-setuprun logs once measured token usage is available:- Reserve at least 280,000 tokens for a complete setup run on IGX Orin, AGX Orin, or DGX Spark.
- Reserve at least 340,000 tokens for AGX Thor because native build and SIPL/FuSa checks add more phases and troubleshooting.
- Add 60,000 tokens when
--verbose, custom repo handling, SSH key remediation, reboot recovery, or extra troubleshooting is expected. - Use the larger estimate if the platform is not yet known.
-
Check remaining usage using the best available Claude Code/account usage source for the current subscription plan. Prefer machine-readable or product-provided usage data when available. If no reliable usage source is available, ask the user to provide their current remaining usage/quota from the Claude Code account or plan UI.
When asking the user because usage cannot be self-verified, present the options in this exact order so the safe stop choices appear first:
- I can't verify — stop: The user cannot determine remaining usage. Stop before Phase 1.
- I have < {estimate} available — stop: The user checked their plan/account UI and confirms less than the estimated budget remains. Stop before Phase 1.
- I have ≥ {estimate} available — proceed: The user checked their plan/account UI and confirms at least the estimated budget remains. Proceed to Phase 1.
- Type something: Treat as a question or free-form instruction, answer it, then re-prompt with the same ordered options.
Do not put the proceed option first. The user must intentionally move past the stop choices before selecting proceed.
-
Display the result to the user before continuing:
Token-budget preflight - Estimated tokens required for complete /hsb-setup run: <estimate> - Estimate basis: conservative heuristic; refine from actual run logs when available - Safety margin included: <margin> - Remaining plan usage available: <available or "unverified"> - Result: PASS / FAIL -
Stop on insufficient or unverifiable budget:
- If remaining usage is lower than the estimate, stop before Phase 1 and explain that the skill is refusing to start because it may run out of tokens while modifying devkit settings.
- If remaining usage cannot be verified, stop before Phase 1 and ask the user to start a fresh session, upgrade/refresh usage, or provide verifiable remaining usage.
--ymust not bypass this preflight.
Platform questions to ask when missing
Ask only the minimum required questions:
- Which platform are you using?
- IGX Orin iGPU
- IGX Orin dGPU
- AGX Orin
- AGX Thor
- DGX Spark
- Is the HSB board already physically connected and powered on?
- Are you okay with commands that require
sudofor network and Docker setup?
If the user already provided any of these, do not ask again.
Available Scripts
| Script | Purpose | Arguments |
|---|---|---|
scripts/hsb_phase_runner.sh | Structured shell execution with timestamped logs per phase | <phase_name> <command> |
Use run_script(scripts/hsb_phase_runner.sh, <phase_name>, <command>) to run phase steps with automatic logging.
Phase details
See references/phase-details.md for full step-by-step phase instructions, output style, verbosity behavior, auto-approve mode, phase gate rules, and the persistent SSH session model.
Recovery playbook
Try these fixes in order when applicable:
- Re-run the failing command once if the failure looks transient.
- Fix missing prerequisites (
git-lfs, Docker access,xhost, network route). - Refresh repo state and LFS content.
- Re-run only the failed phase, not the whole workflow.
- If still blocked, stop with a concise diagnosis and a copy-paste command list for the user.
Supporting files in this skill
- See docs/platform-mapping.md for the authoritative build and host-setup summary used by this skill.
- See docs/failure-playbook.md for common remediation logic.
- Use scripts/hsb_phase_runner.sh as a helper when you want structured shell execution and timestamped logs.
Built-in help (--help)
If $ARGUMENTS contains --help or -h, do not run the workflow. Instead, print the following help text verbatim and stop:
Holoscan Sensor Bridge — Demo Bring-Up Skill
USAGE
/hsb-setup [PLATFORM] [OPTIONS]
PLATFORM (optional — will prompt if omitted)
AGX Orin NVIDIA Jetson AGX Orin (iGPU, build with --igpu)
AGX Thor NVIDIA Jetson AGX Thor (iGPU, build with --igpu)
IGX Orin iGPU NVIDIA IGX Orin in iGPU configuration (build with --igpu)
IGX Orin dGPU NVIDIA IGX Orin with discrete GPU (build with --dgpu)
DGX Spark NVIDIA DGX Spark (iGPU, build with --igpu)
OPTIONS
--help, -h Show this help message and exit
--verbose Show full raw command output for every phase
(default is concise bullet-point summaries)
--y Auto-approve all phase gates (skip user confirmation
between phases). Not recommended — a confirmation
warning is shown before proceeding. All output is
saved to a timestamped log file.
--repo <URL> Clone a custom GitHub repo instead of the default
nvidia-holoscan/holoscan-sensor-bridge.
Can also be set via the HSB_REPO env var.
Priority: --repo flag > HSB_REPO env var > default repo
ENVIRONMENT VARIABLES (set before invoking the skill)
SSH_TARGET Remote login target (e.g. ubuntu@10.0.0.1)
REMOTE_ROOT Remote working directory for repo clone and builds
REMOTE_SUDO Privilege escalation: 'sudo', 'sudo -n', or ''
REMOTE_SSH_OPTS Additional SSH options (e.g. -o ServerAliveInterval=30)
HSB_PLATFORM Platform hint (same values as PLATFORM above)
HSB_REPO Custom GitHub repo URL (overridden by --repo flag)
WORKFLOW PHASES
Phase 0 Token-budget preflight; verify enough plan usage for a full run
Phase 1 Confirm platform, clone repo, and study user guide
Phase 2 Host prerequisite checks and network setup
Phase 3 Native build of CLI tools (AGX Thor only, skipped otherwise)
Phase 4 Build, run demo container, and verify connectivity
Phase 5 Produce issues report, optionally export to file
Phase 6 Stop apps, exit container, hand off to user
The skill prompts for confirmation between each phase.
EXAMPLES
/hsb-setup AGX Thor
/hsb-setup AGX Thor --verbose
/hsb-setup AGX Thor --y
/hsb-setup IGX Orin dGPU --repo https://github.com/myorg/my-fork.git
/hsb-setup --help
After printing the help text, do not proceed with any phases or ask any questions.
See the EXAMPLES section in Built-in help (--help) for invocation examples.
When $ARGUMENTS contains a platform, use it instead of asking again. Strip --verbose, --y, --repo <URL>, and --help from the arguments before parsing the platform name.
Frequently asked questions about Holoscan Sensor Bridge Setup
Similar skills
Turborepo
Optimized build system for JavaScript/TypeScript monorepos.
Azure Pipelines Validation
Streamline your Azure DevOps pipeline changes locally.
Azure Developer CLI
Streamline your Azure project workflows with best practices.
Azure Container Registry CLI
Manage Azure Container Registry resources with ease.
Aspire
Build and orchestrate polyglot distributed applications seamlessly.
Vercel CLI
Manage and deploy Vercel projects from the command line.
