shadcn

Add beautifully designed, accessible UI components as owned source code via a CLI

Tool
npm
v4.22.1
126,385 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
92 /100 Excellent
Development Activity 100
Maintenance 100
Community 76
Maturity 52
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
85 /100 Excellent
Architecture 84
Code Quality 85
Innovation 90
Learning Curve 82

shadcn is the official CLI for shadcn/ui, a code-distribution platform (rather than a traditional npm component library) that copies component source directly into your project via npx shadcn add. Components are built on Radix UI/Base UI primitives and styled with Tailwind CSS, so once added they are fully owned, editable files rather than an opaque installed dependency.

The CLI handles project initialization, adding individual components or third-party registry items, building custom registries, and migrating between framework versions, and it works across React, Next.js, Vite, Laravel, and other supported frameworks.

What You Get

  • A CLI (init, add, build, diff, eject, migrate, search, view) for scaffolding and managing UI components as owned source code
  • A component registry protocol so teams and third parties can publish and consume their own custom component registries, not just the official one
  • Components built on accessible headless primitives (Radix UI, Base UI) styled with Tailwind CSS
  • An MCP (Model Context Protocol) server integration (src/mcp/) for AI coding assistants to browse and install components programmatically
  • Framework support spanning React, Next.js, Vite, and Laravel, with migration tooling between major CLI/component versions

Common Use Cases

  • Bootstrapping a new React/Next.js project’s design system with accessible, pre-built but fully customizable components
  • Adding individual components (buttons, dialogs, forms) to an existing codebase without pulling in an opaque UI library dependency
  • Publishing an internal or public custom component registry for a team or open-source project to consume via the same CLI
  • Letting AI coding assistants discover and install components directly through the CLI’s MCP server integration

Under The Hood

Architecture — The GitHub repo is a pnpm/Turborepo monorepo: apps/v4 hosts the documentation and marketing site, while packages/shadcn is the published CLI (the shadcn npm package), packages/react publishes unstyled primitive components separately, and packages/helpers/packages/tests support the build and test pipeline. Inside the CLI package, src/commands/ holds one file per subcommand (add.ts, init.ts, build.ts, diff.ts, eject.ts, migrate.ts, preset.ts, search.ts, view.ts, mcp.ts), src/registry/ implements the registry-fetching and component-resolution protocol (api.ts, builder.ts, config.ts, address.ts), and src/mcp/ exposes the CLI’s functionality over the Model Context Protocol for AI-assistant integrations.

Tech Stack — TypeScript-first (87% of the codebase), with MDX (9%) for documentation content and CSS (4%) for styles. The CLI itself is a Node.js package (published as shadcn on npm) using standard CLI-building conventions; components depend on Radix UI/Base UI for accessible primitives and Tailwind CSS for styling, with framework adapters targeting Next.js, Vite, and Laravel.

Code Quality — Nearly every command file has a paired .test.ts (add.test.ts pattern seen for apply, build, docs, eject, preset, and others), giving the CLI meaningful automated coverage of its core flows. The project ships over 100 tagged releases across the shadcn and @shadcn/react packages with a consistent, high release cadence (roughly 79 commits/month), and the repo’s RELEASING.md/CONTRIBUTING.md document a mature, structured release and contribution process for a project with 584 contributors.

API Design — The CLI mirrors familiar scaffolding-tool ergonomics (init then add <component>), with diff and eject giving developers escape hatches to inspect or fully detach from CLI-managed updates — a deliberate design choice reflecting the project’s “you own the code” philosophy rather than the typical package-manager update model. The registry protocol (documented separately from the CLI itself) lets third parties extend the same add command to pull from custom sources without CLI changes.

Used by 25 apps in this directory

Python
66%
Other

Morphik

AI Development · Databases · Search

3,717

Morphik is an AI-native ingestion and retrieval engine that lets developers store, search, and reason over visually rich documents — scanned PDFs, manuals, slides, and video — without duct-taping together OCR, an embedding model, and a vector database.

View details
64
Repo Health
71
Technical
67
Dependency
Built with
Python 66%
TypeScript 23%
Updated 1 weeks ago
Go
56%
Other

Multica

AI Assistants · AI Development

53,682

Turn coding agents into real teammates — assign issues, track progress, and compound reusable skills across a vendor-neutral, self-hosted platform.

View details
87
Repo Health
83
Technical
67
Dependency
Built with
Go 56%
TypeScript 38%
Updated 6 days ago
TypeScript
97%
GPL 3.0

OpenKnowledge

Code Editors · Knowledge Management · Note Taking

4,674

A beautiful, local-first markdown IDE that turns any git repo into a live collaborative workspace for humans and AI coding agents like Claude, Codex, and OpenCode.

View details
80
Repo Health
89
Technical
64
Dependency
Built with
TypeScript 97%
Updated 6 days ago
TypeScript
82%
AGPL 3.0

OpenStatus

Devops · Monitoring

9,221

Open-source status pages and uptime monitoring with global synthetic checks, monitoring-as-code, and AI agent integration via MCP.

View details
77
Repo Health
82
Technical
69
Dependency
Built with
TypeScript 82%
MDX 14%
Updated 1 weeks ago
TypeScript
84%
MIT

OpenCut

Design Tools · Social Media · Video Editors

95,947

Free, open-source video editor for web, desktop, and mobile — no watermarks, no subscriptions, built with a Rust core and plugin-first architecture

View details
55
Repo Health
67
Technical
77
Dependency
Built with
TypeScript 84%
Rust 14%
Updated 1 months ago
Python
73%
AGPL 3.0

OpenViking

AI Development · AI Memory · Databases

40,705

An open-source context database that gives AI agents a unified filesystem for memory, resources, and skills with hierarchical tiered retrieval.

View details
85
Repo Health
75
Technical
64
Dependency
Built with
Python 73%
TypeScript 12%
Rust 11%
Updated 6 days ago
TypeScript
85%
MIT

openwork

AI Assistants · Automation

24,237

OpenWork is a free, open-source desktop app for running AI agent workflows on your own files with 50+ LLMs, extensible skills, and MCP server support — the open-source alternative to Claude Cowork and Codex.

View details
87
Repo Health
89
Technical
67
Dependency
Built with
TypeScript 85%
Updated 6 days ago
TypeScript
96%
MIT

Orca

AI Agents · AI Code Assistants

104,104

An open-source Agent Development Environment that orchestrates fleets of parallel AI coding agents — Claude Code, Codex, Gemini and more — each running in its own isolated git worktree.

View details
84
Repo Health
85
Technical
74
Dependency
Built with
TypeScript 96%
Updated 6 days ago
TypeScript
99%
MIT

Rudel

Developer Tools

306

Open-source analytics for Claude Code and Codex sessions — a CLI uploads session transcripts to a self-hostable dashboard tracking token usage, session duration, activity patterns, and model usage.

View details
75
Repo Health
67
Technical
71
Dependency
Built with
TypeScript 99%
Updated 2 weeks ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers