सामग्री पर जाएँ
Blume is now publicly available.
Blume
हिन्दी
Esc
नेविगेटखोलें⌘Jप्रीव्यू
इस पेज पर

CLI

Blume का हर कमांड और फ़्लैग एक ही जगह समझाया गया — init, dev, build, preview, add, sync, और eject — साथ ही हर एक द्वारा स्वीकार किए जाने वाले विकल्प भी।

blume <command> [options]

कमांड

कमांड विवरण
blume init [dir] एक प्रोजेक्ट स्कैफ़ोल्ड करें (डिफ़ॉल्ट रूप से इंटरैक्टिव)।
blume dev हॉट रीलोड के साथ डेव सर्वर शुरू करें।
blume build स्टैटिक (या सर्वर) साइट बनाएँ।
blume preview पिछले बिल्ड का पूर्वावलोकन करें।
blume add <item> रजिस्ट्री से एक सोर्स कंपोनेंट इंस्टॉल करें।
blume sync रिमोट कंटेंट स्रोतों को दोबारा लाएँ और फिर से जनरेट करें।
blume eject रनटाइम को एक स्वतंत्र Astro ऐप में बदलें।
blume check astro check से साइट की टाइप-जाँच करें।
blume doctor कॉन्फ़िग और कंटेंट की समस्याओं का निदान करें।
blume validate अपने कंटेंट में मौजूद लिंक की जाँच करें।
blume audit बनी हुई साइट का SEO और स्वास्थ्य संबंधी समस्याओं के लिए ऑडिट करें।
blume eval डॉक्स की जाँच करें: एक एजेंट केवल दस्तावेज़ों का उपयोग करके आपके प्रश्नों के उत्तर देता है।
blume translate एक लोकल एजेंट CLI की मदद से डॉक्स को कॉन्फ़िगर किए गए लोकेल में अनूदित करें।

सामान्य फ़्लैग

  • blume init — टर्मिनल में, यह आपसे कुछ प्रश्न पूछता है (प्रोजेक्ट कहाँ बनाना है, साइट का नाम, टेम्पलेट, कंटेंट स्रोत); नीचे दिया गया हर फ़्लैग अपने प्रश्न का उत्तर पहले से दे देता है।
  • blume init --yes — प्रॉम्प्ट छोड़ें और डिफ़ॉल्ट के साथ स्कैफ़ोल्ड करें (CI में या जब stdin टर्मिनल न हो, तब भी यही व्यवहार होता है)।
  • blume init --content-dir <dir> — कंटेंट फ़ोल्डर सेट करें (डिफ़ॉल्ट docs)।
  • blume init --template docs|api|sdk|changelog — किसी स्टार्टर से स्कैफ़ोल्ड करें (सादे docs सीड के बजाय API रेफ़रेंस, SDK, या चेंजलॉग)।
  • blume init --package-manager npm|pnpm|yarn|bun — प्रिंट किए जाने वाले अगले-चरण आपके पैकेज मैनेजर के अनुसार ढालें।
  • blume init --eject — स्कैफ़ोल्ड करें, फिर एक स्वतंत्र Astro प्रोजेक्ट में eject करें (जब डिपेंडेंसी अभी इंस्टॉल न हों, तो यह आपको blume eject के ज़रिए मार्गदर्शन देने पर लौट आता है)।
  • blume dev --host --port <n> --open
  • blume dev --content-dir <dir>blume.config.ts संपादित किए बिना किसी अलग कंटेंट फ़ोल्डर को स्कैन करें।
  • blume dev --debug — समस्या-निवारण के लिए विस्तृत Astro/Vite लॉगिंग।
  • blume dev --preview / blume build --preview — ड्राफ़्ट और अप्रकाशित CMS कंटेंट शामिल करें।
  • blume build --no-strict — डायग्नोस्टिक त्रुटियों के बावजूद बिल्ड करें। डिफ़ॉल्ट रूप से blume build किसी भी error डायग्नोस्टिक पर विफल हो जाता है (exit 1), क्योंकि जो पेज फ्रंटमैटर वैलिडेशन में विफल होते हैं वे आउटपुट से हटा दिए जाते हैं; --no-strict के साथ बिल्ड सफल होता है और बताता है कि कितने पेज गायब हैं। blume dev --strict डेव को भी उसी fail-fast व्यवहार में ले आता है।
  • blume build --output static|server --adapter vercel|node|netlify|cloudflare --base /docsblume.config.ts से डिप्लॉयमेंट आउटपुट, अडैप्टर, और बेस पाथ को ओवरराइड करें।
  • blume build --analyze — बिल्ड के बाद क्लाइंट JavaScript बंडल के आकार (सबसे बड़े पहले) प्रिंट करें।
  • blume build --budget-js <kb> --budget-css <kb> — जब कुल क्लाइंट JavaScript/CSS बजट से अधिक हो जाए तो बिल्ड विफल करें, जिससे एक प्रदर्शन लक्ष्य CI गेट बन जाता है।
  • blume build --isolated.blume/ के बजाय एक अस्थायी .blume-verify/ रनटाइम (और उसका अपना dist/) में बिल्ड करें, ताकि चल रहा blume dev सर्वर और आपका असली dist/ अछूते रहें। देखें डेव सर्वर चलते समय सत्यापन करना
  • blume preview --host --port <n> — प्रीव्यू सर्वर को बाइंड करें।
  • blume sync --force — कैश किए गए स्नैपशॉट को पहले हटाकर रिमोट स्रोतों को दोबारा लाएँ।
  • blume add <item> --force — पहले से मौजूद फ़ाइलों को अधिलेखित करें।
  • blume check --preview — जाँच करते समय ड्राफ़्ट और अप्रकाशित CMS कंटेंट शामिल करें।
  • blume check --strict — टाइप त्रुटियों के साथ-साथ कंटेंट डायग्नोस्टिक्स पर भी विफल हों।
  • blume check --isolated — एक अस्थायी .blume-verify/ रनटाइम में टाइप-जाँच करें ताकि चल रहा blume dev सर्वर अछूता रहे। देखें डेव सर्वर चलते समय सत्यापन करना
  • blume eject --yes — पुष्टिकरण प्रॉम्प्ट छोड़ें।
  • blume validate --external — नेटवर्क के ज़रिए बाहरी लिंक की भी जाँच करें।
  • blume validate --strict — चेतावनियों पर भी नॉन-ज़ीरो कोड के साथ बाहर निकलें।
  • blume validate --json / blume doctor --json — CI और एडिटर इंटीग्रेशन के लिए डायग्नोस्टिक्स को stdout पर JSON के रूप में उत्सर्जित करें (code, severity, file, line/column, और docsUrl के साथ)।
  • blume audit --fail-on error|warning|info — CI गेट; डिफ़ॉल्ट error है। --strict, --fail-on warning का उपनाम है।
  • blume audit --url <origin> — स्टेटस कोड, रिस्पॉन्स हेडर, और रीडायरेक्ट चेन के लिए किसी लाइव डिप्लॉयमेंट की भी जाँच करें।
  • blume audit --external — नेटवर्क के ज़रिए बाहर जाने वाले लिंक की जाँच करें।
  • blume audit --only <check|category> / --skip <check|category> — रिपोर्ट पर काम करते समय उसे सीमित करें (कॉमा से अलग किया हुआ)।
  • blume audit --list-checks — ऑडिट जो भी जाँच रिपोर्ट कर सकता है, वह सब प्रिंट करें।
  • blume audit --verbose — हर प्रभावित पेज को प्रत्येक निष्कर्ष के पूरे विवरण के साथ सूचीबद्ध करें, जैसे कि कौन-सा लिंक टारगेट टूटा हुआ है।
  • blume audit --json — रिपोर्ट को stdout पर JSON के रूप में उत्सर्जित करें।
  • blume audit --claude / --codex — निष्कर्षों को इंटरैक्टिव रूप से ठीक करने के लिए Claude Code या Codex को सौंपें।
  • blume evalevals.yaml के प्रश्नों को एक ऐसे एजेंट के ज़रिए चलाएँ जो केवल आपके डॉक्स पढ़ता है; देखें Evals
  • blume eval init — एजेंट से अपने डॉक्स के आधार पर एक शुरुआती evals.yaml तैयार करवाएँ।
  • blume eval --agent claude|codex --threshold <0..1> --timeout <seconds> --json --fix --verbose — हर फ़्लैग के लिए देखें Evals
  • blume translate --claude / --codex — गायब और पुराने पड़ चुके पेजों को आपके कॉन्फ़िगर किए गए लोकेल में अनूदित करें; देखें Translate
  • blume translate --check — एजेंट चलाए बिना अनुवाद के अंतर की रिपोर्ट दें और नॉन-ज़ीरो कोड के साथ बाहर निकलें (CI गेट)।
  • blume translate --locale <codes> --concurrency <n> --force --timeout <seconds> --json — हर फ़्लैग के लिए देखें Translate

डेव सर्वर चलते समय सत्यापन करना

blume dev एक लाइव Astro सर्वर चलाता है जिसकी जड़ जनरेट किया गया .blume/ रनटाइम होता है, और हर बदलाव पर उसे दोबारा जनरेट करता है। blume build और blume check उसी .blume/ को दोबारा जनरेट करते हैं, इसलिए डेव सर्वर के लाइव रहते इनमें से कोई भी चलाने पर वह भ्रष्ट हो जाएगा — दोनों ही एक त्रुटि के साथ मना कर देते हैं और नॉन-ज़ीरो कोड के साथ बाहर निकल जाते हैं:

A `blume dev` server is running at http://localhost:3000; building would
corrupt its .blume runtime. Reuse that server, stop it first, or re-run with
--isolated to build/verify against .blume-verify without touching it.

--isolated फ़्लैग इसका निकास द्वार है। यह पूरे जनरेट किए गए रनटाइम को (और, build के लिए, उसके आउटपुट dist/ को) एक समकक्ष .blume-verify/ डायरेक्टरी में स्थानांतरित कर देता है, ताकि सत्यापन कभी भी ऐसा कुछ न लिखे जिस पर डेव सर्वर — या आपका असली dist/ — निर्भर है:

# In a second terminal, while `blume dev` is running:
blume check --isolated   # fast: type-check the .astro/config changes
blume build --isolated   # thorough: full production render into .blume-verify/dist

check --isolated तेज़ रास्ता है (Astro टाइप + टेम्पलेट डायग्नोस्टिक्स, कोई dist/ नहीं); build --isolated भारी विकल्प है जो रनटाइम रेंडर त्रुटियों को भी पकड़ता है। आइसोलेटेड बिल्ड डिप्लॉय के बाद वाले चरण छोड़ देते हैं (सर्च इंडेक्स, होस्टेड-प्रोवाइडर सिंक, llms.txt, साइटमैप/robots, रीडायरेक्ट) — एक सत्यापन को केवल यह पुष्टि करनी होती है कि साइट कंपाइल और रेंडर होती है, उसे प्रकाशित नहीं करना होता। --analyze और --budget-js/--budget-css गेट फिर भी चलते हैं, और आइसोलेटेड आउटपुट के सापेक्ष मापे जाते हैं। Blume आपकी .gitignore में .blume-verify/ अपने आप जोड़ देता है।

यह खासकर तब उपयोगी है जब किसी कोडिंग एजेंट को बदलाव सत्यापित करने हों और आप डेव सर्वर खुला रखना चाहते हों। सादे blume build/blume check को बिना फ़्लैग के आइसोलेट कराने के लिए — उदाहरण के लिए किसी एजेंट के शेल में — BLUME_RUNTIME_DIR को उस रनटाइम डायरेक्टरी पर सेट करें जिसका उपयोग करना है:

export BLUME_RUNTIME_DIR=.blume-verify

टाइप-जाँच

blume check आपके प्रोजेक्ट पर astro check चलाता है। यह .blume रनटाइम को दोबारा जनरेट करता है, Astro के कंटेंट टाइप सिंक करता है, फिर किसी भी TypeScript त्रुटि की रिपोर्ट देता है — आपके blume.config.ts में, कस्टम .astro पेजों में, और उनके द्वारा इम्पोर्ट किए गए कंपोनेंट में। त्रुटियाँ होने पर यह नॉन-ज़ीरो कोड के साथ बाहर निकलता है, इसलिए यह CI में typecheck चरण के रूप में काम करता है:

{
  "scripts": {
    "typecheck": "blume check"
  }
}

अपने प्रोजेक्ट रूट में Astro के कॉन्फ़िग को एक्सटेंड करने वाली tsconfig.json जोड़ें ताकि लिखे गए पेज blume/* इम्पोर्ट और blume:data जैसे वर्चुअल मॉड्यूल हल कर सकें:

{
  "extends": "astro/tsconfigs/strict",
  "include": [".blume/.astro/types.d.ts", ".blume/src/env.d.ts", "**/*"]
}

प्रोजेक्ट tsconfig.json के बिना, केवल जनरेट किए गए रनटाइम की जाँच होती है।

लिंक की जाँच

blume validate आपके कंटेंट में मिले हर लिंक की जाँच करता है:

  • आंतरिक पेज लिंक (/guides/intro, ./sibling) किसी वास्तविक पेज पर हल होने चाहिए — टूटे हुए लिंक त्रुटियों के रूप में रिपोर्ट किए जाते हैं।
  • एंकर लिंक (#section, /guides/intro#setup) लक्षित पेज के किसी शीर्षक से मेल खाने चाहिए — न मिलने पर चेतावनी मिलती है।
  • एसेट लिंक (/logo.png) की जाँच public/ डायरेक्टरी के सापेक्ष की जाती है।
  • बाहरी लिंक की जाँच केवल --external के साथ होती है (डिफ़ॉल्ट रूप से बंद, क्योंकि इसके लिए नेटवर्क चाहिए); मृत लिंक (404/410/अनुपलब्ध) त्रुटियाँ हैं, जबकि रेट-लिमिटेड या अस्थायी प्रतिक्रियाएँ (403/429/5xx/टाइमआउट) चेतावनियाँ हैं।

बनी हुई साइट का ऑडिट

blume validate आपका कंटेंट पढ़ता है; blume audit बनी हुई साइट पढ़ता है। यह बिल्ड के बाद dist/ में मौजूद HTML को क्रॉल करता है और SEO तथा साइट-स्वास्थ्य संबंधी समस्याएँ बताता है — टाइटल, मेटा डिस्क्रिप्शन, canonical, Open Graph और X कार्ड, शीर्षक, hreflang, इमेज, साइटमैप, robots.txt, और स्ट्रक्चर्ड डेटा।

चूँकि साइट Blume ने बनाई है, हर निष्कर्ष सोर्स फ़ाइल और उस फ्रंट मैटर लाइन का नाम बताता है जो इसे ठीक करती है, केवल वह URL नहीं जो किसी क्रॉलर को दिखता:

⚠ Meta description too long or too short   5 pages
    /docs/configuration/export    content/docs/configuration/export.mdx:3
    fix: Rewrite `description` in the frontmatter to fit the length range.

इसे बिल्ड के बाद चलाएँ:

blume build
blume audit

निष्कर्षों को प्रति पेज सूचीबद्ध करने के बजाय जाँच के अनुसार समूहित किया जाता है, ताकि रिपोर्ट एक to-do सूची की तरह पढ़ी जा सके। हर प्रभावित पेज को उसके पूरे विवरण के साथ विस्तृत करने के लिए --verbose का उपयोग करें, और एक बार में एक श्रेणी पर काम करने के लिए --only/--skip का। blume audit --list-checks पूरा कैटलॉग प्रिंट करता है।

CI विफल करना

एग्ज़िट कोड ही अनुबंध है। डिफ़ॉल्ट रूप से blume audit केवल त्रुटियों पर विफल होता है — ऐसी चीज़ें जो निश्चित रूप से टूटी हुई हैं, जैसे किसी ऐसे पेज का लिंक जो कभी बना ही नहीं, एक रीडायरेक्ट लूप, या एक अमान्य साइटमैप। सलाहकारी निष्कर्ष (छोटा विवरण, डुप्लिकेट टाइटल) चेतावनियाँ हैं और बिल्ड को विफल नहीं करतीं:

blume audit                      # fails on errors
blume audit --fail-on warning    # also fails on warnings

लाइव डिप्लॉयमेंट की जाँच

कुछ बातें केवल असली सर्वर ही बता सकता है: क्या dist/ में मौजूद कोई पेज किसी ख़राब rewrite के पीछे वास्तव में 404 देता है, क्या प्रतिक्रियाएँ कंप्रेस्ड हैं, और क्या कोई X-Robots-Tag हेडर चुपचाप ऐसे पेज को डीइंडेक्स कर रहा है जिसका HTML बिल्कुल ठीक दिखता है। ये जाँचें जोड़ने के लिए ऑडिट को किसी डिप्लॉयमेंट की ओर इंगित करें:

blume audit --url https://docs.example.com
blume audit --url https://docs.example.com --external   # also probe outbound links

बाहर जाने वाले लिंक को सीधे विफल करने के बजाय श्रेणीबद्ध किया जाता है: 404 एक टूटा हुआ लिंक है जिसे आप ठीक कर सकते हैं, जबकि 403 या 5xx आमतौर पर रेट लिमिटिंग या किसी और की सेवा बाधा होती है और उसे चेतावनी के रूप में रिपोर्ट किया जाता है।

किसी एजेंट के साथ निष्कर्ष ठीक करना

यदि आप Claude Code या Codex का उपयोग करते हैं, तो ऑडिट अपने निष्कर्ष सीधे उसे सौंप सकता है:

blume audit --claude   # or --codex

यह पूरी JSON रिपोर्ट — हर प्रभावित पेज, न कि टर्मिनल का तीन-पेज का पूर्वावलोकन — एक फ़ाइल में लिखता है और एजेंट को एक ऐसे प्रॉम्प्ट के साथ इंटरैक्टिव रूप से खोलता है जो उसे निष्कर्षों से होकर ले जाता है: हर निष्कर्ष जिस सोर्स फ़ाइल का नाम बताता है उसे संपादित करें, उसका सुझाया गया सुधार लागू करें, फिर blume build और blume audit दोबारा चलाएँ जब तक रिपोर्ट साफ़ न हो जाए। सत्र जानबूझकर इंटरैक्टिव है: आप एजेंट के अपने अनुमति प्रवाह के ज़रिए संपादनों की समीक्षा करते हैं, और एजेंट को बताया जाता है कि वह कभी भी कंटेंट हटाकर किसी निष्कर्ष को ठीक न करे।

--only और --skip इस हस्तांतरण को उसी तरह सीमित करते हैं जैसे वे रिपोर्ट को सीमित करते हैं, इसलिए आप एक बार में एक श्रेणी भेज सकते हैं।

यह क्या जाँचता है और क्या नहीं

जाँचों का सेट जानबूझकर एक सामान्य-उद्देश्य SEO क्रॉलर की तुलना में संकीर्ण है। ऐसा क्रॉलर जो बहुत कुछ रिपोर्ट करता है, वह Blume साइट के साथ हो ही नहीं सकता — यह कभी rel=nofollow उत्सर्जित नहीं करता, और Vite के कंटेंट-हैश्ड बंडल कभी गायब या रीडायरेक्ट होते नहीं — और उन्हें स्थायी शून्य के रूप में रिपोर्ट करना आपको बस रिपोर्ट को नज़रअंदाज़ करना सिखाएगा।

दो सीमाएँ स्पष्ट रूप से बताने योग्य हैं:

  • स्ट्रक्चर्ड डेटा की जाँच सुगठितता के लिए की जाती है (मान्य JSON, एक @context, हर नोड पर एक @type)। Blume पूरे schema.org शब्दकोश या Google के रिच-रिज़ल्ट्स नियमों के विरुद्ध सत्यापन नहीं करता।
  • Core Web Vitals की जाँच नहीं होती। उनके लिए एक असली ब्राउज़र चाहिए, और एक ऐसा फ़्लैग जो चुपचाप कुछ भी न मापे, उसके न होने से भी बुरा होगा — इसलिए blume audit लेआउट-शिफ़्ट के वही कारण बताता है जो वह ऑफ़लाइन देख सकता है (बिना width/height वाली इमेज, ज़रूरत से बड़े एसेट) और बाकी को फ़िलहाल छोड़ देता है।

ऑडिट ने जो कुछ नहीं चलाया, उसे चुपचाप पास करने के बजाय छोड़ा गया (skipped) बताया जाता है:

⊘ network      skipped — pass --url <origin> (11 checks)
⊘ external     skipped — pass --external (2 checks)

क्या यह पेज सहायक था?