← ClaudeAtlas

21st-registrylisted

Publish a React component to the user's team library on 21st.dev so teammates can install it with a single command, or install an existing one. Triggers when the user says things like "publish/share/upload this to 21st", "залей в наш регистр", "опубликуй компонент", "share with team", "make this reusable", "install our Button", "use the team button".
21st-dev/registry · ★ 5 · AI & Automation · score 77
Install: claude install-skill 21st-dev/registry
# Publish & install components in the 21st team library Use this skill in **two directions**: publishing a component for the team, and installing one the team already shared. ## Pre-flight (always) 1. Check auth: `API_KEY_21ST` env is set, or the registry CLI has saved credentials. If neither — tell the user to run `npx @21st-dev/registry login` once. Don't try to log them in yourself. 2. The CLI is `@21st-dev/registry`. Don't reinvent — use it. --- ## Publishing a component ### Decide visibility — default to unlisted in a registry | User says… | Visibility | |---|---| | "share with team", "залей нам", "publish internally", default for any unqualified ask | unlisted in the selected/default registry (no visibility flag needed) | | "share publicly via link / on my profile, but don't list it in the library" | `--unlisted` | | "publish publicly", "make it public on 21st" | `--public` | | "restrict to the registry team", "private team draft" | `--private` | **Never use `--public` without explicit user instruction.** Public components go through admin moderation and appear in the 21st library. `--unlisted` is the safe option when the user wants a shareable URL but doesn't want a library listing. ### Standard publish The CLI's positional file path triggers auto-detection — name from the default export, slug from the filename, tags from imports, demo auto-found or synthesised. So in 95% of cases this is enough: ```bash npx @21st-dev/registry ./path/to/Component.tsx \ --t