Skip to main content

component-search

Search and install components from the 400+ registries in the official shadcn directory — community registries such as magicui or aceternity, registries.json with its health status, adding registries to components.json, private GitHub registries. Use when looking for a component beyond the standard shadcn/ui and shadcn studio registries.

Source facts

Repository
Agents-Store/codex-plugins
Last source activity
November 1, 2026 at 02:46
Detected SKILL.md language
English
Stars
0
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
5 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
component-search
description
Search and install components from the 400+ registries in the official shadcn directory — community registries such as magicui or aceternity, registries.json with its health status, adding registries to components.json, private GitHub registries. Use when looking for a component beyond the standard shadcn/ui and shadcn studio registries.
## How Community Registries Work shadcn v4 supports custom registries via the `"registries"` field in `components.json`. Any registry that implements the shadcn registry protocol can be added. The official registry directory at `https://ui.shadcn.com/r/registries.json` held 418 registries on 2026-10-02 (380 not hidden; 326 healthy, 41 degraded, 39 unavailable, 12 observing) — always fetch it instead of trusting a number. The CLI can install from any registry without configuration: ```bash npx shadcn@latest add @magicui/shimmer-button ``` The CLI also installs straight from public GitHub repos — no build step, just a `registry.json` at the repo root: ```bash npx shadcn@latest add <user>/<repo>/<item> ``` GitHub registries work with `list`, `search`, `view`, and `add`, and — since CLI 4.19 — also with **private** repositories: if the repo is not publicly readable the CLI reads it through `gh` (`gh auth login`, nothing else to configure), or through `GH_TOKEN` / `GITHUB_TOKEN` where `gh` is not installed (use a fine-grained token with read-only Contents access). Public repos are always tried anonymously first. Registries additionally support server-side dynamic search (`GET /r/registry.json?q=&limit=&offset=`), which powers `shadcn search`. Registries can be declared in `components.json` or, since CLI 4.18, in `package.json#registries` (the two are merged). The **official shadcn MCP server** only searches registries listed in the project's `components.json`. To enable MCP-assisted search across the directory, populate them from the official endpoint. ## Dynamic Registry Source The authoritative list of all shadcn-compatible registries: ``` https://ui.shadcn.com/r/registries.json ``` Returns a JSON array. Each entry has: - `name` — Registry identifier (e.g., `"@magicui"`) - `url` — Registry endpoint with `{name}` placeholder (e.g., `"https://magicui.design/r/{name}.json"`) - `homepage` — Project website - `description` — Brief description - `health` — `status` (`healthy` | `degraded` | `unavailable` | `observing`), `hidden`, `score`, `statusReason`, availability figures - `ranking` — `score` and `itemCount` (missing for registries that are not ranked yet) Always fetch this endpoint instead of using a hardcoded list — it's maintained by the shadcn team and always current. **Filter by health before recommending or bulk-adding.** Skip `health.status == "unavailable"` and `health.hidden == true` (39 entries on 2026-10-02: all `unavailable`, 38 of them hidden — they would not install). Say so when you recommend a `degraded` registry (e.g. sampled items failing validation); prefer `healthy` ones with a high `ranking.score`: ```bash curl -s https://ui.shadcn.com/r/registries.json | python3 -c ' import json, sys for r in json.load(sys.stdin): h = r.get("health", {}) if h.get("status") in ("healthy", "observing") and not h.get("hidden"): print(r["name"], r["url"])' ``` ## Search Workflow ``` 1. User describes what they need ("animated button", "pricing section", "chat component") ↓ 2. Fetch https://ui.shadcn.com/r/registries.json — scan descriptions for matches ↓ 3. Consult references/community-registries.md for category-based recommendations ↓ 4. Check user's components.json — are registries configured? If not → run /add-registries to populate the available registries (the CLI can already install @registry/item for any directory entry without it — the bulk step only matters for MCP search) ↓ 5. Use MCP tools to search, or install directly via CLI ↓ 6. Install: npx shadcn@latest add @[registry]/[component] ↓ 7. Verify the component renders correctly ``` ## Adding Registries to components.json ### Add all registries (recommended) Use the `/add-registries` command to fetch the registries from the official endpoint, skip the `unavailable` and hidden ones, and add the rest to `components.json` automatically. ### Add a handful natively The CLI's native method (supersedes hand-editing): ```bash npx shadcn registry add @magicui=https://magicui.design/r/{name} @coss=https://coss.com/ui/r/{name}.json ``` Registry authors can check their registry with `npx shadcn registry validate`. Or manually: 1. Fetch the registry list: ```bash curl -s https://ui.shadcn.com/r/registries.json ``` 2. For each entry, add to `components.json` `"registries"` field using the `name` as key and `url` as value: ```json { "registries": { "@magicui": "https://magicui.design/r/{name}.json", "@aceternity": "https://ui.aceternity.com/registry/{name}.json" } } ``` 3. Merge with existing registries — do not overwrite the `"registries"` object, add to it. ### Add a single registry ```json { "registries": { "@registryname": "https://domain.com/r/{name}.json" } } ``` ## Installing from a Community Registry ```bash # Install a single component npx shadcn@latest add @magicui/shimmer-button # Install multiple components from the same registry npx shadcn@latest add @magicui/shimmer-button @magicui/animated-beam @magicui/globe # Install from different registries in one command npx shadcn@latest add @magicui/shimmer-button @aceternity/moving-border # Force overwrite existing files npx shadcn@latest add @magicui/shimmer-button --overwrite ``` The CLI auto-resolves registry URLs. Even without `components.json` configuration, the CLI can install from any known registry by name. ## MCP-Assisted Search This plugin's `.mcp.json` declares one MCP server: the official `shadcn` server (`npx shadcn@latest mcp`). It searches the registries listed in the project's `components.json` — add community registries there to expand its scope. Through this plugin its tools are named `mcp__plugin_nextjs-provision_shadcn__<tool>`: | Tool | Use | |------|-----| | `get_project_registries` | Which registries `components.json` configures | | `search_items_in_registries` | Fuzzy search across (selected) registries | | `list_items_in_registries` | Page through a registry's items (`types`, `limit`, `offset`) | | `view_items_in_registries` | Item details and file contents — `@registry/item` | | `get_item_examples_from_registries` | Demos and usage code (`calendar-demo`, `example-hero`, ...) | | `get_add_command_for_items` | The `npx shadcn@latest add ...` command for given `@registry/item` addresses | | `get_audit_checklist` | Post-install checklist after adding components | Known quirks (shadcn 4.21.1): `search_items_in_registries` prints `Add command: [object Promise]` — build the command yourself (`npx shadcn@latest add @registry/item`) or call `get_add_command_for_items`. A registry that is not in `components.json` (for example `@magicui` in a fresh project) returns `NOT_CONFIGURED` from the MCP even though the CLI installs from it — configure it first (`/add-registries` or `npx shadcn registry add`). The community MCP server `@jpisnice/shadcn-ui-mcp-server` is no longer shipped with this plugin: its `get_component` returns the Radix variant even with `--ui-library base`, and `get_component_metadata` answers "not found" for common components. For component source and demos use `npx shadcn@latest view @registry/item`, `npx shadcn@latest docs <component>`, or the tools above. Without the MCP, the CLI covers the same ground: `npx shadcn@latest search @registry -q "<term>"`, `npx shadcn@latest view @registry/item`, `npx shadcn@latest add @registry/item --dry-run`. To use the server in a user project (not through this plugin), run `npx shadcn@latest mcp init --client claude` — see the `mcp-tools` skill, and `references/mcp-config-template.json` for a ready `.mcp.json`. ## Registry Categories | Category | Registries | Component Types | |----------|-----------|-----------------| | Animation & Motion | @magicui, @aceternity (degraded), @animate-ui, @cult-ui, @motion-primitives | Animated buttons, scroll effects, parallax, globe, beams | | Extended UI | @coss (ex-Origin UI), @diceui, @basecn, @8bitcn, @boldkit, @8starlabs-ui, @cardcn | Extra components, retro/pixel style, card variants, dice rolls | | Blocks & Sections | @bundui, @blocks-so, @efferd (degraded) | Landing page sections, marketing blocks, dashboards | | E-Commerce | @commercn | Product cards, cart, checkout, reviews | | AI Components | @ai-elements, @assistant-ui, @tool-ui | Chat bubbles, prompt inputs, AI response streams, LLM UIs | | File Upload | @better-upload | Upload components, drag-and-drop, progress indicators | | Editors & misc | @plate, @shadcn-editor, @kibo-ui, @kokonutui, @reui, @intentui, @tailark (degraded), @retroui, @smoothui, @skiper-ui, @paceui (degraded), @clerk, @supabase | Rich text editors, design-system kits, auth/backend UIs | | Other | @arc, @abui (degraded), @aevr, @unlumen-ui (degraded), @einui, @billingsdk | Specialized UI, billing forms, misc | Also `degraded` on 2026-10-02: @shadcnblocks. `unavailable` (do not recommend): @chamaac, @doras-ui, @creative-tim, @ai-blocks, @hextaui, @neobrutalism. Re-check `health` in the live directory before relying on this table. See `references/community-registries.md` for the full list with URLs and descriptions. Full directory (418 registries on 2026-10-02): https://ui.shadcn.com/docs/directory ## CLAUDE.md Section for User Projects When setting up a project with community registries, add the section from `references/claude-md-section.md` to the project's CLAUDE.md. This ensures Claude always searches registries before building components from scratch. ## Verifying a Registry Works Test that a registry URL is correct by installing a known component: ```bash # Install a component from the registry npx shadcn@latest add @magicui/shimmer-button # If the install succeeds, the registry URL is correct # If it fails, check the registry's documentation for the correct URL pattern ``` The standard URL convention is `https://domain.com/r/{name}` but some registries may differ. The CLI auto-resolves known registry names — if `@registryname/component` works, the URL is valid. ## What This Skill Does NOT Cover - Standard shadcn/ui and shadcn studio components — see `component-registry` skill - Initial shadcn/ui project setup — see `setup` skill - MCP server configuration details — see `mcp-tools` skill - Theme customization — see `theme-configuration` skill
View on GitHub