Install the "jetson-build-source" agent skill from https://github.com/NVIDIA/skills/tree/main/skills/jetson-build-source into .claude/skills/jetson-build-source/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jetson-build-source", 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.
Type 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.
skills CLI
$ npx skills add NVIDIA/skills --skill jetson-build-source -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "jetson-build-source" agent skill from https://github.com/NVIDIA/skills/tree/main/skills/jetson-build-source into .agents/skills/jetson-build-source/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jetson-build-source", 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.
skills CLI
$ npx skills add NVIDIA/skills --skill jetson-build-source -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "jetson-build-source" agent skill from https://github.com/NVIDIA/skills/tree/main/skills/jetson-build-source into .cursor/skills/jetson-build-source/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jetson-build-source", 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.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add NVIDIA/skills --skill jetson-build-source -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "jetson-build-source" agent skill from https://github.com/NVIDIA/skills/tree/main/skills/jetson-build-source into .gemini/skills/jetson-build-source/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jetson-build-source", 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.
Installs 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).
skills CLI
$ npx skills add NVIDIA/skills --skill jetson-build-source -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "jetson-build-source" agent skill from https://github.com/NVIDIA/skills/tree/main/skills/jetson-build-source into .github/skills/jetson-build-source/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jetson-build-source", 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.
skills CLI
$ npx skills add NVIDIA/skills --skill jetson-build-source -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "jetson-build-source" agent skill from https://github.com/NVIDIA/skills/tree/main/skills/jetson-build-source into .opencode/skills/jetson-build-source/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jetson-build-source", 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.
Facts
Skill name
jetson-build-source
GitHub stars
3.5k
Token cost
~5k tokens
SKILL.md length
1,870 words
Files
10 (incl. references)
Skills in repo
380
Repo updated
First seen
Licence
Apache-2.0
At a glance
A skill your agent uses when you need to rebuild the BSP overlay — DT, OOT modules, or kernel — from changes under bspsources/.
Works in 2 steps: Per-dir Makefile — append dtbo-y +=… → Carrier flash conf — append…
You need to rebuild the BSP overlay — DT
SKILL.md covers Purpose, Prerequisites, Overview and When to invoke, plus 5 more sections
Calls git, make and apt
What it does
Jetson Build Source is an agent skill from NVIDIA/skills, published by the product's own GitHub organization. Use when you need to rebuild the BSP overlay — DT, OOT modules, or kernel — from changes under bspsources/. Triggers: build bsp, rebuild dtb, rebuild kernel.
Its SKILL.md is about 5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 11 other files, including reference files (for example `BENCHMARK.md`, `evals/evals.json` and `references/build-modes.md`).
It sits in AI & LLM Engineering, covering GPU and accelerator computing. It works with NVIDIA AI Platform. The repository describes itself as: Agent Skills for NVIDIA products — install into Claude Code, Codex, and other coding agents to run Physical AI, robotics, simulation, CUDA, and RAG workflows end to end. The licence is Apache-2.0.
When your agent uses it
You need to rebuild the BSP overlay — DT
Kernel — from changes under bspsources/
Example prompts
“/jetson-build-source”
Workflow steps
2 steps, taken from the first numbered list in SKILL.md.
1Per-dir Makefile — append dtbo-y += .dtbo after the
Read from SKILL.md and the folder at commit 67a13c0. It shows what the files ask for, not the result of running them.
Tool permissions
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.
Runs code
Shell commands in SKILL.md call:
git
make
apt
From the folder's file list and the shell code blocks in SKILL.md.
Network
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Credentials
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Context cost
Jetson Build Source loads about 5k tokens when it runs, and up to ~12k if it reads all its reference files. Until then it costs about 45 tokens; SKILL.md has 1,870 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~45
When it runs· the whole SKILL.md, loaded when a task matches
~5k
With references· SKILL.md plus every file in references/, read only if the agent opens them
~12k
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.
Safety
Auto-check: notes
The automated check noted patterns worth knowing about, such as sudo or a known installer.
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.
Download SKILL.mdSave it as .claude/skills/jetson-build-source/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.
name
jetson-build-source
description
Use when you need to rebuild the BSP overlay — DT, OOT modules, or kernel — from changes under bsp_sources/. Triggers: build bsp, rebuild dtb, rebuild kernel.
version
0.0.1
license
Apache-2.0
argument-hint
dt | oot | kernel | full
metadata.data-classification
public
metadata.author
Jetson Team
metadata.team
pts
metadata.tags
bsp, build
metadata.domain
meta
Build BSP Source
Purpose
Rebuild the kernel-side artifacts (DTBs, OOT modules, in-tree
modules, kernel Image) implied by changes under
<source.root_path>/bsp_sources/, and write a manifest that
/jetson-promote-image reads to stage those outputs into the BSP
image. The skill never writes into <bsp_image.root_path> itself.
Prerequisites
Active target-platform profile with bsp_image: and
source.toolchain: resolved (run /jetson-init-image and
/jetson-init-source first).
<source.root_path>/bsp_sources/ populated with the kernel-side
checkout layout /jetson-init-source materializes.
<bsp_image.root_path>/Linux_for_Tegra/source/kernel_src_build_env.sh
present (extracted from public_sources.tbz2).
Cross-toolchain at ${source.toolchain}gcc resolvable on disk.
Overview
This skill is the Build stage of the workflow — see
../../context/bsp-customization-workflow.md
for where it sits in the Setup → Customize → Build → Deploy pipeline
and what triggers it. The skill takes source-side customization
commits, rebuilds the implied artifacts, and records which were
rebuilt in a manifest. Outputs stay in-tree under
<source.root_path>/bsp_sources/;
jetson-promote-image reads the
manifest at Deploy to copy each rebuilt artifact into the matching
path under <bsp_image.root_path>/Linux_for_Tegra/.
Overlay-only edits (nvpmodel.conf, nvfancontrol.conf, BPMP DTB)
skip Build — customize-* stages them directly to the overlay
tracker; BPMP DTB uses the dtc decompile → edit → recompile loop in
../../references/bsp-customization-bpmp-dtb.md.
Custom-overlay slot ownership. Kernel-DT customizations from
every customize-* skill collect into a single composite
tegra<soc>-<carrier-id-sku>+<module-id>-xxxx-custom.dts per
active target — see
../../references/bsp-customization-kernel-dtb.md
for the filename / location / append protocol. This skill is the
sole owner of the composite's per-dir Makefile registration
(dtbo-y += <name>.dtbo) and the carrier flash conf's
OVERLAY_DTB_FILE+= line (the "Register composite custom overlay" step).
Four build modes matched to the dirty-repo profile:
Mode
What's built
Auto-picks when
dt
NVIDIA DTBs only
only hardware/nvidia/* or kernel-devicetree dirty
oot
OOT modules (six repos)
only OOT repos dirty
kernel
Kernel Image + full in-tree .ko set + kernel-side dtbs
only kernel/$KERNEL_SRC_DIR dirty
full
Everything above + optional install consolidation
mixed dirty set
Mode selection: auto (default — invoke /jetson-build-source
with no argument) walks the dirty-repo set; force a specific mode
by passing it as the skill argument.
Design principle: delegate to upstream. Every build primitive
already exists in <bsp_image.root_path>/Linux_for_Tegra/source/
— the env file, top-level Makefile (nvidia-dtbs / modules /
modules_install), kernel Makefile (kernel / install). The
skill drives those primitives against
<source.root_path>/bsp_sources/ — never duplicates their
logic in shell.
When to invoke
Auto-chained at the end of a Customize customize-* invocation
whenever Customize committed to a kernel-side source repo.
Manual re-run via /jetson-build-source [<mode>] when:
the auto-chained build was interrupted,
source commits arrived via git pull from other users,
the user wants to force a rebuild without a fresh edit,
the user wants a specific mode (e.g. install consolidation for
a manual scp deploy to a DUT).
WORKSPACE=<parent of target-platform/>
BSP_SRC=<bsp_image.root_path>/Linux_for_Tegra/source # NVIDIA's build primitives
KS=<source.root_path>/bsp_sources # our kernel-side checkout
KOUT=<source.root_path>/.build/kernel-out # DT-mode out-of-tree build dir
STAGE=<source.root_path>/.build/install-stage # install consolidation (full mode / opt-in)
STATE=<source.root_path>/.build-state.yaml # per-repo watermark
MANIFEST=<source.root_path>/.build-manifest.yaml # rebuilt-artifact list for jetson-promote-image
Source the NVIDIA build env to inherit canonical names — never
hardcode kernel-noble, the OOT module list, or KERNEL_DEF_CONFIG:
bash
source "$BSP_SRC/kernel_src_build_env.sh"
# Now in scope: KERNEL_SRC_DIR (e.g. kernel-noble), KERNEL_DEF_CONFIG,
# OOT_SOURCE_LIST, kernel_name (e.g. noble), KERNEL_MODULAR_BUILD
Refuse if $KS/kernel/$KERNEL_SRC_DIR/ is missing or if any name
in $OOT_SOURCE_LIST is missing under $KS/. Route to
/jetson-init-source.
Resolve toolchain (read-only)
Read source.toolchain from the active profile (authored by
jetson-init-source). Validate:
bash
export ARCH=arm64
export CROSS_COMPILE=<source.toolchain> # trailing dash mandatory
[ -f "${CROSS_COMPILE}gcc" ] || refuse \
"source.toolchain points at ${CROSS_COMPILE}gcc which does not exist. Re-run /jetson-init-source."
A trailing dash on CROSS_COMPILE is mandatory — kbuild treats it
as a prefix (${CROSS_COMPILE}gcc); a missing dash breaks with
command not found. The [ -f ] check catches it before any
make runs.
This skill never prompts for the toolchain or attempts to
resolve a missing one — that's jetson-init-source's exclusive
responsibility. A missing field is a Setup gap; route there.
Verify build-host prerequisites once:
bash
for p in flex bison libssl-dev; do
dpkg -s "$p" >/dev/null 2>&1 || refuse "host package missing: $p"
done
for p in git build-essential bc zstd; do
dpkg -s "$p" >/dev/null 2>&1 || warn "host package missing: $p"
done
Detect dirty source repos
The watermark file $STATE records the last successfully built
commit per kernel-side repo. The repo list is derived at runtime
from OOT_SOURCE_LIST + kernel/$KERNEL_SRC_DIR. For each repo:
HEAD ≠ watermark → dirty; uncommitted edits (git diff --quiet
non-zero) → also dirty.
Branch-A note: when bsp_sources/ is one mono-repo with a
single .git, every canonical sub-path shares the same HEAD —
the watermark schema still keys per-sub-path and the dirty set
still works (any change anywhere flips every sub-path's HEAD).
If STATE is absent (first build), treat all repos as clean
unless the auto-chain context says "Customize just committed". If
DIRTY is empty and no mode argument was passed: report
"nothing to build" and return.
Pick build mode
Map the dirty set to a mode (auto), or honor the mode argument:
Dirty repos (auto)
Mode
Only hardware/nvidia/* or kernel-devicetree
dt
Only OOT subset of $OOT_SOURCE_LIST
oot
Only kernel/$KERNEL_SRC_DIR
kernel
Any mix spanning the above
full
Modes are union-able: full runs kernel → oot → dt in that
order (kernel produces headers OOT needs; nvidia-dtbs uses the
same generated headers). A manually passed mode argument skips
auto-detection.
Execute build
Common setup + per-mode build snippets
Common setup (validate orchestrator Makefiles, cd $KS) and the
exact make invocations for each mode (dt, oot, kernel,
full) plus the optional install consolidation pass live in
references/build-modes.md. Drive
the relevant mode's snippet against the bindings from the
"Resolve active target + paths + upstream env" step.
Register composite custom overlay (dt + full only)
Skip unless the selected mode is dt or full. The composite
overlay slot is documented in
../../references/bsp-customization-kernel-dtb.md;
this sub-step owns the build / Makefile / flash-conf side of it.
Resolve the composite path for the active target ($COMPOSITE_BASE,
$COMPOSITE_DTS, $COMPOSITE_MK) using the active profile's
chip family, carrier ID/SKU, and module ID — full snippet in
references/composite-registration.md.
Gate (symmetric).$COMPOSITE_DTS drives both directions:
present → apply the two idempotent patches below; absent → run the
cleanup pass
to strip any stale dtbo-y += / OVERLAY_DTB_FILE+= line from a
prior run. Either path keeps OVERLAY_DTB_FILE+= from referencing
an unbuilt .dtbo — the build-time enforcement of the
no-direct-in-tree-DT-edits rule.
Per-dir Makefile — append dtbo-y += <name>.dtbo after the
last literal-nameddtbo-y += entry. Inserting after the
$(old-dtbo) merge-back line skips the $(addprefix makefile-path/,…) prefix pass and the build silently drops
the composite. Commit to the bsp_sources/ mono-repo. Full
snippet + rationale:
references/composite-registration.md.
Carrier flash conf — append OVERLAY_DTB_FILE+=",<name>.dtbo"
with first-touch pristine import on the overlay tracker. On a
fresh workspace the tracker is empty git-init; import the
conf from bsp_image and commit as pristine:before the
customization commit (workflow contract). Full snippet:
references/composite-registration.md.
The composite's parent sub-repo flipping HEAD during a customize-*
append is what the "Detect dirty source repos" step's dirty detection consumes — no extra
bookkeeping needed here.
Walk the DIRTY set and emit a manifest entry per implied artifact,
following the trace-to-dirty policy — only artifacts traceable
to a dirty source repo. Promoting baseline-divergence noise would
attribute it to a customization's audit trail (forbidden).
The full source → kbuild → destination mapping, YAML schema, and
filter rules live in
references/manifest-schema.md.
Atomic write: stage to ${MANIFEST}.tmp, then mv -f.
Show full SKILL.md (780 more words)Show less
Update watermark + summary
On success, rewrite $STATE with the new per-repo HEADs, toolchain,
bsp_image.version, and last-run mode (schema in
references/manifest-schema.md).
Report:
Toolchain (from source.toolchain).
Build mode: <dt|oot|kernel|full> (auto-picked or forced by skill argument).
Consolidated install stage path (if the "Install consolidation" step ran).
Next step: /jetson-promote-image.
If a Customize skill triggered this run, prompt the user to re-issue
their original request.
Limitations
The top tier — failure modes that block a build or silently
produce wrong artifacts. See
references/long-tail-gotchas.md
for invariants, deploy patterns, and performance hints.
Toolchain resolution is jetson-init-source's job. This
skill only reads source.toolchain and exports CROSS_COMPILE.
Missing field → refuse and route, never resolve in-skill.
R36.x Branch-A $KS/Makefile collision. R36.x's
public_sources.tbz2 can leave the dGPU/OpenRM proprietary
Makefile at $KS/Makefile instead of the Tegra orchestrator;
its modules target recurses into kernel-open/ + src/nvidia/,
pulls host /lib/modules headers, and breaks arm64 cross-builds
with '-mlittle-endian' unrecognized. R38+ extractions are
unaffected. /jetson-init-source's step 3a is the primary defense
(extract-time); the "Common setup" check here is the safety net.
Don't relax the regex.
Kernel-DT changes: composite-overlay-only, split ownership.
Direct edits to in-tree .dts / .dtsi files under bsp_sources/
are forbidden for customize-* skills — every kernel-DT change
lands as a fragment in the composite overlay slot
(rule + rationale).
The composite .dtscontent is owned by each customize-*
skill; the build / Makefile / flash-conf registration is
owned by this skill (gated on the composite .dts existing — so
OVERLAY_DTB_FILE+= can't reference an unbuilt .dtbo).
the "Register composite custom overlay" step Makefile insertion point matters. Insert after
the last literal-nameddtbo-y += entry; inserting after
$(old-dtbo) skips the $(addprefix makefile-path/,…) prefix
pass and the build silently drops your .dtbo. The regex
^dtbo-y *+= *[a-zA-Z0-9] filters correctly; do not relax it.
the "Register composite custom overlay" step first-touch needs pristine import. On a fresh
workspace the overlay tracker is empty git-init — the carrier
flash conf is imported from bsp_image and committed as
pristine:before the customization commit. Both commits go
through the workflow acceptance gate.
Avoid bare $0 in shell snippets inside this SKILL.md. When
invoked with an argument, the harness expands skill-body $0
against the caller's $0 before handing the rendered prompt to
the model. Use sed-based line splicing or
awk -v ROW="$0". See
references/composite-registration.md.
No overlay staging. Build outputs stay where the build put
them; the manifest is the contract to jetson-promote-image.
Deliberate divergence from the original overlay→promote
indirection — keeps the full build output set out of the
overlay tracker's git history.
KERNEL_HEADERS vs KERNEL_OUTPUT in DT mode. Different
semantics (srctree vs objtree); do not collapse. the "DT-only" step's
snippet is correct as written.
OOT mode prereq: previously-built kernel headers. A manual
oot invocation against a never-built tree refuses with "run
kernel (or full) first" rather than producing a confusing
build error.
Examples
Auto-detect mode from the dirty source tree (typical invocation):
Jetson Build Source 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.
Workflow for porting an existing Triton kernel in fla/ops/ to Gluon (triton.experimental.gluon) to gain explicit control over tensor layouts, shared memory, async data movement (cp.async / TMA), MMA…
Preflight checks and diagnosis for ten known failure modes of ML training on NVIDIA DGX Spark's GB10, spanning launch errors, memory, thermals, bandwidth and precision.
Shows how to launch distributed Megatron-LM training on a SLURM cluster: sbatch skeleton, torch.distributed.run setup, CUDA_DEVICE_MAX_CONNECTIONS rules and failure diagnosis.
Sets up and runs NVIDIA Cosmos Policy evaluations on the LIBERO and RoboCasa simulators, including headless GPU rendering and inference latency profiling.
A skill your agent uses when the user wants to deploy, run, debug, tear down, or call the REST API of the RTVI-CV 2D detection / tracking microservice.
Generates, validates, compares and explains HOLOLINK_def.svh macro files for the HSB IP, using bundled Python scripts and asking before it writes anything.
Orchestrates defect image generation for PCBA, metal surface and glass inspection with NVIDIA Cosmos AnomalyGen on OSMO, from cold-start Day 0 to real-photo Day 1 labeling.
Orchestrates video data augmentation and auto-labeling workflows on OSMO, from flow selection and preflight checks to submission, monitoring and output download.
Runs NVIDIA TAO Data Services KPI analysis on object detection results, comparing predictions to ground truth and writing per-class precision, recall and AP to a CSV.
A skill your agent uses when you need to rebuild the BSP overlay — DT, OOT modules, or kernel — from changes under bspsources/. Jetson Build Source is an agent skill from NVIDIA/skills, published by the product's own GitHub organization. Use when you need to rebuild the BSP overlay — DT, OOT modules, or kernel — from changes under bspsources/.
When should I use Jetson Build Source?
Jetson Build Source fits situations like: you need to rebuild the BSP overlay — DT; kernel — from changes under bspsources/.
How do I install Jetson Build Source in Claude Code?
Run `npx skills add NVIDIA/skills --skill jetson-build-source -a claude-code`. Or copy the skill folder (skills/jetson-build-source in NVIDIA/skills) into .claude/skills/jetson-build-source in your project. Claude Code loads it when a task matches its description.
How do I install Jetson Build Source in Codex?
Run `npx skills add NVIDIA/skills --skill jetson-build-source -a codex`. Or copy the skill folder (skills/jetson-build-source in NVIDIA/skills) into .agents/skills/jetson-build-source in your project. Codex loads it when a task matches its description.
Can I use Jetson Build Source in Cursor, Gemini CLI or GitHub Copilot?
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add NVIDIA/skills --skill jetson-build-source -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/jetson-build-source, .gemini/skills/jetson-build-source, .github/skills/jetson-build-source and .opencode/skills/jetson-build-source in your project.
What does Jetson Build Source need to run?
Going by SKILL.md and its folder, Jetson Build Source needs the command-line tools its instructions call (git, make and apt).
Does Jetson Build Source access the network?
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Is Jetson Build Source safe to install?
Our automated static check of SKILL.md found notes only (runs commands with sudo), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
What licence does Jetson Build Source use?
Jetson Build Source 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.
How many tokens does Jetson Build Source use?
About 5k tokens (SKILL.md is roughly 20k 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 6.5k tokens, read only when the agent opens those files.
What are the alternatives to Jetson Build Source?
Skills that share tags, products or a category with Jetson Build Source: Fla Triton To Gluon (fla-org/flash-linear-attention, 5.8k stars), DGX Spark Memory and Thermal Ops (wshobson/agents, 40k stars), DGX Spark Training Gotchas (wshobson/agents, 40k stars) and Megatron-LM on SLURM (NVIDIA/Megatron-LM, 18k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Jetson Build Source?
NVIDIA (a GitHub organization, an official publisher) maintains it in NVIDIA/skills, which has 3,539 GitHub stars. The repository holds 380 skills in this directory. The repository was last updated on October 7, 2026.
Source: NVIDIA/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.