Templates & the registry
Every scene template, motion primitive, and shared lib ships as a shadcn-conformant registry item — with full source. Agents read the index to compose; developers can eject any item into their own project. Browse the catalog visually at /templates.
Three layers
| Layer | Type | What it is |
|---|---|---|
| Templates | registry:block | Finished scenes — the default path. Pick one, set variables, render. |
| Primitives | registry:ui | The building blocks templates are made of — cards, device chrome, counters, charts. Compose them when no template fits. |
| Libs | registry:lib | Shared vocabulary: motion curves (animation-utils), text fitting (text-utils), and the canonical brand tokens (tokens). |
The index
The agent-facing catalog lives at vanillasky.ai/llms-components.txt: template ids, variables, durations, use-when guidance, the text archetypes, the style presets, and the registry:ui primitives with prop schemas. The skill reads it before composing — never guess template names or variables; the validator rejects ids and variables it doesn't know.
Per-item JSON
Full detail for any item is at https://vanillasky.ai/r/<id>.json — a shadcn-compatible registry item carrying:
meta.vanillasky.variableSchema— the complete variable schema with types, options, defaults, and required flags (plusdefaultVariables, category, durations, and use-when guidance).files[0].content— the item's full source, plus its dependency closure, so you can read or eject any of it without installing anything.
curl -s https://vanillasky.ai/r/bigNumber.json \
| jq '.meta.vanillasky.variableSchema'Ejecting into your own project
To install an item's source into a React project with the shadcn CLI, map the namespace once in your project's components.json:
{ "registries": { "@vanillasky": "https://vanillasky.ai/r/{name}.json" } }npx shadcn add @vanillasky/bigNumber # a template
npx shadcn add @vanillasky/countUpNumber # a primitiveWithout that registries entry the @vanillasky namespace does not resolve — reading the item JSON directly needs no setup at all.
Scope note: npx shadcn add is for building your own app around these components — it does not change what the vanillasky CLI renders. To change a scene in a video, write your own scene body as componentSource on a scene whose templateId starts custom_, using the registry item's source as the reference. vanillasky scope prints the exact globals available to a custom scene, and vanillasky validate enforces the custom-scene contract so a bad scene fails loudly instead of rendering blank.
Offline snapshot
The public skills repo ships the full registry snapshot in its registry/ directory: llms-components.txt is the index, and registry/r/<id>.json files are the offline equivalent of the network path — everything it provides, including template source for ejecting. If the live index is unreachable and no local copy exists, the skill says so and stops rather than inventing template names.