Wonder Blocks
Khan/wonder-blocks
Implements user interfaces using the Wonder Blocks (WB) design system — Khan Academy's React component library.
Search 21st.dev component registry for production-ready React components.
$ npx skills add yonatangross/orchestkit --skill component-search -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install yonatangross/orchestkit component-search --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/yonatangross/orchestkit.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/skills/component-search .claude/skills/component-search && 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 "component-search" agent skill from https://github.com/yonatangross/orchestkit/tree/main/src/skills/component-search into .claude/skills/component-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "component-search", 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/yonatangross/orchestkit/tree/main/src/skills/component-searchType 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 yonatangross/orchestkit --skill component-search -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install yonatangross/orchestkit component-search --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yonatangross/orchestkit.git skills-src && mkdir -p .agents/skills && cp -r skills-src/src/skills/component-search .agents/skills/component-search && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "component-search" agent skill from https://github.com/yonatangross/orchestkit/tree/main/src/skills/component-search into .agents/skills/component-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "component-search", 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 yonatangross/orchestkit --skill component-search -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install yonatangross/orchestkit component-search --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yonatangross/orchestkit.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/src/skills/component-search .cursor/skills/component-search && 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 "component-search" agent skill from https://github.com/yonatangross/orchestkit/tree/main/src/skills/component-search into .cursor/skills/component-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "component-search", 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/yonatangross/orchestkit.git --path src/skills/component-search--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 yonatangross/orchestkit --skill component-search -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install yonatangross/orchestkit component-search --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yonatangross/orchestkit.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/src/skills/component-search .gemini/skills/component-search && 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 "component-search" agent skill from https://github.com/yonatangross/orchestkit/tree/main/src/skills/component-search into .gemini/skills/component-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "component-search", 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 yonatangross/orchestkit component-searchInstalls 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 yonatangross/orchestkit --skill component-search -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/yonatangross/orchestkit.git skills-src && mkdir -p .github/skills && cp -r skills-src/src/skills/component-search .github/skills/component-search && 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 "component-search" agent skill from https://github.com/yonatangross/orchestkit/tree/main/src/skills/component-search into .github/skills/component-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "component-search", 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 yonatangross/orchestkit --skill component-search -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install yonatangross/orchestkit component-search --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yonatangross/orchestkit.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/src/skills/component-search .opencode/skills/component-search && 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 "component-search" agent skill from https://github.com/yonatangross/orchestkit/tree/main/src/skills/component-search into .opencode/skills/component-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "component-search", 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.
component-searchSearch 21st.dev component registry for production-ready React components.
Component Search is an agent skill from yonatangross/orchestkit. Search 21st.dev component registry for production-ready React components. Finds components by natural language description, filters by framework and style system, returns ranked results with install instructions. Use when looking for UI components, finding alternatives to existing components, or sourcing design system building blocks.
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `test-cases.json`). Compatibility notes: Claude Code 2.1.277+. Optional: 21st-dev-magic MCP server.
It sits in Frontend & Design, covering Design systems and React components. It works with Model Context Protocol. The repository describes itself as: The Complete AI Development Toolkit for Claude Code. 106 skills, 36 agents, 171 hooks. Install ork for stable (v9.x), or ork-alpha for the v10 line, which ships daily. The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 0ef71d2. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadGlobGrepWebFetchWebSearchAskUserQuestionTaskCreateTaskUpdatemcp__21st-dev-magic__search_pickermcp__21st-dev-magic__search…and 5 more on the same allowed-tools line.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npxnpmFrom 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:
21st.devFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
TWENTY_FIRST_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Claude Code 2.1.277+. Optional: 21st-dev-magic MCP server.
From compatibility in the SKILL.md frontmatter.
Component Search loads about 2.3k tokens when it runs. Until then it costs about 88 tokens; SKILL.md has 516 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 yonatangross/orchestkit at commit 0ef71d2, republished under its MIT licence (© yonatangross). 516 words, ~2,306 tokens.
.claude/skills/component-search/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Search 21st.dev's registry of production-ready React components. Returns ranked results with code, previews, and install instructions.
component-search animated pricing table
component-search sidebar with collapsible sections
component-search dark mode toggle switchQuery: "animated pricing table with monthly/annual toggle"
│
▼
┌──────────────────────────────┐
│ 21st.dev Magic MCP │ Search the 21st.dev developer registry
│ @21st-dev/magic │ Filter: React, Tailwind, shadcn
└──────────┬───────────────────┘
│
▼
┌──────────────────────────────┐
│ Results (ranked by relevance)│
│ │
│ 1. PricingToggle (98% match) │ ★ 2.3K views · shadcn/ui
│ 2. PricingCards (87% match) │ ★ 1.8K views · Radix
│ 3. AnimatedPricing (82%) │ ★ 950 views · Motion
└──────────────────────────────┘QUERY = "" # Component description
# 1. Create main task IMMEDIATELY
TaskCreate(subject="Component search: {QUERY}", description="Search 21st.dev registry", activeForm="Searching for {QUERY}")
# 2. Create subtasks for each phase
TaskCreate(subject="Parse query and detect project context", activeForm="Detecting project context") # id=2
TaskCreate(subject="Search component registry", activeForm="Searching registry") # id=3
TaskCreate(subject="Present and deliver results", activeForm="Presenting results") # id=4
# 3. Set dependencies for sequential phases
TaskUpdate(taskId="3", addBlockedBy=["2"]) # Search needs project context first
TaskUpdate(taskId="4", addBlockedBy=["3"]) # Results need search done
# 4. Update status as you progress
TaskUpdate(taskId="2", status="in_progress") # When starting
TaskUpdate(taskId="2", status="completed") # When done — repeat for each subtask
# Detect project context for framework filtering
Glob("**/package.json")
# Read to determine: React version, Tailwind, shadcn/ui, styling approach
# Detect shadcn/ui style for result ranking
Glob("**/components.json")
# Read → "style" field (e.g., "radix-luma", "base-nova")
# Used to prefer components matching the project's visual languageThe reason is choice, not cost. Search returns a preview image, a video, the
author and the installCommand — enough for a human to recognise the right
component at a glance. The model cannot. Guessing which of eight "command palette"
results the user meant is the failure mode this flow exists to prevent, and it
stays a failure mode on every pricing tier.
If 21st-dev-magic MCP is available (the real path):
# 1. BROWSE. Prefer search_picker: same params and results as search, but it
# renders an inline picker so the USER chooses. Do not pre-filter to one
# result on their behalf — show the options.
mcp__21st-dev-magic__search_picker(query="{QUERY}", type="component", limit=8)
# 2. PICK — the user selects. Stop here and wait.
# 3. RETRIEVE — the chosen component.
mcp__21st-dev-magic__get_component(id=<demo id from the chosen result>)search returns an installCommand containing ?api_key=$API_KEY_21ST. That
is a different env var from the MCP's TWENTY_FIRST_API_KEY; if
npx shadcn add fails auth, that variable is missing from the environment.get_component is the only metered tool; search, search_picker, search_logo,
get_theme and every list/metadata tool are unmetered on all tiers.
Call get_usage rather than assuming a cap. It returns tier plus
freeRetrievalsRemaining (both null when unlimited).
| tier | get_component |
|---|---|
free | 2 / day — treat each retrieval as the day's budget: never speculative, never in a loop, never "to compare" |
paid | unlimited — comparing two candidates is fine; the picker step still applies |
Written 2026-08-16 against a free account and corrected 2026-08-17 when the account went paid: the original text argued the flow from the 2/day cap, which made it read as obsolete the moment the cap lifted. The cap is a constraint; letting the user choose is the design.
If 21st-dev-magic is NOT available (fallback):
# Genuine fallback ONLY — scraping returns no ids, no install commands, and
# no structured metadata. If the MCP is configured, you should never be here.
WebSearch("site:21st.dev {QUERY} React component")
# Or browse the registry
WebFetch("https://21st.dev", "Search for: {QUERY}")Alternative generation path — v0.app MCP (2026): When the registry doesn't have a matching component, fall back to AI generation via the v0.app MCP server rather than WebFetch scraping:
# If @vercel/v0-mcp is available
# v0.app generates from the same query and can pin to shadcn style
# (e.g., luma / nova / lyra) via `shadcn apply` after download.This is a generation path, not a registry search — results will not have view counts or stars. Prefer registry search when possible so you get battle-tested components; use v0.app only when the registry misses.
Show top 3 matches with:
AskUserQuestion(questions=[{
"question": "Which component to use?",
"header": "Component",
"options": [
{"label": "{name_1} (Recommended)", "description": "{desc_1} — {views_1} views"},
{"label": "{name_2}", "description": "{desc_2} — {views_2} views"},
{"label": "{name_3}", "description": "{desc_3} — {views_3} views"},
{"label": "None — generate from scratch", "description": "Build a custom component instead"}
],
"multiSelect": false
}])For the selected component:
npm install commands)| Project Stack | Search Filter | Notes |
|---|---|---|
| React + Tailwind | Default — best coverage | Most 21st.dev components |
| React + CSS Modules | Filter non-Tailwind | Fewer results |
| Next.js App Router | Prefer RSC-compatible | Check "use client" directives |
| Vue / Svelte | Not supported | 21st.dev is React-only |
| shadcn/ui style | Match visual language | Luma→rounded/pill, Nova→compact, Lyra→sharp |
shadcn v4 style awareness: When components.json has a style (e.g., "radix-luma"), prefer components whose visual language matches — rounded pill shapes for Luma, dense layouts for Nova/Mira, sharp edges for Lyra. Components can be adapted post-install, but a closer match reduces customization work.
ork:design-to-code — Full mockup-to-component pipeline (uses this skill)ork:design-system-tokens — Adapt components to project tokensork:ui-components — Component library patterns© yonatangross, 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 1 other file in src/skills/component-search of yonatangross/orchestkit.
Open the folder on GitHubat commit 0ef71d2
Component Search 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 |
|---|---|---|---|---|---|---|
| Component Search this skillyonatangross/orchestkit | 289 | — | ~2.3k | Automated safety check: Pass | MIT | |
| Wonder BlocksKhan/wonder-blocks | 163 | — | ~3.2k | Automated safety check: Pass | MIT | |
| Integrating shadcn/ui Componentsgoogle-labs-code/stitch-skills | 8.4k | 4 repos | ~2.3k | Automated safety check: Notes | Apache-2.0 | |
| Figma use_figma Plugin API Ruleswarpdotdev/warp | 65k | 4 repos | ~4.4k | Automated safety check: Pass | AGPL-3.0 | |
| Creative Tim UI Blockscreativetimofficial/ui | 12k | — | ~2.1k | Automated safety check: Notes | MIT | |
| Activepieces Design Systemactivepieces/activepieces | 25k | — | ~3.6k | Automated safety check: Pass | Custom licence |
Khan/wonder-blocks
Implements user interfaces using the Wonder Blocks (WB) design system — Khan Academy's React component library.
google-labs-code/stitch-skills
Guides finding, installing, customizing and wiring up shadcn/ui components in a project, with MCP tools for the component catalog and registries.
warpdotdev/warp
Required groundwork before any use_figma call: the rules and reference files for running JavaScript in a Figma file through the Plugin API without common failures.
creativetimofficial/ui
Helps install, generate and review Creative Tim UI blocks: shadcn/ui-based React and Tailwind sections that follow a restrained, production-minded design philosophy.
activepieces/activepieces
Design system for Activepieces (open-source AI automation platform, "open source replacement for Zapier").
warpdotdev/warp
Maps published Figma components to their code implementations with Code Connect, using the Figma MCP suggestion and mapping tools.
yonatangross/orchestkit
API contract design for REST and GraphQL, covering resource shape, URL and header versioning with deprecation windows, RFC 9457 Problem Details error handling, and OpenAPI specs.
yonatangross/orchestkit
ADR templates in the Nygard format with context, decision, consequences, and alternatives.
yonatangross/orchestkit
Single-pass codebase analysis leveraging a 1M-token context window for comprehensive security scanning, architecture review, and dependency auditing.
yonatangross/orchestkit
Structured review processes, conventional comments, language-specific checklists, and feedback templates.
yonatangross/orchestkit
Creates GitHub pull requests with pre-flight validation, conventional title formatting, and structured summary generation.
yonatangross/orchestkit
Multi-angle codebase exploration spawning 3-5 parallel agents for code structure, data flow, architecture patterns, and health assessment.
Works with
Categories
Search 21st.dev component registry for production-ready React components. Component Search is an agent skill from yonatangross/orchestkit.dev component registry for production-ready React components.
Component Search fits situations like: looking for UI components; finding alternatives to existing components; sourcing design system building blocks.
Run `npx skills add yonatangross/orchestkit --skill component-search -a claude-code`. Or copy the skill folder (src/skills/component-search in yonatangross/orchestkit) into .claude/skills/component-search in your project. Claude Code loads it when a task matches its description.
Run `npx skills add yonatangross/orchestkit --skill component-search -a codex`. Or copy the skill folder (src/skills/component-search in yonatangross/orchestkit) into .agents/skills/component-search 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 yonatangross/orchestkit --skill component-search -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/component-search, .gemini/skills/component-search, .github/skills/component-search and .opencode/skills/component-search in your project.
Going by SKILL.md and its folder, Component Search needs the command-line tools its instructions call (npx and npm) and credentials named TWENTY_FIRST_API_KEY. Our summary lists: Python 3; Node.js; A credential in TWENTY_FIRST_API_KEY. Its frontmatter pre-approves these tools: Read, Glob, Grep, WebFetch, WebSearch, AskUserQuestion, TaskCreate, TaskUpdate, mcp__21st-dev-magic__search_picker, mcp__21st-dev-magic__search, mcp__21st-dev-magic__get_component, mcp__21st-dev-magic__get_theme, mcp__21st-dev-magic__search_logo, mcp__21st-dev-magic__get_usage, TaskList. Compatibility (from SKILL.md): Claude Code 2.1.277+. Optional: 21st-dev-magic MCP server..
SKILL.md names 1 domain. In commands or code: 21st.dev; 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.
Component Search is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Component Search: Wonder Blocks (Khan/wonder-blocks, 163 stars), Integrating shadcn/ui Components (google-labs-code/stitch-skills, 8.4k stars), Figma use_figma Plugin API Rules (warpdotdev/warp, 65k stars) and Creative Tim UI Blocks (creativetimofficial/ui, 12k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
yonatangross (a GitHub user) maintains it in yonatangross/orchestkit, which has 289 GitHub stars. The repository holds 108 skills in this directory. The repository was last updated on October 7, 2026.
Source: yonatangross/orchestkit on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.