الـ registry إيه؟نظام توزيع كود بيكتب ملفات في مشروع المستخدم، مش npm package
لـ React بس؟لأ، أي framework وأي ملفات، طالما JSON على HTTP أو GitHub repo
الفهرس
registry.json في الـ root: name وhomepage وitems وincludeملف الـ itemفيه الملفات بالـ
content، وview/add بيقروهlist وsearchعلى الفهرس، URL أو @ns، مش ملف localincludeمسار صريح لـ registry.json، من غير اختصار فولدرpath مع includeنسبي للـ registry.json اللي معرّف الـ itemأسماء الـ itemsunique في الـ registry كله بعد التجميع
registryDependenciesbutton أو @ns/x أو owner/repo/x#ref أو URL أو ./x.jsonاسم لوحده زي
buttonدايمًا item من shadcn الرسميnpm packages
dependencies وdevDependencies، والـ version بـ @target إجباريمع registry:page وregistry:file~/root مشروع المستخدممسارات المستخدم
@ui/ و@components/ و@lib/ و@hooks/، و@utils/ مش مدعومenvVarsبتتكتب في .env.local من غير overwrite، وقيم dev بسلون جديد
cssVars.light وdark، فتقدر تستخدم bg-brandمتغير Tailwind
cssVars.theme، وtailwind.config deprecatedترتيب الـ CSS
@import ثم @plugin ثم الباقي، والـ plugin يتحط في dependenciesanimation
@keyframes في css + --animate-* في cssVars.themeخط
registry:font + font، وselector بيقصّر الـ class على selectorsdesign system
registry:base + config، وextends: none للصفرطلّع JSON
shadcn build، والناتج في public/r، وتغيّره بـ -oمن غير build
loadRegistry وloadRegistryItem في route handlersURL واحد لكلهAccept
application/vnd.shadcn.v1+json + Varyuniversal itemكل ملف ليه
target، ويتسطب من غير components.jsonGitHub registry
registry.json في الـ root، وadd owner/repo/itemثبّت إصدار
#v1.0.0 أو SHA كامل، والـ ref مش بيتورّثGitHub private
gh auth login أو GH_TOKEN (Contents: Read-only)validate
shadcn registry validate owner/repo#refnamespace
shadcn registry add @ns=https://x/r/{name}.jsonالـ URL template
{name} إجباري، و{style} اختياري، و${VAR} من envauthheaders أو params في
components.json، والقيمة في .env.localملفين بنفس الـ targetالأخير في الحل بيكسب، فتعمل override بيه
versioning
params: { version } و${VAR:-default}401 / 403 / 429token غلط / مفيش صلاحية / rate limit
رسالة للمستخدم
message في body الـ errorقبل التثبيت
view، وadd --dry-run و--diff و--viewregistry فيها آلاف itemsdynamic search:
q وtype وlimit وoffset + paginationDirectoryPR على
directory.json: open source وflat ومن غير contentHealthObserving / Healthy / Degraded / Unavailable، وسكور 45+25+20+10
الترتيب
0.8 × health + 20 × حجم، والحجم بيقف عند 500MCPفهرس اسمه
registry في الـ root + shadcn mcp init --clientOpen in v0
v0.dev/chat/api/open?url=، من غير cssVars/css/envVars/namespacesAPI
shadcn/registry وshadcn/schema وshadcn/preset بسسيرفر شغال على طول
useCache: falseخلّصت المذكرة لما
🧠 اختبر نفسك
١) عايز توزّع AGENTS.md لكل مشاريع الفريق من غير سيرفر. أسهل طريقة؟
GitHub repo فيه registry.json، وitem نوعه registry:file وtarget بتاعه ~/AGENTS.md، وبعدها add owner/repo/item.
٢) عايز تغيّر لون button من vendor. تعمل إيه؟
item بتاعك فيه registryDependencies للـ vendor button وcssVars جديدة.
٣) registry private للشركة على سيرفر خاص. GitHub address ولا namespace؟
namespace بـ headers للـ auth والـ token في .env.local.