Agent skill

Use Asset Library

by LunCoSim in LunCoSim/lunco-sim

Add or locate LunCoSim assets under assets/: USD components, WGSL shaders, Modelica models, SysML requirements, or event-driven Rhai policies.

Apache-2.0Auto-check passedBackend & APIs

Install Use Asset Library

skills CLI
$ npx skills add LunCoSim/lunco-sim --skill use-asset-library -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install LunCoSim/lunco-sim use-asset-library --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/LunCoSim/lunco-sim.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/use-asset-library .claude/skills/use-asset-library && rm -rf skills-src

Use ~/.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/

Facts

Skill name
use-asset-library
GitHub stars
107
Token cost
~4.8k tokens
SKILL.md length
2,165 words
Files
1
Skills in repo
40
Repo updated
First seen
Licence
Apache-2.0

At a glance

Add or locate LunCoSim assets under assets/: USD components, WGSL shaders, Modelica models, SysML requirements, or event-driven Rhai policies.

  • Works in 3 steps: The language is the file extension,… → No inputs:/outputs: ⇒ never stepped. The… → realtimeSafe defaults to false, and the…
  • Spawn palette entries
  • SKILL.md covers Where things live, Architecture boundary, The lunco:// scheme and Add a USD component, plus 5 more sections
  • Calls cargo

What it does

Use Asset Library is an agent skill from LunCoSim/lunco-sim. Add or locate LunCoSim assets under assets/: USD components, WGSL shaders, Modelica models, SysML requirements, or event-driven Rhai policies. Use for discovery, spawn palette entries, lunco:// references, Twin-mounted assets, source programs, or web manifests. This skill owns placement and resolution; use author-usd-component for USD authoring and validate-assets for pre-flight.

Its SKILL.md is about 4.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Backend & APIs, covering Shaders and Event-driven systems. It works with Rust. The repository describes itself as: Collaborative Multiphysics Cosimulator For Space Missions 🌎🚀🌚. The licence is Apache-2.0.

When your agent uses it

  • Spawn palette entries
  • Lunco:// references
  • Twin-mounted assets
  • Source programs

Example prompts

  • “/use-asset-library”

Requirements

  • Python 3

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. The language is the file extension, nothing else. .mo → Modelica,
  2. No inputs:/outputs: ⇒ never stepped. The cosimulation projector requires at least
  3. realtimeSafe defaults to false, and the wiring pass then refuses the

What it can do on your machine

Read from SKILL.md and the folder at commit 43f1301. 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:

    • cargo

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    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

Use Asset Library loads about 4.8k tokens when it runs. Until then it costs about 101 tokens; SKILL.md has 2,165 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~101
When it runs · the whole SKILL.md, loaded when a task matches
~4.8k

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 passed

The automated check found no risky patterns in SKILL.md.

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.

SKILL.md

The full file from LunCoSim/lunco-sim at commit 43f1301, republished under its Apache-2.0 licence (© LunCoSim). 2,165 words, ~4,755 tokens.

Download SKILL.mdSave it as .claude/skills/use-asset-library/SKILL.md (or your agent's skills folder).
name
use-asset-library
description
Add or locate LunCoSim assets under `assets/`: USD components, WGSL shaders, Modelica models, SysML requirements, or event-driven Rhai policies. Use for discovery, spawn palette entries, `lunco://` references, Twin-mounted assets, source programs, or web manifests. This skill owns placement and resolution; use author-usd-component for USD authoring and validate-assets for pre-flight.

Use the asset library

Almost everything in LunCoSim is an asset file, not a Rust type. A part, a vehicle, a material, a subsystem's physics, a mission script — all of them are files under assets/ that the engine discovers at runtime.

Rust ships parameterized behaviours; it never hardcodes a thing. If you are about to add a Rust struct for a specific rover, habitat, or shader, stop and add a file instead.

Related: author-usd-component (how to write the .usda), build-vehicle (assemble parts), build-usd-scene (assemble a scene), author-scenario (rhai), run-modelica (.mo), validate-assets (pre-flight before you run). Design: 56-asset-resolution-and-cache.md, 50-usd-driven-visuals.md.

Where things live

The canonical human/AI map is assets/README.md. Read it before adding a file; the filesystem is the runtime manifest and the README defines the stable taxonomy.

FolderHolds
assets/components/reusable part prims referenced into vessels — domain folders include avionics/, cameras/, comms/, environment/, gnc/, lights/, mobility/, mounting/, payload/, power/, terrain/, thermal/
assets/vessels/whole vehicles — rovers/, landers/, satellites/, balloons/, plus control_profiles.usda
assets/structures/surface installations — habitat, mast, ISRU plant, landing pad
assets/props/simple scene objects — ball, ramp, wall
assets/scenes/loadable stages — base/, luncosim/, tests/, celestial/
assets/models/behaviour sources: .mo (Modelica); .py only when the optional Python backend is explicitly enabled
Twin-owned requirement roots.sysml / .kerml source files declared and indexed by twin.toml
assets/scenarios/.rhai bound as a LunCoProgramAPI source
assets/scripting/importable rhai modules — lib/, prelude/, policy/, tools/
assets/shaders/.wgsl
assets/celestial/, missions/, tutorials/, lighting/, config/global/application data

Architecture boundary

  • USD owns assembly, transforms, variants, references, and wiring.
  • Modelica owns continuous/domain math.
  • Rhai owns scenario orchestration, rules, scoring, and assertions.
  • The task kernel is reusable mechanism; Rhai owns authored behavior policy.
  • Rust owns only general heavy runtime capabilities and bridges; expose their controls to Rhai instead of baking mission policy into Rust.

For a generic human/AI assembly workflow, use the hot-reloadable assets/scripting/tools/model_authoring.rhai facade. Keep its reusable reads, plans, and checks generic; put Twin-specific recipes beside the Twin. Pair any observable asset/linter regression with a USD fixture and Rhai scene observer under assets/scenes/tests/ and assets/scenarios/tests/.

Environment facts are produced by a distinct components/environment/probe.usda source prim. Never make a Modelica/Python consumer declare gravity_accel or a direction-target triplet as its own output and connect that output back to itself. EnvironmentProbe outputs use <target-id>_mount_x/y/z; reusable Modelica consumers use the generic target_mount_x/y/z inputs, and their wires choose which object supplies the direction.

The engine-recognized source extensions are walked into the discovery manifest (crates/lunco-assets-runtime/src/discovery.rs): .usda, .wgsl, .rhai, .mo, .py, .sysml, .kerml. .mo (Modelica), .py (optional Python), and SysML/KerML sources are catalogued both because a .usda/Twin names them and so they can be browsed directly. Python is not the standard scenario backend; Rhai is. The Scenarios menu groups registered source files by type. Non-source data (.json, .toml) is not walked: it is read by a subsystem or evaluated ad hoc, not browsed as an authored asset.

The lunco:// scheme

lunco://<rel> = the runtime assets/<rel>, with that root's packed cache and the shared cache after authored assets. The runtime root is selected by the fallible lunco_assets_core::assets_dir_abs() from LUNCO_ASSET_ROOT when set, otherwise executable/package ancestry before current-directory ancestry. An invalid override or unresolved library stops admission with an error; callers propagate that error instead of inventing a root. The asset owner provides typed Bevy load addresses, preserving literal # and % filenames. The complete read order comes from lunco_assets_core::library_roots() in crates/lunco-assets-core/src/lib.rs. twin://<assigned-mount>/<rel> is the same shape one level down: the Twin's authored root, its <twin>/.cache, then the global cache. This lets Twins reuse a global downloaded product without putting a machine path into USD. Authored bytes always win over materialised ones. Schemes are registered in crates/lunco-assets-runtime/src/asset_sources.rs; twin:// is stateful, it is not a second texture scheme. Use the existing logical lunco:// or twin:// identity for every delivered artifact. Canonical URI construction, separator normalization, and traversal validation come from the dependency-free lunco-assets-path crate; source roots and bytes are admitted by lunco-assets-runtime using the identity and cache contracts from lunco-assets-core. For reopened Twins, use the authority returned by the current mount, never reconstruct it from the manifest name or retain an outgoing address. Follow the canonical mount identity contract for provenance and scenario synchronization. Verify replacement content through the production app; resolver seam tests alone do not prove Bevy cache behavior. Native USD payloads, texture inputs, and Rhai asset sources use the typed native admission contract. Pass the stage's actual AssetServer path and current TwinRoots to the asset owner; keep its Result<AssetPath> through loading and attach labels separately. Verify a valid native filename with URI characters and a rejected foreign or retired mount through the production consumer; do not register an unrestricted file: source or enable unapproved paths to make a fixture load.

Anything the cache fallback can serve is DECLARED in an Assets.toml and downloaded only on request (Settings ▸ Downloadable data, the Twin Browser Files section's Twin assets rows, or the lunco-assets CLI) — the engine never fetches on its own, so an asset that is merely declared resolves to nothing until someone asks for it. The browser rows are only a view of lunco_assets_datasets::DatasetRegistry; they must emit its typed request/cancel commands and never create a second downloader or parse cache paths. The optional lunco-assets package composes native workers from lunco-assets-transport, lunco-assets-download, and lunco-assets-processing; consumers that only inspect declarations or state should depend on lunco-assets-datasets.

All requesters use the download section of the one settings file owned by lunco-settings. DownloadSettings.max_attempts includes the first request; retry waits are exponential and capped. Native and browser fetches retain received bytes and resume with HTTP Range when the origin supports it. Callers must pass the shared settings resource through the existing asset/API surface rather than adding a local retry loop or path.

A bare relative path is not "wrong" — it is resolved against the anchoring document's directory, keeping that document's scheme. That is why it bites:

usda
# ✅ engine library — works no matter who mounts this file
prepend references = @lunco://components/mobility/wheel.usda@
prepend references = @lunco://components/power/battery.usda@

# ✅ a file sitting next to a Twin scene
uniform asset info:sourceAsset = @twin://my_mission/gnc.rhai@

# ⚠️ only legal when this file is itself inside assets/ AND never Twin-mounted
uniform asset info:sourceAsset = @scenarios/foo.rhai@

# ❌ always — `..` escapes the root and returns NotFound
prepend references = @../../components/mobility/wheel.usda@

The active program contract is visible in the runtime status. A Modelica or optional Python source with no declared inputs:/outputs: is reported as source-only; it is not treated as a running participant. AttachProgram is the canonical way to add the source and its explicit scalar contract. "My model does nothing" should be diagnosed by checking CosimStatus and GetBrokenConnections, not by assuming a hidden fallback. The production scene-test catalog reports read and parse status for every discovered .usd* asset, and the sandbox smoke scenario asserts that shipped USD sources are readable and parseable. Only validate-assets catches a broken references arc before you launch.

Rhai import uses the same canonical asset identity as USD. Use a logical lunco://… or twin://… URI, an assets-root /… path, or a path relative to the importing script. RhaiSourceLoader loads every literal import as a Bevy dependency; unused scripts are not preloaded.

The source asset owner qualifies default Bevy paths as lunco:// before it publishes source text or prepared ASTs. Scenario roots, imports, and unloads use the same canonical identity; Twin paths retain twin://. Consumers commit the complete loaded import graph before binding or starting a source because Bevy can report graph readiness before its Added messages are consumed.

Add a USD component

Write one file = one spawnable thing. The full authoring reference is author-usd-component; the library rules are:

usda
#usda 1.0
( defaultPrim = "Widget"   # ← lunco:spawnable is ONLY read here
  upAxis = "Y"  metersPerUnit = 1.0
  doc = """What this is." """ )

def Xform "Widget" ( kind = "component" prepend apiSchemas = ["LunCoCatalogAPI"] )
{
    uniform bool lunco:spawnable = true
}

How it reaches the palette (crates/lunco-scene-catalog/src/catalog.rs):

Palette fieldDerived from
idthe file stem
display_namestem Title-cased (splits _ and -)
categorythe immediate parent folder, Title-cased
descriptionthe stage's doc metadata

So components/power/solar_panel.usda lands under "Power" — not "Components". A file with no parent folder lands in "Other". Nothing is hardcoded; moving the file changes its category.

  • lunco:spawnable defaults to false — it is opt-in.
  • It must sit on the stage's defaultPrim. On any other prim the palette never sees it (child lunco:spawnable is a different feature — subpart selection).
  • An unreadable file is not spawnable and logs CATALOG: … unreadable.
  • Editing an already-scanned file? Send RescanSpawnCatalog — the scan caches per asset. Adding a new file is picked up automatically on native (the filesystem is the manifest).
Show full SKILL.md (870 more words)Show less

Add a shader (.wgsl)

Drop it in assets/shaders/. It is walked into the manifest and registered into the ShaderCatalog automatically (RescanShaders to re-read edits). Bind it directly on the gprim:

usda
uniform asset info:wgsl:sourceAsset = @lunco://shaders/rover_hull.wgsl@

The tunable surface is reflected from a struct Material at @group(2) @binding(0), annotated with //!@ comments (crates/lunco-materials/src/dyn_params.rs). There are exactly three directives — there is no //!@param:

wgsl
struct Material {
    //!@engine display_color
    display_color: vec3<f32>,
    //!@ui 0.0 1.0 "Wear"
    wear: f32,
    //!@default albedo 0.17,0.17,0.17
    //!@ui color "Accent"
    accent_color: vec3<f32>,
}
DirectiveEffect
//!@engine <name>the engine fills this uniform — see the registry below
//!@ui <name> [args] "Label"color / int min max / min max (slider) / else free
//!@default <name> <v>[,<v>…]packed value when nothing else supplies one
Engine-filled uniforms

crates/lunco-materials/src/engine_params.rs is the provider registry — a process-wide OnceLock, so the validator, the prop picker and the renderer all read the same list.

//!@engine nameFilled fromUsable on a prop?
display_colorthe prim's composed primvars:displayColor element 0✅
sun_vishorizon ray-march visibility✅
sun_dir, sun_dir_world, sun_tan_radiussun direction / angular radius❌
hf_size, hf_res, csm_far, shadow_cache_onterrain heightfield + shadow state❌

The colour contract: author primvars:displayColor, the shader consumes it.

usda
color3f[] primvars:displayColor = [(0.30, 0.72, 0.35)]   # ARRAY, linear

One authored attribute, in the standard USD place, whether the part renders through plain PBR or through WGSL. An authored inputs:<name> on the bound Shader always wins over the engine fill — but authoring inputs:display_color hides the colour from every other tool that reads USD, so use inputs: only for what displayColor cannot express (accents, panel scale, wear, dust).

A shader using any ❌ param is refused by the prop material picker (it would render black on a rover part) but still works as a scene shader — that is exactly the not prop-pickable warning from validate-assets. An unregistered //!@engine name warns and packs to its //!@default (or zero) — nothing fills it.

Add a Modelica behaviour (.mo)

For an acausal physical domain, author component class/nameplate facts and connector topology in USD. The runtime projector compiles each connected island into one Modelica model; never bind one solver program per electrical part.

Three gates, each of which silently does nothing when unmet:

  1. The language is the file extension, nothing else. .mo → Modelica, .py → Python, .rhai → Rhai.
  2. No inputs:/outputs: ⇒ never stepped. The cosimulation projector requires at least one port-prefixed attribute. A model with no ports is a documentation-only reference.
  3. realtimeSafe defaults to false, and the wiring pass then refuses the prim a force/torque port on a client-predicted body. Author it true when the program drives a force.

And sourceAsset must be typed asset, never string — only an asset is visible to the resolver, the reference closure, and packaging.

Write it branch-free. rumoca's solver path has no if/when in equations — express clamps as der(x) = expr with max()/min(). validate-assets enforces this as an error; assets/models/LunCo/Electrical/Battery.mo plus the reusable rover electrical assemblies are the worked examples. Rhai is event and mission glue only; production scenarios must not define on_tick. Authored tests may use it for bounded state sampling and verdicts. Keep equations in Modelica and ordinary progression in task/events.

Regenerate the web manifest

Native runtime walks the filesystem, so adding a file needs no step at all. The web build has no filesystem: it fetches assets/manifest.json (crates/lunco-assets-runtime/src/discovery.rs). After adding or removing any catalogued source (.usda/.wgsl/.rhai/.mo):

bash
./scripts/build_web.sh build luncosim

which rsyncs assets/ into dist/ and runs cargo run -p lunco-assets --bin build_asset_manifest -- <dist>/assets (scripts/build_web.sh). That generator calls the same discovery::scan_library the native runtime uses, so the two cannot drift. There is no standalone regenerate command.

Binary runtime assets are staged by the manifest-declared bundle target as part of the same build. Add or change the bundle field on the authoritative Assets.toml entry, then rebuild; do not add a second shell list. The staging command validates the declared raw/processed artifact before copying it, so a missing or incomplete asset fails the build instead of becoming a browser 404. Bundle-qualified keys are for log identity; temporary download files use an opaque process/attempt name, so adding a grouped asset never creates a platform-dependent cache subdirectory.

Validate before you run

bash
"$LUNCOSIM_BIN" --validate assets/vessels/rovers/my_rover.usda

Seconds, no GPU, no app. Composes the whole reference closure — so it catches the broken @lunco://…@ that would otherwise be a mystery at load — and runs the strict wheel reader. See validate-assets.

Anti-patterns

USD composition is owned by lunco-usd-compose: lunco-assets-core supplies canonical IDs and traversal-safe roots, while lunco-assets-runtime supplies source bytes; composition interprets USD arcs into an inert stage. Modelica, Rhai, behavior trees, physics, and rendering bind later in their own layers. A tutorial only projects metadata from that stage.

  • ❌ A bare relative reference to a shipped asset — it resolves against the anchoring document, so the file breaks the moment a Twin mounts it. Use @lunco://…@.
  • ❌ @../../…@ anywhere — .. escapes the root and returns NotFound. There are zero such refs in the tree; keep it that way.
  • ❌ A dynamic/non-literal Rhai import — dependencies must be known while the asset is loading, so the loader rejects it visibly.
  • ❌ lunco:spawnable on a prim that is not the stage defaultPrim — invisible to the palette.
  • ❌ Encoding a category in the filename — the category IS the parent folder.
  • ❌ A LunCoProgramAPI with no inputs:/outputs: and expecting it to run.
  • ❌ info:sourceAsset typed string — must be asset.
  • ❌ if/when in a .mo equation section — rumoca is branch-free.
  • ❌ Authoring inputs:display_color instead of primvars:displayColor — it works, and it hides the colour from every other USD consumer.
  • ❌ Adding a Rust struct for a specific vehicle/part/material. It is a file.
  • ❌ Assuming the web build picked up a new asset without re-running build_web.sh.

© LunCoSim, 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

Files

Just SKILL.md in skills/use-asset-library of LunCoSim/lunco-sim.

Open the folder on GitHubat commit 43f1301

Compare with similar skills

Use Asset Library 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.

Use Asset Library compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Use Asset Library this skillLunCoSim/lunco-sim107—~4.8kAutomated safety check: PassApache-2.0
Debugging Local ReplayPostHog/posthog40k—~1.9kAutomated safety check: PassCustom licence
Monitoring Capture ServicePostHog/posthog40k—~5kAutomated safety check: PassCustom licence
Materialsarjun988/blender-skills283—~955Automated safety check: PassMIT
Makepad Skillsaiskillstore/marketplace4335 repos~198Automated safety check: PassNone
Stripe Projectsfossasia/eventyay1.7k5 repos~2kAutomated safety check: NotesApache-2.0

Similar skills

  • Debugging Local Replay

    PostHog/posthog

    Official

    Debugs why session recordings aren't appearing in the local dev environment.

    40k GitHub stars~1.9k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Official

    Guide for using the Grafana MCP to monitor and diagnose the capture service (rust/capture) in production.

    40k GitHub stars~5k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Materials

    arjun988/blender-skills

    Blender PBR and stylized material creation for metal, wood, concrete, fabric, glass, dirt, rust, and procedural shaders.

    283 GitHub stars~955 tokensUpdated 3 mo ago
    Game DevelopmentAuto-check passed
  • Makepad Skills

    aiskillstore/marketplace

    Makepad UI development skills for Rust apps: setup, patterns, shaders, packaging, and troubleshooting.

    433 GitHub starsUsed in 5 repos~198 tokens
    Game DevelopmentAuto-check passed
  • Stripe Projects

    fossasia/eventyay

    A skill your agent uses when the user wants to provision infrastructure or third-party services using Stripe Projects.

    1.7k GitHub starsUsed in 5 repos~2k tokens
    Backend & APIsAuto-check: notes
  • MQTTX CLI

    emqx/MQTTX

    Operates the `mqttx` command line client to connect, publish, subscribe, benchmark and simulate data against an MQTT broker, with TLS and MQTT 5 support.

    5.1k GitHub stars~1.9k tokensUpdated yesterday
    Backend & APIsAuto-check passed

More from LunCoSim/lunco-sim

All 40 skills in this repo
  • Nightly Changelog

    LunCoSim/lunco-sim

    Generate concise LunCoSim nightly GitHub release notes with platform downloads, installation guidance, an AI-agent mission prompt, and a changelog link.

    107 GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Build or repair a reusable scene component through a live LunCoSim Editor session.

    107 GitHub stars~4.4k tokensUpdated today
    Auto-check passed
  • Assembly Quality

    LunCoSim/lunco-sim

    Build or review a componentized LunCoSim USD assembly with a realistic, dimensionally checkable presentation.

    107 GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Author Rhai Tests

    LunCoSim/lunco-sim

    Author and review LunCoSim behavioral, asset-backed, component, mission, visual, and requirements-verification tests.

    107 GitHub stars~3.5k tokensUpdated today
    Auto-check passed
  • Author Rhai Tool

    LunCoSim/lunco-sim

    Create, extend, register, or debug a reusable LunCoSim Rhai tool library for live USD authoring, component linting, inspection, or test support.

    107 GitHub stars~5.2k tokensUpdated today
    Auto-check passed
  • Author Tutorial

    LunCoSim/lunco-sim

    Author an interactive tutorial, guided lesson, onboarding flow, coach-mark tour, or objectives checklist in LunCoSim.

    107 GitHub stars~1.4k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Use Asset Library

What does Use Asset Library do?

Add or locate LunCoSim assets under assets/: USD components, WGSL shaders, Modelica models, SysML requirements, or event-driven Rhai policies. Use Asset Library is an agent skill from LunCoSim/lunco-sim. Add or locate LunCoSim assets under assets/: USD components, WGSL shaders, Modelica models, SysML requirements, or event-driven Rhai policies.

When should I use Use Asset Library?

Use Asset Library fits situations like: spawn palette entries; lunco:// references; twin-mounted assets; source programs.

How do I install Use Asset Library in Claude Code?

Run `npx skills add LunCoSim/lunco-sim --skill use-asset-library -a claude-code`. Or copy the skill folder (skills/use-asset-library in LunCoSim/lunco-sim) into .claude/skills/use-asset-library in your project. Claude Code loads it when a task matches its description.

How do I install Use Asset Library in Codex?

Run `npx skills add LunCoSim/lunco-sim --skill use-asset-library -a codex`. Or copy the skill folder (skills/use-asset-library in LunCoSim/lunco-sim) into .agents/skills/use-asset-library in your project. Codex loads it when a task matches its description.

Can I use Use Asset Library 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 LunCoSim/lunco-sim --skill use-asset-library -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/use-asset-library, .gemini/skills/use-asset-library, .github/skills/use-asset-library and .opencode/skills/use-asset-library in your project.

What does Use Asset Library need to run?

Going by SKILL.md and its folder, Use Asset Library needs the command-line tools its instructions call (cargo). Our summary lists: Python 3.

Does Use Asset Library access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Use Asset Library safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Use Asset Library use?

Use Asset Library is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Use Asset Library use?

About 4.8k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Use Asset Library?

Skills that share tags, products or a category with Use Asset Library: Debugging Local Replay (PostHog/posthog, 40k stars), Monitoring Capture Service (PostHog/posthog, 40k stars), Materials (arjun988/blender-skills, 283 stars) and Makepad Skills (aiskillstore/marketplace, 433 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Use Asset Library?

LunCoSim (a GitHub organization) maintains it in LunCoSim/lunco-sim, which has 107 GitHub stars. The repository holds 40 skills in this directory. The repository was last updated on October 10, 2026.

Source: LunCoSim/lunco-sim on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.