Web Artifacts Builder
anthropics/skills
Builds multi-component claude.ai HTML artifacts as a small React, TypeScript and Tailwind project, then bundles it into one shareable HTML file.
Discover and integrate Sona UI registry components. An agent skill from Dinil-Thilakarathne/sona-ui.
$ npx skills add Dinil-Thilakarathne/sona-ui --skill sona-ui -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Dinil-Thilakarathne/sona-ui sona-ui --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Dinil-Thilakarathne/sona-ui.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/registry/sonaui/agent-skill .claude/skills/sona-ui && rm -rf skills-srcUse ~/.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/
Install the "sona-ui" agent skill from https://github.com/Dinil-Thilakarathne/sona-ui/tree/master/src/registry/sonaui/agent-skill into .claude/skills/sona-ui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sona-ui", 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.
$skill-installer install https://github.com/Dinil-Thilakarathne/sona-ui/tree/master/src/registry/sonaui/agent-skillType 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.
$ npx skills add Dinil-Thilakarathne/sona-ui --skill sona-ui -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Dinil-Thilakarathne/sona-ui sona-ui --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Dinil-Thilakarathne/sona-ui.git skills-src && mkdir -p .agents/skills && cp -r skills-src/src/registry/sonaui/agent-skill .agents/skills/sona-ui && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "sona-ui" agent skill from https://github.com/Dinil-Thilakarathne/sona-ui/tree/master/src/registry/sonaui/agent-skill into .agents/skills/sona-ui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sona-ui", 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.
$ npx skills add Dinil-Thilakarathne/sona-ui --skill sona-ui -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Dinil-Thilakarathne/sona-ui sona-ui --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Dinil-Thilakarathne/sona-ui.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/src/registry/sonaui/agent-skill .cursor/skills/sona-ui && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "sona-ui" agent skill from https://github.com/Dinil-Thilakarathne/sona-ui/tree/master/src/registry/sonaui/agent-skill into .cursor/skills/sona-ui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sona-ui", 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.
$ gemini skills install https://github.com/Dinil-Thilakarathne/sona-ui.git --path src/registry/sonaui/agent-skill--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Dinil-Thilakarathne/sona-ui --skill sona-ui -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Dinil-Thilakarathne/sona-ui sona-ui --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Dinil-Thilakarathne/sona-ui.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/src/registry/sonaui/agent-skill .gemini/skills/sona-ui && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "sona-ui" agent skill from https://github.com/Dinil-Thilakarathne/sona-ui/tree/master/src/registry/sonaui/agent-skill into .gemini/skills/sona-ui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sona-ui", 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.
$ gh skill install Dinil-Thilakarathne/sona-ui sona-uiInstalls 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).
$ npx skills add Dinil-Thilakarathne/sona-ui --skill sona-ui -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Dinil-Thilakarathne/sona-ui.git skills-src && mkdir -p .github/skills && cp -r skills-src/src/registry/sonaui/agent-skill .github/skills/sona-ui && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "sona-ui" agent skill from https://github.com/Dinil-Thilakarathne/sona-ui/tree/master/src/registry/sonaui/agent-skill into .github/skills/sona-ui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sona-ui", 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.
$ npx skills add Dinil-Thilakarathne/sona-ui --skill sona-ui -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Dinil-Thilakarathne/sona-ui sona-ui --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Dinil-Thilakarathne/sona-ui.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/src/registry/sonaui/agent-skill .opencode/skills/sona-ui && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "sona-ui" agent skill from https://github.com/Dinil-Thilakarathne/sona-ui/tree/master/src/registry/sonaui/agent-skill into .opencode/skills/sona-ui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sona-ui", 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.
sona-uiDiscover and integrate Sona UI registry components. An agent skill from Dinil-Thilakarathne/sona-ui.
Sona UI is an agent skill from Dinil-Thilakarathne/sona-ui. Discover and integrate Sona UI registry components. Use when selecting, installing, composing, reviewing, or troubleshooting a Sona UI component in a consumer project.
Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `references/component-selection.md`, `references/consumer-validation.md` and `references/design-principles.md`).
It sits in Frontend & Design. It works with React. The repository describes itself as: A modern UI component library built with React and TailwindCSS to help you build beautiful and accessible web applications faster. The licence is MIT.
8 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 9a72ffe. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
bunbunxyarnFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
sonaui.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Sona UI loads about 1.1k tokens when it runs, and up to ~2.3k if it reads all its reference files. Until then it costs about 44 tokens; SKILL.md has 482 words of instructions outside code blocks.
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.
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.
The full file from Dinil-Thilakarathne/sona-ui at commit 9a72ffe, republished under its MIT licence (© Dinil-Thilakarathne). 482 words, ~1,051 tokens.
.claude/skills/sona-ui/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Treat the Sona UI shadcn registry as the installation authority. When a component exists in the registry, install its source-owned item instead of reconstructing it.
Registry namespace:
@sona-uiRegistry URL:
https://sonaui.com/r/{name}.jsonCurrent-resource manifest:
https://sonaui.com/agent/manifest.jsonBefore selecting a component, read:
references/component-selection.mdBefore installation or troubleshooting, read:
references/consumer-validation.mdBefore composing or reviewing motion and visual behavior, read:
references/design-principles.mdWhen skill discovery or the optional shadcn MCP setup needs troubleshooting, read:
references/provider-setup.mdInspect the consumer project's framework, React version, styling entry, aliases, and existing component conventions. This phase is complete when each value is known and the presence or absence of components.json is recorded.
Fetch the current-resource manifest before selecting or installing a component. When reachable, use its catalog URL rather than an installed or copied catalog URL. If it is unavailable, record that the skill is using a local snapshot that may be older than production.
Read references/component-selection.md, translate the request into an interaction intent, and search the catalog named by the manifest. This phase is complete when one candidate—or the decision to use no Sona component—is justified from its useWhen, avoidWhen, accessibility, motion, and dependency fields, and its exact detail, docs, and registryItem resources are recorded.
When the user supplies an exact component name that is absent from the catalog, fetch https://sonaui.com/r/{name}.json directly before deciding it is unavailable. If reachable, treat that registry item as authoritative and record its file targets, dependencies, registry dependencies, documentation URL when present, and accessibility and motion behavior. Do not infer that the item is unavailable from the catalog omission alone.
When installation is requested, read references/consumer-validation.md and complete every preflight check. Installation is unblocked only when every dependency resolves, every target is known, and every collision has an explicit decision.
Install the smallest useful set with the consumer project's existing package runner:
bunx shadcn@latest add @sona-ui/<component>Use pnpx, npx, or yarn dlx when that matches the consumer project.
Confirm the generated paths and imports match the inspected consumer conventions before composing the component into the requested experience.
Read references/design-principles.md when the component is interactive or visually integrated, then apply every validation tier required by references/consumer-validation.md. The work is complete only when each applicable check has a recorded result and static, interaction, and visual verification are reported separately.
Every published registry:ui item must also have a matching entry in src/registry/agent-metadata.ts. Add accurate useWhen, avoidWhen, capabilities, accessibility, motion, reduced-motion, and related-component guidance, then regenerate and validate both publishing surfaces:
bun run build:registry
bun run build:agent-resources
bun run check:registry
bun run check:agent-resourcesDo not treat an item as published until both registry and agent-resource checks pass. The public component navigation is independent from registry and agent publication; an intentionally hidden documentation link still needs the full metadata contract.
Inspect before editing. Ask the user before making a material layout decision that was not requested. Do not rewrite a consumer's styling system to match Sona UI.
© Dinil-Thilakarathne, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (references) in src/registry/sonaui/agent-skill of Dinil-Thilakarathne/sona-ui.
Open the folder on GitHubat commit 9a72ffe
Sona UI 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Sona UI this skillDinil-Thilakarathne/sona-ui | 118 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Web Artifacts Builderanthropics/skills | 180k | 40 repos | ~769 | Automated safety check: Pass | Apache-2.0 | |
| React Doctormakeplane/plane | 61k | 12 repos | ~657 | Automated safety check: Pass | AGPL-3.0 | |
| React Router Developmentremix-run/react-router | 57k | 1 repos | ~1.5k | Automated safety check: Pass | MIT | |
| React UI State PatternsChrisWiles/claude-code-showcase | 6.1k | 8 repos | ~1.6k | Automated safety check: Pass | None | |
| GSAP Core Animationgreensock/gsap-skills | 16k | 3 repos | ~3.7k | Automated safety check: Pass | MIT |
anthropics/skills
Builds multi-component claude.ai HTML artifacts as a small React, TypeScript and Tailwind project, then bundles it into one shareable HTML file.
makeplane/plane
Scans React code for lint, accessibility, bundle size and architecture issues, reports a health score and checks that changes do not lower it.
remix-run/react-router
Guides work on React Router apps by first identifying whether the app uses Framework, Data or Declarative mode, then loading the matching reference and the installed package docs.
ChrisWiles/claude-code-showcase
Sets patterns for React interfaces: when to show loading spinners or skeletons, how to surface errors, how to disable buttons during async work and how to handle empty lists.
greensock/gsap-skills
Covers the GSAP core API for tweens, easing, staggers, defaults and matchMedia, and when to choose GSAP over CSS animations or other JavaScript animation libraries.
lobehub/lobehub
Builds single-file interactive HTML prototypes rendered with the real LobeHub UI components and written as production-style React, so they can later be split into files.
Dinil-Thilakarathne/sona-ui
OKLCH color space for web projects. An agent skill from Dinil-Thilakarathne/sona-ui.
Dinil-Thilakarathne/sona-ui
A skill your agent uses when styling any elevated surface (card, dialog, popover, dropdown, menu, tooltip, sheet, toast) in a Tailwind project that has shadow-plugin installed.
Dinil-Thilakarathne/sona-ui
Integrate a new component into the Sona UI library end to end — the full per-component pipeline of writing the component, demo, docs, registry entry, nav link, playground controls, regenerating the…
Dinil-Thilakarathne/sona-ui
Create a source-backed Inspection Board around an existing Sona UI component for social demonstrations and later documentation experiments.
Dinil-Thilakarathne/sona-ui
Motion and interaction design expert based on Emil Kowalski, Jakub Krehel, and Jhey Tompkins' techniques.
Dinil-Thilakarathne/sona-ui
Promote a finished Craft, experimental UI, or reusable React component from the user's portfolio into the Sona UI library through an approval-gated two-phase workflow.
Works with
Categories
Discover and integrate Sona UI registry components. An agent skill from Dinil-Thilakarathne/sona-ui. Sona UI is an agent skill from Dinil-Thilakarathne/sona-ui. Discover and integrate Sona UI registry components.
Sona UI fits situations like: troubleshooting a Sona UI component in a consumer project.
Run `npx skills add Dinil-Thilakarathne/sona-ui --skill sona-ui -a claude-code`. Or copy the skill folder (src/registry/sonaui/agent-skill in Dinil-Thilakarathne/sona-ui) into .claude/skills/sona-ui in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Dinil-Thilakarathne/sona-ui --skill sona-ui -a codex`. Or copy the skill folder (src/registry/sonaui/agent-skill in Dinil-Thilakarathne/sona-ui) into .agents/skills/sona-ui in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Dinil-Thilakarathne/sona-ui --skill sona-ui -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sona-ui, .gemini/skills/sona-ui, .github/skills/sona-ui and .opencode/skills/sona-ui in your project.
Going by SKILL.md and its folder, Sona UI needs the command-line tools its instructions call (bun, bunx and yarn).
SKILL.md names 1 domain. In commands or code: sonaui.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
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.
Sona UI is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.1k tokens (SKILL.md is roughly 4.2k 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 1.3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Sona UI: Web Artifacts Builder (anthropics/skills, 180k stars), React Doctor (makeplane/plane, 61k stars), React Router Development (remix-run/react-router, 57k stars) and React UI State Patterns (ChrisWiles/claude-code-showcase, 6.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Dinil-Thilakarathne (a GitHub user) maintains it in Dinil-Thilakarathne/sona-ui, which has 118 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 7, 2026.
Source: Dinil-Thilakarathne/sona-ui on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.