CLI

@meridui/cli, Merid'i mevcut bir projeye kurar. Framework'ü ve paket yöneticisini algılar, @meridui/react'i kurar, stil dosyasını import eder ve istersen AI kural dosyasını ve MCP config'ini ekler. Doküman desenlerini de koduna kopyalayabilir.

npx @meridui/cli init

Kısa hali npx meridui init da aynı işi yapar. @meridui/cli kurulu bir projede komutun adı merid: npx merid init.

Varsayılan olarak güvenli

  • Dosyalardaki her değişiklik yazılmadan önce diff olarak gösterilir.
  • Var olan bir dosyanın üzerine onayın olmadan yazılmaz. Etkileşimsiz bir shell'de (CI) --yes vermezsen var olan dosyalar atlanır.
  • --dry-run diff'leri ve komutları gösterir; hiçbir şey yazmaz, hiçbir komut çalıştırmaz.
  • Bir komutu ikinci kez çalıştırmak hiçbir şeyi değiştirmez.
  • CLI'nin runtime bağımlılığı yoktur ve kendisi ağ isteği yapmaz; yalnızca kurulum sırasında paket yöneticisi yapar.

Komutlar

init

npx @meridui/cli init
  1. Framework'ü algılar: Next.js (App Router), Vite ya da React Router (framework modu).
  2. Paket yöneticisini package.json içindeki packageManager alanından ya da lock dosyasından algılar: npm, pnpm, Yarn veya Bun.
  3. Bağımlılık olarak yoksa @meridui/react'i kurar.
  4. Uygulamanın giriş dosyasına, senin CSS import'larından önce import "@meridui/react/styles.css"; ekler. Bu dosyalardan biri Tailwind v4'ü yüklüyorsa import onun arkasına gelir ve Tailwind dosyasına @layer theme, base, merid, components, utilities; eklenir; böylece Preflight Merid'i ezemez.
  5. Proje şablonunun yazdığı ve Merid'i ezecek global stilleri kaldırır (aşağıda).
  6. Kural dosyasını (AGENTS.md, .cursor/rules/merid.mdc, CLAUDE.md) ekleyip eklemeyeceğini sorar. Zaten @AGENTS.md'yi import eden bir CLAUDE.md'ye dokunmaz.
  7. MCP config'ini (.mcp.json, .cursor/mcp.json, .vscode/mcp.json) ekleyip eklemeyeceğini sorar. Bu dosyalardaki diğer server'lar korunur.
FrameworkNasıl algılanırStil import'u nereye eklenir
Next.jsnext bağımlılığıapp/layout.tsx ya da src/app/layout.tsx
React Router@react-router/dev ya da react-router.config.tsapp/root.tsx
Vitevite bağımlılığı ya da vite.config.*src/main.tsx

Şablon stilleri

create-vite, create-next-app ve create-react-router, hiçbir cascade layer'a girmeyen global CSS yazar; bu CSS de Merid'inkini ezer. init her şablonun yazdığı kuralları tanır ve Merid'le çakışanları kaldırır:

ŞablonDosyaKaldırılanlar
Vitesrc/index.css, src/App.css:root font'u ve renkleri, başlık boyutları, p, code, #root kolonu; create-vite 9'dan önceki şablonlarda ayrıca a, button ve flex ile ortalanan body
Tailwind'li Next.jsapp/globals.cssArial'lı body kuralı
Tailwind'siz Next.jsapp/globals.css* { padding: 0; margin: 0 }, a { color: inherit }, body'deki Arial ve renkler, koyu color-scheme
React Routerapp/app.csshtml, body arka planı

Bir kural ancak şablonun yazdığı haliyle duruyorsa kaldırılır; düzenlediğin anda senindir. body { margin: 0 } ve Merid'le ilgisi olmayan layout kuralları kalır. Dosya diff olarak gösterilir ve ancak onay verirsen ya da --yes ile değişir. Kuralların neden bir layer'a taşınmak yerine silindiği kurulum rehberinde anlatılıyor.

add

npx @meridui/cli add settings

Bir desenin kaynak kodunu components/merid/ (ya da src/components/merid/, React Router'da app/components/merid/) klasörüne kopyalar ve import ettiği paketleri kurmayı önerir. Klasörü --dir ile seçebilirsin. Dosyalar artık senindir, istediğin gibi değiştir; add'i tekrar çalıştırırsan senin kopyanla farkı gösterir ve değiştirmeden önce sorar.

mcp

npx @meridui/cli mcp --client cursor

Yalnızca MCP server config'ini yazar. --client, virgülle ayrılmış claude, cursor, vscode ya da all (varsayılan) alır.

doctor

npx @meridui/cli doctor

@meridui/react ve React 18+ kurulu mu, stil dosyası import edilmiş mi, kural dosyası ve MCP config'i var mı diye kontrol eder. CSS'inde Merid'i ezen şablon stilleri kaldıysa ya da Tailwind'in Preflight'ı Merid'in üstündeki bir layer'daysa uyarır. Zorunlu bir kontrol başarısız olursa 1 koduyla çıkar, bu yüzden CI'da çalıştırabilirsin; stil uyarıları komutu başarısız saymaz.

Seçenekler

SeçenekKomutlarEtkisi
--yes, -yhepsiDosyaların üzerine yazmak dahil tüm sorulara evet der. Diff'ler yine gösterilir.
--dry-runhepsiDiff'leri ve komutları gösterir; hiçbir şey yazmaz ve çalıştırmaz.
--rules, --no-rulesinitKural dosyasını sormadan ekler ya da atlar.
--mcp, --no-mcpinitMCP config'ini sormadan ekler ya da atlar.
--client <liste>init, mcpclaude, cursor, vscode ya da all.
--dir <yol>addDesen dosyalarının klasörü.
--no-installinit, addPaket yöneticisini çalıştırmaz, komutu yazdırır.
--cwd <yol>hepsiBaşka bir klasörde çalıştırır.

CI'da

npx @meridui/cli init --yes --no-install --rules --no-mcp
npx @meridui/cli doctor