Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/blockmatic/basilicWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/rules/blockmatic/basilic/shadcnui)<a href="https://agentmods.dev/rules/blockmatic/basilic/shadcnui"><img src="https://agentmods.dev/badge/rules/blockmatic/basilic/shadcnui/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/rules/blockmatic/basilic/shadcnui"><img src="https://agentmods.dev/badge/rules/blockmatic/basilic/shadcnui.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00000 | $0.00468 |
| Opus 5.5 | $0.00000 | $0.00187 |
| Sonnet 5.5 | $0.00000 | $0.00094 |
| Haiku 4.5 | $0.00000 | $0.00047 |
Grade A, and why
shadcnui scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 22d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
Core Principles
Install in @repo/ui (packages/ui), import from @repo/ui/components/*, Base UI primitives from @repo/ui/base (never @base-ui/react or @radix-ui/react-* from apps). components.json style is base-vega. Compose with render (and nativeButton={false} for non-button nodes), not asChild. Target parts with data-slot; Base UI state uses data-open / data-checked (ARIA is separate). Update Tailwind in packages/ui; app-specific UI in the app. Brand tokens stay in packages/ui/src/styles/tokens.css.
Don't Reinvent the Wheel
Check existing blocks/templates before building. Full page/block → shadcnui-jpisnice-react MCP. Single component → shadcnui-official MCP. Only call MCP when unsure/errors
Installation Pattern
Components in packages/ui/src/components/. App's components.json: "utils": "@repo/ui/lib/utils", "ui": "@repo/ui/components"
Import Patterns
import { Button } from "@repo/ui/components/button", import { cn } from "@repo/ui/lib/utils"
Component Patterns
Use cva for variants, cn for class merging. See @.agents/skills/shadcn
Tailwind on wrappers: data-open:, data-closed:, data-checked:, data-[slot=...]. Do not add Radix data-[state=open]: on new code. data-slot names parts; data-open is not ARIA.
Design System Organization
Base (Primitives) → @repo/ui: packages/ui/src/components/, shared across apps
Blocks/Templates: Reusable (2+ apps) → @repo/ui/blocks/, App-specific → apps/{app}/components/
Mobile-First Design
All components mobile-first. See @.cursor/rules/frontend/mobile-first.mdc
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 22d ago Changed 5ea86c88c477
- 28d ago Changed · +2 lines b1fc258ece91
- 1mo ago First seen · 28 lines · 0 tokens per session scan A 436dc6f56435
shadcnui is a cursor rule published in the GitHub repository blockmatic/basilic (90 stars, last pushed today), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 468 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other cursor rules, from other repositories
animations
Animations Rules and Best Practices.
hatch3r-design-system-detection
Mandatory detection of existing design tokens, theme primitives, and component library before AI agents author new UI components.
hatch3r-ux-states-and-flows
Four-state surface contract (loading/empty/error/partial), user-flow decomposition before implementation, and microcopy + tone discipline for end-user UIs.
hatch3r-accessibility-standards
Accessibility standards covering WCAG 2.2 AA compliance, keyboard navigation, screen readers, and ARIA patterns.
hatch3r-component-conventions
Component structure, styling tokens, loading/error/empty states, form validation timing, and accessible label patterns for Vue, React, and JSX.
hatch3r-theming
Theming, dark mode, and color system conventions for the project.