Manage Apple Reminders via the `remindctl` CLI on macOS (list, add, edit, complete, delete)....
npx skills add noartem/skills --skill "shadcn-vue"
Install specific skill from multi-skill repository
# Description
shadcn-vue for Vue/Nuxt with Reka UI components and Tailwind. Use for accessible UI, Auto Form, data tables, charts, dark mode, MCP server setup, or encountering component imports, Reka UI errors.
# SKILL.md
name: shadcn-vue
description: shadcn-vue for Vue/Nuxt with Reka UI components and Tailwind. Use for accessible UI, Auto Form, data tables, charts, dark mode, MCP server setup, or encountering component imports, Reka UI errors.
shadcn-vue
Quick Start (3 Minutes)
For Vue Projects (Vite)
1. Initialize shadcn-vue
npx shadcn-vue@latest init
During initialization:
- Style:
New YorkorDefault(cannot change later!) - Base color:
Slate(recommended) - CSS variables:
Yes(required for dark mode)
2. Configure TypeScript Path Aliases
// tsconfig.json
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"]
}
}
}
3. Configure Vite
// vite.config.ts
import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import tailwindcss from "@tailwindcss/vite"; // Tailwind v4
import path from "path";
export default defineConfig({
plugins: [vue(), tailwindcss()],
resolve: {
alias: {
"@": path.resolve(__dirname, "./src"),
},
},
});
4. Add Your First Component
npx shadcn-vue@latest add button
Quick Reference
| Need | Command or file |
|---|---|
| Initialize project | npx shadcn-vue@latest init |
| Add component | npx shadcn-vue@latest add button |
| Add multiple components | npx shadcn-vue@latest add button card dialog |
| Build registry JSON | npx shadcn-vue@latest build |
| Generate component docs | npx tsx scripts/generate-shadcn-components.ts |
| Enable CSS variables | components.json β tailwind.cssVariables: true |
| Add registry namespace | components.json β registries map |
| Opencode MCP init | npx shadcn-vue@latest mcp init --client opencode |
| Codex MCP config | ~/.codex/config.toml with mcp_servers.shadcn |
Bundled Resources
Templates (templates/):
quick-setup.ts- Complete setup guide for Vue/Nuxt with examples (190 lines)
References (references/):
cli.md- CLI commands and optionsmcp.md- MCP setup, client configs, promptstheming.md- Theming andcssVariableserror-catalog.md- All 7 documented issues with solutions (267 lines)component-examples.md- All 50+ component examples with codedark-mode-setup.md- Complete dark mode implementation guidedata-tables.md- Data tables with TanStack Table
Component Documentation (components/):
references/components.md- Index of all shadcn-vue componentscomponents/<component>.md- Individual component documentation with installation, usage, and examples
Official Documentation:
- shadcn-vue Docs: https://shadcn-vue.com
- Reka UI Docs: https://reka-ui.com
- GitHub: https://github.com/radix-vue/shadcn-vue
When to Load References
Load these references based on the task:
- Load
references/error-catalog.mdwhen: - User encounters "component not found" or import errors
- Setup commands fail or configuration issues arise
- Tailwind CSS variables or TypeScript paths broken
-
Trigger phrases: "not working", "error", "fails to", "broken"
-
Load
references/components.mdwhen: - User asks what components are available (names, categories, status)
- User needs to add/use a component and wants the correct install/import paths
-
You need to confirm a component exists before recommending a custom build
-
Load
references/component-examples.mdwhen: - User asks "how do I implement [component]?"
- Need copy-paste examples for specific components
- Building forms, tables, navigation, or data display
-
Trigger phrases: "example", "how to use", "implement", "code sample"
-
Load
references/cli.mdwhen: - User asks how to run the CLI (
init,add,update) or what prompts mean - Need the exact command/flags for installing one or more components
-
Troubleshooting CLI-related issues (registry, paths, overwrites)
-
Load
references/dark-mode-setup.mdwhen: - Implementing dark mode / theme switching
- User mentions Vue 3 + Vite, Nuxt, or Astro setup
- Need composable patterns for theme management
-
Trigger phrases: "dark mode", "theme", "light/dark", "color scheme"
-
Load
references/theming.mdwhen: - User wants to customize theme tokens via CSS variables (
cssVariables,:root,.dark) - Need to wire Tailwind to CSS-variable-based colors and radii
-
Setting up/adjusting design tokens (colors, radius, typography) for shadcn-vue
-
Load
references/mcp.mdwhen: - Setting up MCP server for opencode, Codex, Cursor, VS Code
- Configuring registries in
components.json - Troubleshooting missing components or registry namespaces
-
Trigger phrases: "MCP", "opencode", "codex", "cursor", "registry"
-
Load
references/data-tables.mdwhen: - Building sortable/filterable/paginated tables
- User mentions TanStack Table or
DataTable - Trigger phrases: "data table", "table", "tanstack", "sorting", "pagination"
Critical Rules
Always Do
β
Run init before adding components
- Creates required configuration and utilities
- Sets up path aliases
β
Use CSS variables for theming (cssVariables: true)
- Enables dark mode support
- Flexible theme customization
β Configure TypeScript path aliases
- Required for component imports
- Must match
components.jsonaliases
β Keep components.json in version control
- Team members need same configuration
- Documents project setup
Never Do
β Don't change style after initialization
- Requires complete reinstall
- Reinitialize in new directory instead
β Don't mix Radix Vue and Reka UI v2
- Incompatible component APIs
- Use one or the other
β Don't skip TypeScript configuration
- Component imports will fail
- IDE autocomplete won't work
β Don't use without Tailwind CSS
- Components are styled with Tailwind
- Won't render correctly
Common Mistakes
- Running
addbeforeinitand missingcomponents.json. - Forgetting to enable the MCP server in the client UI/config.
- Mis-typed registry namespaces (
@namespace/component). - Using CSS variable classes without
tailwind.cssVariables: true.
CLI Commands Reference
init Command
# Initialize in current directory
npx shadcn-vue@latest init
# Initialize in specific directory (monorepo)
npx shadcn-vue@latest init -c ./apps/web
add Command
# Add single component
npx shadcn-vue@latest add button
# Add multiple components
npx shadcn-vue@latest add button card dialog
# Add all components
npx shadcn-vue@latest add --all
diff Command
# Check for component updates
npx shadcn-vue@latest diff button
mcp Command
# Initialize MCP for specific client
npx shadcn-vue@latest mcp init --client opencode
npx shadcn-vue@latest mcp init --client codex
npx shadcn-vue@latest mcp init --client cursor
npx shadcn-vue@latest mcp init --client vscode
Configuration
shadcn-vue uses components.json to configure:
- Component paths (
@/components/ui) - Utils location (
@/lib/utils) - Tailwind config paths
- TypeScript paths
Full example: See templates/components.json or generate via npx shadcn-vue@latest init
Utils Library
The @/lib/utils.ts file provides the cn() helper for merging Tailwind classes:
- Combines multiple className strings
- Uses
clsx+tailwind-mergefor conflict resolution
Auto-generated by shadcn-vue init - no manual setup needed.
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.