惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threatpost
aimingoo的专栏
aimingoo的专栏
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Tailwind CSS Blog
J
Java Code Geeks
博客园_首页
Google Online Security Blog
Google Online Security Blog
Hugging Face - Blog
Hugging Face - Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
I
Intezer
P
Palo Alto Networks Blog
V
Vulnerabilities – Threatpost
雷峰网
雷峰网
O
OpenAI News
SecWiki News
SecWiki News
小众软件
小众软件
酷 壳 – CoolShell
酷 壳 – CoolShell
美团技术团队
N
News | PayPal Newsroom
Project Zero
Project Zero
Forbes - Security
Forbes - Security
IT之家
IT之家
A
Arctic Wolf
WordPress大学
WordPress大学
Jina AI
Jina AI
T
Tor Project blog
博客园 - 三生石上(FineUI控件)
S
Secure Thoughts
Google DeepMind News
Google DeepMind News
Attack and Defense Labs
Attack and Defense Labs
博客园 - 聂微东
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Privacy International News Feed
Cloudbric
Cloudbric
G
GRAHAM CLULEY
博客园 - 叶小钗
H
Hacker News: Front Page
腾讯CDC
量子位
Help Net Security
Help Net Security
人人都是产品经理
人人都是产品经理
C
Cyber Attacks, Cyber Crime and Cyber Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
宝玉的分享
宝玉的分享
爱范儿
爱范儿
L
Lohrmann on Cybersecurity
Hacker News - Newest:
Hacker News - Newest: "LLM"
Recorded Future
Recorded Future
C
CERT Recently Published Vulnerability Notes

shadcn/ui Changelog

July 2026 - Introducing @shadcn/helpers July 2026 - Introducing shadcn/typeset July 2026 - Base UI as the Default June 2026 - Components for Chat Interfaces June 2026 - GitHub Registries May 2026 - shadcn eject May 2026 - Introducing Rhea May 2026 - Registry Include and Validate May 2026 - Package Imports and Target Aliases April 2026 - shadcn preset April 2026 - Pointer Cursor April 2026 - Partial Preset Apply April 2026 - Introducing Sera April 2026 - shadcn apply April 2026 - Component Composition March 2026 - Introducing Luma March 2026 - shadcn/cli v4 February 2026 - Blocks for Radix and Base UI February 2026 - Unified Radix UI Package January 2026 - RTL Support January 2026 - Inline Start and End Styles January 2026 - Base UI Documentation December 2025 - npx shadcn create October 2025 - Registry Directory October 2025 - New Components September 2025 - Registry Index July 2025 - Universal Registry Items July 2025 - Local File Support June 2025 - radix-ui Migration June 2025 - Calendar Component May 2025 - New Site April 2025 - MCP April 2025 - shadcn 2.5.0 April 2025 - Cross-framework Route Support February 2025 - Tailwind v4 February 2025 - Updated Registry Schema January 2025 - Blocks Community December 2024 - Monorepo Support November 2024 - Icons October 2024 - React 19 October 2024 - Sidebar August 2024 - npx shadcn init April 2024 - Lift Mode March 2024 - Introducing Blocks March 2024 - Breadcrumb and Input OTP December 2023 - New Components July 2023 - JavaScript June 2023 - New CLI, Styles and more
August 2025 - shadcn CLI 3.0 and MCP Server
shadcn · 2025-08-27 · via shadcn/ui Changelog

We just shipped shadcn CLI 3.0 with support for namespaced registries, advanced authentication, new commands and a completely rewritten registry engine.

What's New

  • Namespaced Registries - Install components using @registry/name format.
  • Private Registries - Secure your registry with advanced authentication.
  • Search & Discovery - New commands to find and view code before installing.
  • MCP Server - MCP server for all registries.
  • Faster Everything - Completely rewritten registry resolution.
  • Improved Error Handling - Better error messages for users and LLMs.
  • Upgrade Guide - Migration notes for existing users.

Namespaced Registries

The biggest change in 3.0 is namespaced registries. You can now install components from registries: a community registry, your company's private registry or internal registry, using the @registry/name format.

This makes it easier to distribute code across teams and projects.

Configure registries in your components.json:

components.json
{
  "registries": {
    "@acme": "https://acme.com/r/{name}.json",
    "@internal": {
      "url": "https://registry.company.com/{name}",
      "headers": {
        "Authorization": "Bearer ${REGISTRY_TOKEN}"
      }
    }
  }
}

Then use the @registry/name format to install components:

It's completely decentralized. There's no central registrar. Create any namespace you want and organize components however makes sense for your team.

components.json
{
  "registries": {
    "@design": "https://registry.company.com/create/{name}.json",
    "@engineering": "https://registry.company.com/eng/{name}.json",
    "@marketing": "https://registry.company.com/marketing/{name}.json"
  }
}

Components can even depend on resources from different registries. Everything gets resolved and installed automatically from the right sources.

registry-item.json
{
  "name": "dashboard",
  "type": "registry:block",
  "registryDependencies": [
    "@shadcn/card", // From default registry
    "@v0/chart", // From v0 registry
    "@acme/data-table", // From acme registry
    "@lib/data-fetcher", // Utility library
    "@ai/analytics-prompt" // AI prompt resource
  ]
}

Private Registries

Need to keep your components private? We've got you covered. Configure authentication with tokens, API keys, or custom headers:

components.json
{
  "registries": {
    "@private": {
      "url": "https://registry.company.com/{name}.json",
      "headers": {
        "Authorization": "Bearer ${REGISTRY_TOKEN}"
      }
    }
  }
}

Your private components stay private. Perfect for enterprise teams with proprietary UI libraries.

We support all major authentication methods: basic auth, bearer token, API key query params and custom headers.

See the authentication docs for more details.

Search & Discovery

Three new commands make it easy to find exactly what you need:

  1. View items from the registry before installing
  1. Search items from registries
  1. List all items from a registry

Preview components before installing them. Search across multiple registries. See the code and all dependencies upfront.

MCP Server

MCP Server

Back in April, we introduced the first version of the MCP server. Since then, we've taken everything we learned and built a better MCP server.

Here's what's new:

  • Works with all registries. Zero config
  • One command to add to your favorite MCP clients
  • We improved the underlying tools
  • Better integration with the CLI and registries
  • Support for multiple registries in the same project

Add the MCP server to your project:

See the docs for more details.

Faster Everything

We completely rewrote the registry resolution engine from scratch. It's faster, smarter, and handles even the trickiest dependency trees.

  • Up to 3x faster dependency resolution
  • Smarter file deduplication and merging
  • Better monorepo support out of the box
  • Updated build command for registry authors

Improved Error Handling

Registry developers can now provide custom error messages to help guide users (and LLMs) when things go wrong. The CLI displays helpful, actionable errors for common issues:

Unknown registry "@acme". Make sure it is defined in components.json as follows:
{
  "registries": {
    "@acme": "[URL_TO_REGISTRY]"
  }
}

Missing environment variables? The CLI tells you exactly what's needed:

Registry "@private" requires the following environment variables:
  • REGISTRY_TOKEN
 
Set the required environment variables in your .env or .env.local file.

Registry authors can provide custom error messages in their responses to help users and AI agents understand and fix issues quickly.

Error:
You are not authorized to access the item at http://example.com/r/component.
 
Message:
[Unauthorized] Your API key has expired. Renew it at https://example.com/api/renew-key.

Upgrade Guide

Here's the best part: there are no breaking changes for users. Your existing components.json works exactly the same. All your installed components work exactly the same.

For developers, if you're using the programmatic APIs directly, we've deprecated a few functions in favor of better ones:

  • fetchRegistrygetRegistry
  • resolveRegistryTreeresolveRegistryItems
  • Schema moved from shadcn/registry to shadcn/schema package
- import { registryItemSchema } from "shadcn/registry"
+ import { registryItemSchema } from "shadcn/schema"

That's it. Seriously. Everything else just works.