Installation

Two forms of one command. Both put the same files in your repo.

Before you start

A project shadcn's CLI has set up: components.json at the root, Tailwind 4 in the stylesheet. npx shadcn@latest init does that from nothing.

GitHub form

pnpm dlx shadcn@latest add tradecn/ui/data-grid#v1.4.13
npx shadcn@latest add tradecn/ui/data-grid#v1.4.13
yarn dlx shadcn@latest add tradecn/ui/data-grid#v1.4.13
bunx --bun shadcn@latest add tradecn/ui/data-grid#v1.4.13

Pin the tag. The tag is the version. There is no npm package.

Namespace form

Point a namespace at tradecn.dev in components.json:

{
  "registries": {
    "@tradecn": "https://tradecn.dev/r/{name}.json"
  }
}
pnpm dlx shadcn@latest add @tradecn/data-grid
npx shadcn@latest add @tradecn/data-grid
yarn dlx shadcn@latest add @tradecn/data-grid
bunx --bun shadcn@latest add @tradecn/data-grid

That URL is the latest release. Put the tag in it to pin: https://tradecn.dev/r/v1.4.13/{name}.json. Same files either way.

Updating

Two commands. Neither touches the other's files. Put the tag you're moving to in the first one.

pnpm dlx shadcn@latest add tradecn/ui/data-grid#v1.4.13 --diff   # a tradecn change
pnpm dlx shadcn@latest add tooltip --diff                       # a shadcn change underneath
npx shadcn@latest add tradecn/ui/data-grid#v1.4.13 --diff   # a tradecn change
npx shadcn@latest add tooltip --diff                       # a shadcn change underneath
yarn dlx shadcn@latest add tradecn/ui/data-grid#v1.4.13 --diff   # a tradecn change
yarn dlx shadcn@latest add tooltip --diff                       # a shadcn change underneath
bunx --bun shadcn@latest add tradecn/ui/data-grid#v1.4.13 --diff   # a tradecn change
bunx --bun shadcn@latest add tooltip --diff                       # a shadcn change underneath

Every item at once

The namespace form takes a list. This is every item at v1.4.13:

pnpm dlx shadcn@latest add @tradecn/format @tradecn/row-store @tradecn/flash-cell @tradecn/data-grid @tradecn/feed-health @tradecn/use-hotkeys @tradecn/command-palette @tradecn/panel @tradecn/sparkline @tradecn/watchlist @tradecn/blotter @tradecn/workspace @tradecn/ticket @tradecn/countdown @tradecn/quote-field @tradecn/rfq-ticket @tradecn/rfq-stack @tradecn/perf-monitor @tradecn/hotkey-editor @tradecn/column-chooser @tradecn/rules-editor @tradecn/alerts @tradecn/status-bar @tradecn/parameter-grid @tradecn/positions @tradecn/audit-trail @tradecn/layout-manager @tradecn/instrument-search @tradecn/depth-ladder @tradecn/spread-matrix @tradecn/quote-panel @tradecn/session-guard @tradecn/price-chart @tradecn/grid-rules @tradecn/preferences @tradecn/alert-store @tradecn/session-calendar @tradecn/limits @tradecn/window-set @tradecn/tradecn-amber @tradecn/tradecn-slate @tradecn/tradecn-slate-east
npx shadcn@latest add @tradecn/format @tradecn/row-store @tradecn/flash-cell @tradecn/data-grid @tradecn/feed-health @tradecn/use-hotkeys @tradecn/command-palette @tradecn/panel @tradecn/sparkline @tradecn/watchlist @tradecn/blotter @tradecn/workspace @tradecn/ticket @tradecn/countdown @tradecn/quote-field @tradecn/rfq-ticket @tradecn/rfq-stack @tradecn/perf-monitor @tradecn/hotkey-editor @tradecn/column-chooser @tradecn/rules-editor @tradecn/alerts @tradecn/status-bar @tradecn/parameter-grid @tradecn/positions @tradecn/audit-trail @tradecn/layout-manager @tradecn/instrument-search @tradecn/depth-ladder @tradecn/spread-matrix @tradecn/quote-panel @tradecn/session-guard @tradecn/price-chart @tradecn/grid-rules @tradecn/preferences @tradecn/alert-store @tradecn/session-calendar @tradecn/limits @tradecn/window-set @tradecn/tradecn-amber @tradecn/tradecn-slate @tradecn/tradecn-slate-east
yarn dlx shadcn@latest add @tradecn/format @tradecn/row-store @tradecn/flash-cell @tradecn/data-grid @tradecn/feed-health @tradecn/use-hotkeys @tradecn/command-palette @tradecn/panel @tradecn/sparkline @tradecn/watchlist @tradecn/blotter @tradecn/workspace @tradecn/ticket @tradecn/countdown @tradecn/quote-field @tradecn/rfq-ticket @tradecn/rfq-stack @tradecn/perf-monitor @tradecn/hotkey-editor @tradecn/column-chooser @tradecn/rules-editor @tradecn/alerts @tradecn/status-bar @tradecn/parameter-grid @tradecn/positions @tradecn/audit-trail @tradecn/layout-manager @tradecn/instrument-search @tradecn/depth-ladder @tradecn/spread-matrix @tradecn/quote-panel @tradecn/session-guard @tradecn/price-chart @tradecn/grid-rules @tradecn/preferences @tradecn/alert-store @tradecn/session-calendar @tradecn/limits @tradecn/window-set @tradecn/tradecn-amber @tradecn/tradecn-slate @tradecn/tradecn-slate-east
bunx --bun shadcn@latest add @tradecn/format @tradecn/row-store @tradecn/flash-cell @tradecn/data-grid @tradecn/feed-health @tradecn/use-hotkeys @tradecn/command-palette @tradecn/panel @tradecn/sparkline @tradecn/watchlist @tradecn/blotter @tradecn/workspace @tradecn/ticket @tradecn/countdown @tradecn/quote-field @tradecn/rfq-ticket @tradecn/rfq-stack @tradecn/perf-monitor @tradecn/hotkey-editor @tradecn/column-chooser @tradecn/rules-editor @tradecn/alerts @tradecn/status-bar @tradecn/parameter-grid @tradecn/positions @tradecn/audit-trail @tradecn/layout-manager @tradecn/instrument-search @tradecn/depth-ladder @tradecn/spread-matrix @tradecn/quote-panel @tradecn/session-guard @tradecn/price-chart @tradecn/grid-rules @tradecn/preferences @tradecn/alert-store @tradecn/session-calendar @tradecn/limits @tradecn/window-set @tradecn/tradecn-amber @tradecn/tradecn-slate @tradecn/tradecn-slate-east