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 initKı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)
--yesvermezsen var olan dosyalar atlanır. --dry-rundiff'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- Framework'ü algılar: Next.js (App Router), Vite ya da React Router (framework modu).
- Paket yöneticisini
package.jsoniçindekipackageManageralanından ya da lock dosyasından algılar: npm, pnpm, Yarn veya Bun. - Bağımlılık olarak yoksa
@meridui/react'i kurar. - 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. - Proje şablonunun yazdığı ve Merid'i ezecek global stilleri kaldırır (aşağıda).
- Kural dosyasını (
AGENTS.md,.cursor/rules/merid.mdc,CLAUDE.md) ekleyip eklemeyeceğini sorar. Zaten@AGENTS.md'yi import eden birCLAUDE.md'ye dokunmaz. - MCP config'ini (
.mcp.json,.cursor/mcp.json,.vscode/mcp.json) ekleyip eklemeyeceğini sorar. Bu dosyalardaki diğer server'lar korunur.
| Framework | Nasıl algılanır | Stil import'u nereye eklenir |
|---|---|---|
| Next.js | next bağımlılığı | app/layout.tsx ya da src/app/layout.tsx |
| React Router | @react-router/dev ya da react-router.config.ts | app/root.tsx |
| Vite | vite 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:
| Şablon | Dosya | Kaldırılanlar |
|---|---|---|
| Vite | src/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.js | app/globals.css | Arial'lı body kuralı |
| Tailwind'siz Next.js | app/globals.css | * { padding: 0; margin: 0 }, a { color: inherit }, body'deki Arial ve renkler, koyu color-scheme |
| React Router | app/app.css | html, 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 settingsBir 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.
| Desen | Sayfa |
|---|---|
app-shell | Navigasyon layout'ları |
settings | Ayarlar sayfaları |
auth | Kimlik doğrulama |
data-table | Veri tabloları |
forms | Formlar |
confirmations | Onaylar |
empty-and-loading | Boş ve yükleniyor durumları |
mcp
npx @meridui/cli mcp --client cursorYalnı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çenek | Komutlar | Etkisi |
|---|---|---|
--yes, -y | hepsi | Dosyaların üzerine yazmak dahil tüm sorulara evet der. Diff'ler yine gösterilir. |
--dry-run | hepsi | Diff'leri ve komutları gösterir; hiçbir şey yazmaz ve çalıştırmaz. |
--rules, --no-rules | init | Kural dosyasını sormadan ekler ya da atlar. |
--mcp, --no-mcp | init | MCP config'ini sormadan ekler ya da atlar. |
--client <liste> | init, mcp | claude, cursor, vscode ya da all. |
--dir <yol> | add | Desen dosyalarının klasörü. |
--no-install | init, add | Paket yöneticisini çalıştırmaz, komutu yazdırır. |
--cwd <yol> | hepsi | Başka bir klasörde çalıştırır. |
CI'da
npx @meridui/cli init --yes --no-install --rules --no-mcp
npx @meridui/cli doctor