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.
Author, validate, preview, test, install, or configure API-backed Homarr Custom JSX v2 widgets.
$ npx skills add homarr-labs/homarr --skill homarr-custom-widget -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install homarr-labs/homarr homarr-custom-widget --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/homarr-labs/homarr.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/homarr-custom-widget .claude/skills/homarr-custom-widget && 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 "homarr-custom-widget" agent skill from https://github.com/homarr-labs/homarr/tree/dev/.agents/skills/homarr-custom-widget into .claude/skills/homarr-custom-widget/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "homarr-custom-widget", 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/homarr-labs/homarr/tree/dev/.agents/skills/homarr-custom-widgetType 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 homarr-labs/homarr --skill homarr-custom-widget -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install homarr-labs/homarr homarr-custom-widget --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/homarr-labs/homarr.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/homarr-custom-widget .agents/skills/homarr-custom-widget && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "homarr-custom-widget" agent skill from https://github.com/homarr-labs/homarr/tree/dev/.agents/skills/homarr-custom-widget into .agents/skills/homarr-custom-widget/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "homarr-custom-widget", 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 homarr-labs/homarr --skill homarr-custom-widget -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install homarr-labs/homarr homarr-custom-widget --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/homarr-labs/homarr.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/homarr-custom-widget .cursor/skills/homarr-custom-widget && 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 "homarr-custom-widget" agent skill from https://github.com/homarr-labs/homarr/tree/dev/.agents/skills/homarr-custom-widget into .cursor/skills/homarr-custom-widget/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "homarr-custom-widget", 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/homarr-labs/homarr.git --path .agents/skills/homarr-custom-widget--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 homarr-labs/homarr --skill homarr-custom-widget -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install homarr-labs/homarr homarr-custom-widget --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/homarr-labs/homarr.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/homarr-custom-widget .gemini/skills/homarr-custom-widget && 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 "homarr-custom-widget" agent skill from https://github.com/homarr-labs/homarr/tree/dev/.agents/skills/homarr-custom-widget into .gemini/skills/homarr-custom-widget/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "homarr-custom-widget", 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 homarr-labs/homarr homarr-custom-widgetInstalls 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 homarr-labs/homarr --skill homarr-custom-widget -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/homarr-labs/homarr.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/homarr-custom-widget .github/skills/homarr-custom-widget && 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 "homarr-custom-widget" agent skill from https://github.com/homarr-labs/homarr/tree/dev/.agents/skills/homarr-custom-widget into .github/skills/homarr-custom-widget/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "homarr-custom-widget", 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 homarr-labs/homarr --skill homarr-custom-widget -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install homarr-labs/homarr homarr-custom-widget --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/homarr-labs/homarr.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/homarr-custom-widget .opencode/skills/homarr-custom-widget && 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 "homarr-custom-widget" agent skill from https://github.com/homarr-labs/homarr/tree/dev/.agents/skills/homarr-custom-widget into .opencode/skills/homarr-custom-widget/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "homarr-custom-widget", 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.
homarr-custom-widgetAuthor, validate, preview, test, install, or configure API-backed Homarr Custom JSX v2 widgets.
Homarr Custom Widget is an agent skill from homarr-labs/homarr. Author, validate, preview, test, install, or configure API-backed Homarr Custom JSX v2 widgets.
Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `agents/openai.yaml`, `references/runtime.md` and `references/schema.md`).
It sits in Frontend & Design, covering React components. The repository describes itself as: A modern and easy to use dashboard. 80+ integrations. 20K+ icons built in. Authentication out of the box. No YAML, drag and drop configuration. The licence is Apache-2.0.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit bab37f7. 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.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From 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.
Homarr Custom Widget loads about 1.1k tokens when it runs, and up to ~2.7k if it reads all its reference files. Until then it costs about 29 tokens; SKILL.md has 462 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 homarr-labs/homarr at commit bab37f7, republished under its Apache-2.0 licence (© homarr-labs). 462 words, ~1,088 tokens.
.claude/skills/homarr-custom-widget/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Author requested widgets with release context; validate, test, persist, and return artifacts.
contextAlreadyLoaded reuses context; phaseComplete advances. Stop only for
genuine provider/model, lifecycle-service, or workbench-closure failure.customWidget_workshopSearch, customWidget_workshopGet, and
customWidget_workshopInstall; configure and persist.Return one fenced json block with the complete definition; keep evidence prose outside it. The definition has keyed
sources, requests, template, and optional options; actions are requests with kind: "action".
sources.default is required. HTTP has baseUrl, networkScope, and credential-free auth; localhost/loopback requires
networkScope: "loopback"; never widen an explicit scope. Saved sources use type: "integration"/integrationKind;
Homarr holds credentials.integration_getKinds/integration_all, bind integrationId
before preview, omit URL/auth, and keep non-GET requests as actions.{option:name}/{param:name}; query/body uses {"$option":"name"}/{"$param":"name"}.
Loads use trigger: "load"; manual helpers use trigger: "manual".confirmation, permission, and invalidates; DELETE requires full permission/confirmation.
$param is manual-only; $option may drive loads.label, control, default; installation config is options.name, never inputs. Request-bound TextInput,
Select, NumberInput, Pagination use literal bind + default and manual SubFetch params map inputs.<name> to $param.
Dependent pagination uses defaultValue={1}/resetKey={inputs.query}. Remove controls without an option/request/helper; guard arrays/nested with ??;
preserve documented timezone values; use UTC only when the contract says UTC.Icon may alias TablerIcon. Keep hierarchy,
theme tokens, useful states, and narrow/wide layouts purposeful.customWidget_previewCreate; it validates both manifest and JSX.
Use customWidget_validateTemplate only for isolated JSX diagnostics, never as a preview prerequisite. Use
customWidget_previewReviseTemplate for JSX-only corrections after a preview exists. In the Assistant wrapper, multiline
JSX uses templateLines and preview creation receives the complete definition.customWidget_previewCreate with the corrected definition; use customWidget_previewReviseTemplate
only for JSX errors after a preview exists. Stop only for genuine provider/model, lifecycle-service, or
workbench-closure failure.previewCreate used definitionId, persist with customWidget_updateFromPreview; otherwise use
customWidget_createFromPreview. Follow create nextAction once. Configure credentials in Homarr; never repeat plaintext
secrets.Report actual lifecycle results. If unavailable, add one post-artifact Unverified: line naming missing validation, preview,
renderer, or persistence. Never claim rendering/persistence from schema checks.
© homarr-labs, 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
SKILL.md and 4 other files (references) in .agents/skills/homarr-custom-widget of homarr-labs/homarr.
Open the folder on GitHubat commit bab37f7
Homarr Custom Widget 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 |
|---|---|---|---|---|---|---|
| Homarr Custom Widget this skillhomarr-labs/homarr | 5.1k | — | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| Web Artifacts Builderanthropics/skills | 180k | 40 repos | ~769 | Automated safety check: Pass | Apache-2.0 | |
| Tailwindcss Developmentanonaddy/anonaddy | 4.9k | 10 repos | ~865 | Automated safety check: Pass | MIT | |
| Core Component Library PatternsChrisWiles/claude-code-showcase | 6.1k | 8 repos | ~1.2k | Automated safety check: Pass | None | |
| 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 |
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.
anonaddy/anonaddy
Always invoke when the user's message includes 'tailwind' in any form.
ChrisWiles/claude-code-showcase
Reference for building UI with a token-based core component library: spacing, color and typography tokens, Box, stacks, Text, Button, Input and Card, plus layout patterns.
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.
vercel-labs/next-beats
Guides implementing animated page and state transitions in React with the native View Transition API, covering shared elements, list reorders and directional navigation.
homarr-labs/homarr
Write Homarr docs only when users need information to set up, use, or troubleshoot the app.
homarr-labs/homarr
Expose Homarr tRPC procedures safely through MCP. An agent skill from homarr-labs/homarr.
homarr-labs/homarr
Navigate Homarr's monorepo architecture and reuse shared packages.
Categories
Author, validate, preview, test, install, or configure API-backed Homarr Custom JSX v2 widgets. Homarr Custom Widget is an agent skill from homarr-labs/homarr. Author, validate, preview, test, install, or configure API-backed Homarr Custom JSX v2 widgets.
Homarr Custom Widget fits situations like: tasks that involve React components.
Run `npx skills add homarr-labs/homarr --skill homarr-custom-widget -a claude-code`. Or copy the skill folder (.agents/skills/homarr-custom-widget in homarr-labs/homarr) into .claude/skills/homarr-custom-widget in your project. Claude Code loads it when a task matches its description.
Run `npx skills add homarr-labs/homarr --skill homarr-custom-widget -a codex`. Or copy the skill folder (.agents/skills/homarr-custom-widget in homarr-labs/homarr) into .agents/skills/homarr-custom-widget 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 homarr-labs/homarr --skill homarr-custom-widget -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/homarr-custom-widget, .gemini/skills/homarr-custom-widget, .github/skills/homarr-custom-widget and .opencode/skills/homarr-custom-widget in your project.
SKILL.md names no scripts, command-line tools or credentials: Homarr Custom Widget is instructions for the agent only.
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.
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.
Homarr Custom Widget 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.
About 1.1k tokens (SKILL.md is roughly 4.4k 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.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Homarr Custom Widget: Web Artifacts Builder (anthropics/skills, 180k stars), Tailwindcss Development (anonaddy/anonaddy, 4.9k stars), Core Component Library Patterns (ChrisWiles/claude-code-showcase, 6.1k stars) and React Router Development (remix-run/react-router, 57k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
homarr-labs (a GitHub organization) maintains it in homarr-labs/homarr, which has 5,063 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 11, 2026.
Source: homarr-labs/homarr on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.