Build custom shadcn/ui components with the DS Manager agent, edit them like built-in ones and publish them in your shadcn registry. Pro feature.
Custom components are components shadcn/ui does not ship, such as a color picker or a product tour. You describe one to the agent, it writes the code, and the component gets the same page as a Button: matrix, demo, Style and Utilities tabs, and layer tree.
Pro and Lifetime accounts can build, change and fix custom components with the agent.
If the result is not what you wanted, keep talking to the agent in the same chat, or use Change with the agent later (see below).

The agent writes real React and TypeScript, and DS Manager checks the code against a set of rules before saving it:
class-variance-authority and a short list of approved packages (react-colorful and @floating-ui/react-dom), each at a pinned version.bg-blue-500 and literal colors like bg-[#f00] are refused.If the check fails, the agent fixes the code and tries again. After four failed attempts, the component is saved as a draft.
A custom component's page works like any other component page. See Editing components and Variants and states. The canvas opens on Demo, which the agent writes with every build, and Matrix shows its variants and sizes.
Edits on this page change only the custom component's own rules. When it uses a built-in component inside, such as a Popover or an Input, that part is read-only here: edit it on its own page, and the change reaches the custom component too.
The Name field is the first row of the Style tab.
The page address follows the name: Line Chart lives at /components/custom/line-chart. Old addresses still open the page. A name already used by another custom component or a built-in one is refused, with the reason in red under the field.
The code keeps the name it was built under, so projects that installed the component keep importing it. When the two names differ, a Code row under Name shows the code's name.
The three-dot button in the rail's title row opens the component menu:
A component that failed its checks is a draft. It has a Draft badge in the left nav and the components table, and a banner above the canvas: "Draft. This component failed its checks, so it is not published."
A draft stays in your system but is skipped when you publish.
When you publish, each custom component that passed its checks goes into your registry as its own item, next to the built-in components, and installs the same way they do. See Publish and install.
Share links do not show custom components. The Share popover says "Custom components are not shown in shared links." for a system that has some.