nvidia/jetson-set-target
>- Switch the active Jetson target-platform pointer to an existing profile YAML. Use before customize/build/flash to change target; not for authoring profiles — use jetson-init-target instead.
npx skills add https://github.com/NVIDIA/skills --skill jetson-set-target
This skill is the switcher side of the target-platform contract in
../../context/target-platform-contract.md. It only
edits target-platform/active_target.yml; it never authors a new
profile YAML. To author a new profile, use the sibling skill
jetson-init-target.
Single output: target-platform/active_target.yml updated to point at
the user's chosen existing profile.
platform among profiles that already exist.
target-platform/ already contains one or more profile YAMLs.
YAML is already on disk.
If target-platform/ is missing, empty, or contains only
active_target.yml, stop and tell the user to run jetson-init-target
first.
target-platform/active_target.yml (treat a missing file asactive: NA for the purposes of this skill — the file will be
created in the "Update the active pointer" step if needed, preserving the template header).
target-platform/*.yaml, excluding active_target.ymlitself.
| Situation | Action |
|---|---|
| No profile YAMLs exist | Refuse. Tell the user to run jetson-init-target to author one. |
| Exactly one profile, already active | Tell the user it is already active; no change needed. Stop. |
| Exactly one profile, not active | Confirm with the user, then jump to the "Update the active pointer" step with that profile selected. |
| Multiple profiles | Proceed to the "Show the list" step. |
Print the profiles in alphabetical order, numbered. Mark the current
active selection with (active) so the user knows what they're
switching from. For each profile, parse its YAML and show a one-line
summary so the user can identify it without opening files: the
reference_devkit.name (or custom_carrier.name if present) plus the
flash_config.
Sample shape:
Profiles in target-platform/:
1) acme-vision-x1.yaml — Acme Vision X1 (custom carrier on AGX Thor T5000) — acme-vision-x1.conf
2) jetson-agx-orin-32gb.yaml — Jetson AGX Orin 32GB — jetson-agx-orin-devkit.conf
3) jetson-agx-thor-devkit.yaml — Jetson AGX Thor T5000 — jetson-agx-thor-devkit.conf (active)
4) jetson-orin-nano-8gb.yaml — Jetson Orin Nano 8GB — jetson-orin-nano-devkit.conf
If a profile YAML fails to parse or is missing the expected fields,
show the bare filename with a (unparseable — fix or remove) marker
and skip to the next; do not refuse the whole skill over one bad file.
Prompt:
> Pick a number, the bare filename, the product name (substring
> match), or cancel.
Resolve to a single profile filename. If the user picks the currently
active profile, tell them so and stop without rewriting the pointer.
If ambiguous, list candidates and ask again.
Edit target-platform/active_target.yml:
active: <chosen-filename>.yaml.active: line.
target-platform/ without the bootstrap step), create it from
../../references/active_target_template.yaml
and then set active:.
Print a summary: the previous active value, the new active value, the
chosen profile's reference_devkit.name (and custom_carrier.name if
present), and a reminder that downstream skills (jetson-customize-clocks,
jetson-customize-nvpmodel, jetson-customize-fan,
jetson-optimize-memory) will now resolve to this target.
If a downstream skill triggered this run, tell the user to re-issue
their original request; do not silently re-trigger it.
target-platform/ exists and contains at least one *.yaml profile(excluding active_target.yml).
target-platform/active_target.yml is present, or the template at../../references/active_target_template.yaml is available so this
skill can recreate the pointer.
active: line in active_target.yml; never writesprofile YAMLs.
jetson-init-target instead.
ambiguous selections are re-prompted.
*.yaml other than the pointer; run /jetson-init-target first.
the chosen filename is verified before writing; if seen, hand-edit
active_target.yml back to a valid filename or rerun with the right
selection.
NA — legitimate "no selection" state; pickany listed profile and the pointer will be set.
is not on disk, refuse and route them to jetson-init-target. Do
not silently fall through to authoring.
active_target.yml to point at a missing profile.Verify the chosen filename exists in target-platform/ before
writing.
active_target.yml's comment block when editing —only the active: line should change.
active_target.yml from the profile list. It lives inthe same directory but is the pointer, not a profile.
active: NA is the legitimate "no selection" state. Treat itthe same as a fresh pointer — don't refuse, just show the list and
let the user pick.
user confirmation — still confirm before flipping the pointer.
../../context/target-platform-contract.md — the contract this skill writes to.../../references/active_target_template.yaml — schema starter for the active-target pointer (used to recreate it if the file is missing).../jetson-init-target/SKILL.md — sibling skill: author a new profile YAML.Take nvidia/jetson-set-target 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.