For AI assistants
The registry is static JSON at a stable URL, which is the whole reason assistants can work with it. Three surfaces build on that: a text index, an MCP server, and a skill.
llms.txt
A plain text index of the system, in the format assistants already expect.
duckui.davideghiotto.it/llms.txt lists every component with a one-line description, the install steps and the four rules. llms-full.txt adds the full prop tables for assistants that can take the whole thing in one read.
Both files are generated from the same source as these docs, so they cannot drift from what the site says.
curl https://duckui.davideghiotto.it/llms.txtMCP
The shadcn MCP server reads any registry configured in components.json, including this one.
{
"mcpServers": {
"shadcn": {
"command": "npx",
"args": ["-y", "shadcn@latest", "mcp"]
}
}
}# Claude Code
claude mcp add shadcn -- npx shadcn@latest mcp
# then, in any project whose components.json has the @duck namespace:
# "search the duck registry for an avatar"
# "add the quack button to this page"Nothing duck-specific is involved. The server enumerates the namespaces in your components.json, and @duck is one of them.
Skill
For assistants that support skills, this is the deepest surface: the design rules, not just the file list.
skills add dacoder/duck-uiThe skill teaches the composition patterns, the holo budget, the token names and the install order. It activates on its own when a project's components.json contains the @duck namespace.
Rules to paste
If your tool has none of the above, this block is enough to keep an assistant on-system.
duck/ui rules:
- Install @duck/theme before any component.
- At most one holo element per viewport. Everything else uses primary (duck lime).
- Semantic tokens only: bg-primary, text-muted-foreground, border-border. Never raw hex.
- Dark mode is the default. Light mode is the variant.
- For anything duck/ui does not ship (dialog, dropdown, table), use standard shadcn.
The theme styles it already.