Get started
CLI
CLI
CLI पैकेज: clawhub, बाइनरी: clawhub.
इसे npm या pnpm से वैश्विक रूप से इंस्टॉल करें:
npm i -g clawhub# orpnpm add -g clawhubफिर इसे सत्यापित करें:
clawhub --helpclawhub loginclawhub whoamiवैश्विक फ़्लैग
--workdir <dir>: कार्यशील निर्देशिका (डिफ़ॉल्ट: cwd; कॉन्फ़िगर होने पर Clawdbot कार्यक्षेत्र पर वापस जाता है)--dir <dir>: workdir के अंतर्गत इंस्टॉल निर्देशिका (डिफ़ॉल्ट:skills)--site <url>: ब्राउज़र लॉगिन के लिए आधार URL (डिफ़ॉल्ट:https://clawhub.ai)--registry <url>: API आधार URL (डिफ़ॉल्ट: खोजा गया, अन्यथाhttps://clawhub.ai)--no-input: प्रॉम्प्ट अक्षम करें
Env समकक्ष:
CLAWHUB_SITE(लेगेसीCLAWDHUB_SITE)CLAWHUB_REGISTRY(लेगेसीCLAWDHUB_REGISTRY)CLAWHUB_WORKDIR(लेगेसीCLAWDHUB_WORKDIR)
HTTP प्रॉक्सी
CLI कॉर्पोरेट प्रॉक्सी या प्रतिबंधित नेटवर्क के पीछे मौजूद सिस्टम के लिए मानक HTTP प्रॉक्सी परिवेश वेरिएबल का सम्मान करता है:
HTTPS_PROXY/https_proxyHTTP_PROXY/http_proxyNO_PROXY/no_proxy
जब इनमें से कोई भी वेरिएबल सेट होता है, तो CLI आउटबाउंड अनुरोधों को
निर्दिष्ट प्रॉक्सी के माध्यम से रूट करता है। HTTPS अनुरोधों के लिए HTTPS_PROXY
और सादे HTTP के लिए HTTP_PROXY का उपयोग किया जाता है। विशिष्ट होस्ट या
डोमेन के लिए प्रॉक्सी को बायपास करने हेतु NO_PROXY / no_proxy का सम्मान
किया जाता है।
यह उन सिस्टम पर आवश्यक है जहाँ सीधे आउटबाउंड कनेक्शन अवरुद्ध होते हैं (जैसे Docker कंटेनर, केवल-प्रॉक्सी इंटरनेट वाले Hetzner VPS, कॉर्पोरेट फ़ायरवॉल)।
उदाहरण:
export HTTPS_PROXY=http://proxy.example.com:3128export NO_PROXY=localhost,127.0.0.1clawhub search "my query"जब कोई प्रॉक्सी वेरिएबल सेट नहीं होता, तो व्यवहार अपरिवर्तित रहता है (सीधे कनेक्शन)।
कॉन्फ़िग फ़ाइल
आपका API टोकन + कैश किया गया रजिस्ट्री URL संग्रहीत करती है।
- macOS:
~/Library/Application Support/clawhub/config.json - Linux/XDG:
$XDG_CONFIG_HOME/clawhub/config.jsonया~/.config/clawhub/config.json - Windows:
%APPDATA%\\clawhub\\config.json - लेगेसी फ़ॉलबैक: यदि
clawhub/config.jsonअभी मौजूद नहीं है लेकिनclawdhub/config.jsonमौजूद है, तो CLI लेगेसी पथ का पुनः उपयोग करता है - ओवरराइड:
CLAWHUB_CONFIG_PATH(लेगेसीCLAWDHUB_CONFIG_PATH)
कमांड
login / auth login
- डिफ़ॉल्ट: ब्राउज़र को
<site>/cli/authपर खोलता है और loopback कॉलबैक के माध्यम से पूरा करता है। - हेडलेस:
clawhub login --token clh_... - रिमोट/हेडलेस इंटरैक्टिव:
clawhub login --deviceएक कोड प्रिंट करता है और<site>/cli/deviceपर आपके द्वारा उसे अधिकृत करने तक प्रतीक्षा करता है।
whoami
- संग्रहीत टोकन को
/api/v1/whoamiके माध्यम से सत्यापित करता है।
token
- संग्रहीत API टोकन को मानक आउटपुट पर प्रिंट करता है।
- स्थानीय लॉगिन टोकन को CI सीक्रेट सेटअप कमांड में पाइप करने के लिए उपयोगी।
star <skill> / unstar <skill>
- आपके हाइलाइट से किसी स्किल को जोड़ता/हटाता है।
POST /api/v1/stars/<slug>औरDELETE /api/v1/stars/<slug>कॉल करता है।--yesपुष्टि छोड़ देता है।
search <query...>
/api/v1/search?q=...कॉल करता है।- आउटपुट में स्किल slug, मालिक handle, प्रदर्शन नाम, और प्रासंगिकता स्कोर शामिल होता है।
- खोज डाउनलोड लोकप्रियता से पहले सटीक slug/name टोकन मिलानों को प्राथमिकता देती है।
mapजैसा एक स्वतंत्र slug टोकनamapके अंदर की सबस्ट्रिंग की तुलना मेंpersonal-mapसे अधिक मजबूती से मेल खाता है। - लोकप्रियता केवल एक छोटा रैंकिंग prior है, शीर्ष स्थान की गारंटी नहीं।
- यदि कोई स्किल दिखनी चाहिए लेकिन नहीं दिखती, तो मेटाडेटा का नाम बदलने से पहले मालिक-दृश्य मॉडरेशन डायग्नोस्टिक्स जाँचने के लिए लॉग इन रहते हुए
clawhub inspect @owner/slugचलाएँ।
explore
/api/v1/skills?limit=...&sort=createdAtके माध्यम से नवीनतम Skills सूचीबद्ध करता है (createdAtdesc द्वारा क्रमबद्ध)।- फ़्लैग:
--limit <n>(1-200, डिफ़ॉल्ट: 25)--sort newest|updated|rating|downloads|trending(डिफ़ॉल्ट: newest)। लेगेसी इंस्टॉल sort उपनाम संगतता के लिए अभी भी काम करते हैं।--json(मशीन-पठनीय आउटपुट)
- आउटपुट:
<slug> v<version> <age> <summary>(सारांश 50 वर्णों तक छोटा किया गया)।
inspect @owner/slug
- इंस्टॉल किए बिना स्किल मेटाडेटा और संस्करण फ़ाइलें प्राप्त करता है।
--version <version>: किसी विशिष्ट संस्करण का निरीक्षण करें (डिफ़ॉल्ट: नवीनतम)।--tag <tag>: टैग किए गए संस्करण का निरीक्षण करें (जैसेlatest)।--versions: संस्करण इतिहास सूचीबद्ध करें (पहला पृष्ठ)।--limit <n>: सूचीबद्ध करने के लिए अधिकतम संस्करण (1-200)।--files: चयनित संस्करण के लिए फ़ाइलें सूचीबद्ध करें।--file <path>: कच्ची फ़ाइल सामग्री प्राप्त करें (केवल टेक्स्ट फ़ाइलें; 200KB सीमा)।--json: मशीन-पठनीय आउटपुट।
install @owner/slug
- नामित मालिक और स्किल के लिए नवीनतम संस्करण resolve करता है।
/api/v1/downloadके माध्यम से zip डाउनलोड करता है।<workdir>/<dir>/<slug>में निकालता है।- pinned Skills को overwrite करने से इनकार करता है; पहले
clawhub unpin <skill>चलाएँ। - लिखता है:
<workdir>/.clawhub/lock.json(लेगेसी.clawdhub)<skill>/.clawhub/origin.json(लेगेसी.clawdhub)
uninstall <skill>
<workdir>/<dir>/<slug>हटाता है और lockfile प्रविष्टि हटाता है।- लॉग इन रहते हुए best-effort telemetry भेजता है ताकि वर्तमान इंस्टॉल गिनतियों को निष्क्रिय किया जा सके।
- इंटरैक्टिव: पुष्टि पूछता है।
- नॉन-इंटरैक्टिव (
--no-input):--yesआवश्यक है।
list
<workdir>/.clawhub/lock.jsonपढ़ता है (लेगेसी.clawdhub)।clawhub pinसे फ़्रीज़ किए गए Skills के आगेpinnedदिखाता है, वैकल्पिक कारण सहित।
pin <skill>
- इंस्टॉल की गई स्किल को lockfile में pinned के रूप में चिह्नित करता है।
--reason <text>दर्ज करता है कि स्किल क्यों फ़्रीज़ है।- Pinned Skills को
update --allद्वारा छोड़ दिया जाता है और सीधेupdate <skill>द्वारा अस्वीकार किया जाता है। - Pinned Skills
install --forceको भी अस्वीकार करते हैं ताकि स्थानीय बाइट्स गलती से बदली न जा सकें।
unpin <skill>
- इंस्टॉल की गई स्किल से lockfile pin हटाता है ताकि भविष्य के अपडेट उसे संशोधित कर सकें।
update [@owner/slug] / update --all
- स्थानीय फ़ाइलों से fingerprint की गणना करता है।
- यदि fingerprint किसी ज्ञात संस्करण से मेल खाता है: कोई प्रॉम्प्ट नहीं।
- यदि fingerprint मेल नहीं खाता:
- डिफ़ॉल्ट रूप से इनकार करता है
--forceसे overwrite करता है (या इंटरैक्टिव होने पर प्रॉम्प्ट)
- Pinned Skills कभी भी
--forceद्वारा अपडेट नहीं होते। update <skill>pinned Skills के लिए तुरंत विफल होता है और पहलेclawhub unpin <skill>चलाने को कहता है।update --allpinned slugs को छोड़ता है और क्या फ़्रीज़ रहा इसका सारांश प्रिंट करता है।
skill publish <path>
- स्थानीय bundle fingerprint की तुलना ClawHub से करता है और सामग्री पहले से प्रकाशित होने पर सफलतापूर्वक बाहर निकलता है।
- नई Skills का डिफ़ॉल्ट
1.0.0होता है; बदली हुई Skills का डिफ़ॉल्ट अगला patch संस्करण होता है। --version <version>स्पष्ट रूप से एक संस्करण चुनता है और सामग्री किसी मौजूदा संस्करण से मेल खाने पर भी प्रकाशित करता है।--dry-runअपलोड किए बिना publish resolve करता है;--jsonएक मशीन-पठनीय परिणाम प्रिंट करता है।--owner <handle>org/user प्रकाशक handle के अंतर्गत प्रकाशित करता है जब actor के पास publisher access हो।--migrate-ownerकिसी मौजूदा स्किल को--ownerपर ले जाता है जबकि नया संस्करण प्रकाशित करता है। दोनों publishers पर admin/owner access आवश्यक है।- मालिक और review व्यवहार
docs/publishing.mdमें समझाया गया है। - किसी स्किल को प्रकाशित करने का अर्थ है कि उसे ClawHub पर
MIT-0के अंतर्गत रिलीज़ किया गया है। - प्रकाशित Skills बिना attribution के उपयोग, संशोधन, और पुनर्वितरण के लिए मुक्त हैं।
- ClawHub paid Skills या per-skill pricing का समर्थन नहीं करता।
- लेगेसी उपनाम:
publish <path>।
clawhub skill publish ./my-skill --dry-runclawhub skill publish ./my-skillclawhub skill publish ./my-skill --version 2.0.0GitHub Actions
ClawHub का reusable
skill-publish.yml
workflow एक skill_path के लिए, या root के अंतर्गत प्रत्येक immediate skill
folder के लिए skill publish कॉल करता है (डिफ़ॉल्ट: skills)। यह अपरिवर्तित Skills को छोड़ता है और वही स्वचालित patch-version व्यवहार उपयोग करता है।
टोकन के बिना पूर्वावलोकन करने के लिए dry_run: true सेट करें। वास्तविक publish के लिए
clawhub_token secret आवश्यक है।
sync
- वर्तमान workdir, कॉन्फ़िगर की गई Skills निर्देशिका, और किसी भी
--root <dir>folders को ऐसे स्थानीय skill folders के लिए स्कैन करता है जिनमेंSKILL.mdयाskill.mdहो। - प्रत्येक स्थानीय skill fingerprint की तुलना ClawHub से करता है और केवल नई या बदली हुई Skills प्रकाशित करता है।
- नई Skills
1.0.0के रूप में प्रकाशित होती हैं; बदली हुई Skills डिफ़ॉल्ट रूप से अगला patch version प्रकाशित करती हैं। उन update batches के लिए--bump minor|majorका उपयोग करें जिन्हें बड़े semver step से आगे बढ़ना चाहिए। --dry-runअपलोड किए बिना publish plan दिखाता है;--jsonएक मशीन-पठनीय plan प्रिंट करता है।--allहर नई या बदली हुई स्किल को बिना प्रॉम्प्ट प्रकाशित करता है।--allके बिना, इंटरैक्टिव terminal आपको प्रकाशित करने के लिए Skills चुनने देते हैं।--owner <handle>org/user प्रकाशक handle के अंतर्गत प्रकाशित करता है जब actor के पास publisher access हो।syncकेवल one-way publish है। यह install, update, download, या install/download telemetry report नहीं करता।
clawhub sync --all --dry-runclawhub sync --allclawhub sync --root ./skills --owner openclaw --bump minorscan --slug <slug>
clawhub loginआवश्यक है।POST /api/v1/skills/-/scanके माध्यम से ClawHub ClawScan चलाता है, फिर scan terminal होने तक poll करता है।- Scan asynchronous होते हैं और पूरा होने में समय लग सकता है। queued रहते समय, terminal spinner वर्तमान prioritized scan position और आगे कितने scans हैं दिखाता है।
- प्रकाशित scans के लिए ownership या publisher management access आवश्यक है। Moderators/admins वही backend
clawhub-adminके माध्यम से उपयोग कर सकते हैं। --updateकेवल--slugके साथ मान्य है; यह सफल published scan results को चयनित version में वापस लिखता है।--output <file.zip>पूरा report archive डाउनलोड करता है जिसमेंmanifest.json,clawscan.json,skillspector.json,static-analysis.json,virustotal.json, औरREADME.mdशामिल हैं।--jsonautomation के लिए पूर्ण poll response प्रिंट करता है।- स्थानीय path scans अब समर्थित नहीं हैं। नया version upload करें, फिर उस submitted version के लिए stored scan results प्राप्त करने हेतु
scan downloadका उपयोग करें।
clawhub scan --slug gifgrepclawhub scan --slug gifgrep --version 1.2.3clawhub scan --slug gifgrep --update --output report.zipscan download <name>
clawhub loginआवश्यक है।- submitted skill या Plugin version के लिए stored scan report ZIP डाउनलोड करता है, उन versions सहित जिन्हें ClawHub security checks ने blocked या hidden किया था।
- Skill downloads skill slug का उपयोग करते हैं और डिफ़ॉल्ट
--kind skillहोता है। - Plugin downloads package name का उपयोग करते हैं और
--kind pluginआवश्यक है। --versionआवश्यक है ताकि authors उस exact submitted version का निरीक्षण करें जिसे ClawHub ने blocked किया।--output <file.zip>destination path चुनता है।
clawhub scan download gifgrep --version 1.2.3clawhub scan download @scope/demo --version 2.0.0 --kind plugin --output report.zipGitHub Actions
ClawHub skill repos और catalog repos के लिए
/.github/workflows/skill-publish.yml
पर एक official reusable workflow भेजता है।
सामान्य catalog setup:
name: Skill Publish on: pull_request: workflow_dispatch: jobs: dry-run: if: github.event_name == 'pull_request' uses: openclaw/clawhub/.github/workflows/skill-publish.yml@v1 with: owner: nvidia dry_run: true publish: if: github.event_name == 'workflow_dispatch' uses: openclaw/clawhub/.github/workflows/skill-publish.yml@v1 with: owner: nvidia dry_run: false secrets: clawhub_token: ${{ secrets.CLAWHUB_TOKEN }}नोट्स:
- catalog repos के लिए
rootका डिफ़ॉल्टskillsहै। - एक skill folder process करने के लिए
skill_path: skills/review-helperपास करें। ownerCLI--ownerflag से map होता है; authenticated user के रूप में प्रकाशित करने के लिए इसे छोड़ दें।- V1 skill publishing
clawhub_tokenका उपयोग करता है; GitHub OIDC trusted publishing अभी के लिए केवल package-only है।
delete <skill>
--versionके बिना, किसी Skill को सॉफ्ट-डिलीट करें (स्वामी, मॉडरेटर, या एडमिन)।DELETE /api/v1/skills/{slug}को कॉल करता है।- स्वामी द्वारा शुरू किए गए सॉफ्ट डिलीट slug को 30 दिनों के लिए आरक्षित रखते हैं; कमांड समाप्ति समय प्रिंट करता है।
--version <version>fail-closed, संस्करण-विशिष्ट route के माध्यम से स्वामित्व वाले एक non-latest संस्करण को स्थायी रूप से हटाता है। हटाए गए संस्करणों को पुनर्स्थापित या पुनः प्रकाशित नहीं किया जा सकता। वर्तमान latest संस्करण को हटाने से पहले प्रतिस्थापन प्रकाशित करें। इस केवल-संस्करण flow के लिए प्लेटफ़ॉर्म स्टाफ़ स्वामित्व को bypass नहीं करते।--reason <text>पूरे-Skill सॉफ्ट-डिलीट और audit log पर moderation note रिकॉर्ड करता है।--note <text>--reasonका alias है।--yesपुष्टि छोड़ देता है।
undelete <skill>
- छिपे हुए Skill को पुनर्स्थापित करें (स्वामी, मॉडरेटर, या एडमिन)।
- कोई संस्करण undelete नहीं है; स्थायी रूप से हटाए गए संस्करणों को पुनर्स्थापित नहीं किया जा सकता।
POST /api/v1/skills/{slug}/undeleteको कॉल करता है।--reason <text>Skill और audit log पर moderation note रिकॉर्ड करता है।--note <text>--reasonका alias है।--yesपुष्टि छोड़ देता है।
hide <skill>
- Skill छिपाएँ (स्वामी, मॉडरेटर, या एडमिन)।
deleteका alias।
unhide <skill>
- Skill को फिर से दिखाएँ (स्वामी, मॉडरेटर, या एडमिन)।
undeleteका alias।
skill rename <skill> <new-name>
- स्वामित्व वाले Skill का नाम बदलें और पिछले slug को redirect alias के रूप में रखें।
POST /api/v1/skills/{slug}/renameको कॉल करता है।--yesपुष्टि छोड़ देता है।
skill merge <source> <target>
- स्वामित्व वाले एक Skill को स्वामित्व वाले दूसरे Skill में merge करें।
- source slug सार्वजनिक listing में दिखना बंद कर देता है और target का redirect alias बन जाता है।
POST /api/v1/skills/{sourceSlug}/mergeको कॉल करता है।--yesपुष्टि छोड़ देता है।
transfer
- स्वामित्व transfer workflow।
- user handles को किए गए transfer एक pending request बनाते हैं जिसे recipient स्वीकार करता है।
- org/publisher handles को किए गए transfer तुरंत तभी लागू होते हैं जब actor के पास वर्तमान owner और destination publisher दोनों का admin access हो।
- Subcommands:
transfer request <skill> <handle> [--message "..."] [--yes]transfer list [--outgoing]transfer accept <skill> [--yes]transfer reject <skill> [--yes]transfer cancel <skill> [--yes]
- Endpoints:
POST /api/v1/skills/{slug}/transferPOST /api/v1/skills/{slug}/transfer/acceptPOST /api/v1/skills/{slug}/transfer/rejectPOST /api/v1/skills/{slug}/transfer/cancelGET /api/v1/transfers/incomingGET /api/v1/transfers/outgoing
package explore [query...]
- unified package catalog को
GET /api/v1/packagesऔरGET /api/v1/packages/searchके माध्यम से browse या search करता है। - plugins और अन्य package-family entries के लिए इसका उपयोग करें; top-level
searchSkill search surface बना रहता है। - फ़्लैग:
--family skill|code-plugin|bundle-plugin--official--executes-code--target <target>,--os <os>,--arch <arch>,--libc <libc>--requires-browser,--requires-desktop,--requires-native-deps--requires-external-service,--external-service <name>--binary <name>,--os-permission <name>--artifact-kind legacy-zip|npm-pack--npm-mirror--limit <n>(1-100, default: 25)--json
उदाहरण:
clawhub package explore --family code-pluginclawhub package explore --family code-plugin --os darwin --requires-desktopclawhub package explore --family code-plugin --artifact-kind npm-packclawhub package explore --npm-mirrorclawhub package explore episodic-claw --family code-pluginpackage inspect <name>
- install किए बिना package metadata fetch करता है।
- इसका उपयोग plugin metadata, compatibility, verification, source, और version/file inspection के लिए करें।
--version <version>: किसी विशिष्ट version को inspect करें (default: latest)।--tag <tag>: tagged version को inspect करें (जैसेlatest)।--versions: version history list करें (पहला page)।--limit <n>: list करने के लिए अधिकतम versions (1-100)।--files: चयनित version के लिए files list करें।--file <path>: raw file content fetch करें (केवल text files; 200KB सीमा)।--json: machine-readable output।
package download <name>
- package version को
GET /api/v1/packages/{name}/versions/{version}/artifactके माध्यम से resolve करता है। - resolver के
downloadUrlसे artifact download करता है। - सभी artifacts के लिए ClawHub SHA-256 verify करता है।
- ClawPack npm-pack artifacts के लिए, npm
sha512integrity, npm shasum, और tarball केpackage.jsonname/version को भी verify करता है। - Legacy ZIP versions legacy ZIP route के माध्यम से download होते हैं।
- फ़्लैग:
--version <version>: कोई विशिष्ट version download करें।--tag <tag>: tagged version download करें (default:latest)।-o, --output <path>: output file या directory।--force: मौजूदा output file को overwrite करें।--json: machine-readable output।
उदाहरण:
clawhub package download @openclaw/example-plugin --tag latestclawhub package download @openclaw/example-plugin --version 1.2.3 -o artifacts/package verify <file>
- local artifact के लिए ClawHub SHA-256, npm
sha512integrity, और npm shasum compute करता है। --packageके साथ, ClawHub से expected metadata resolve करता है और local file की published artifact metadata से तुलना करता है।- direct digest flags के साथ, network lookup के बिना verify करता है।
- फ़्लैग:
--package <name>: expected artifact metadata resolve करने के लिए package name।--version <version>या--tag <tag>: expected package version।--sha256 <hex>: expected ClawHub SHA-256।--npm-integrity <sri>: expected npm integrity।--npm-shasum <sha1>: expected npm shasum।--json: machine-readable output।
उदाहरण:
clawhub package verify ./example-plugin-1.2.3.tgz --package @openclaw/example-plugin --version 1.2.3clawhub package verify ./example-plugin-1.2.3.tgz --sha256 <hex>package validate <source>
- local plugin package folder के विरुद्ध ClawHub CLI का bundled Plugin Inspector चलाता है।
- local OpenClaw checkout locate या import किए बिना offline/static validation default है।
- Hard compatibility errors non-zero exit करते हैं। Warning-only findings print होते हैं लेकिन exit zero करते हैं।
- फ़्लैग:
--out <dir>: Plugin Inspector reports इस directory में लिखें।--openclaw <path>: explicit local OpenClaw checkout के विरुद्ध inspect करें।--runtime: runtime capture enable करें; plugin code import करता है।--allow-execute: isolated workspace में runtime capture allow करें।--no-mock-sdk: runtime capture के दौरान mocked OpenClaw SDK disable करें।--json: machine-readable output।
उदाहरण:
clawhub package validate ./example-pluginयदि validation किसी package, manifest, SDK import, या artifact finding की रिपोर्ट करता है, तो Plugin validation fixes देखें, फिर command फिर से चलाएँ।
package delete <name>
--versionके बिना, किसी package और सभी releases को soft-delete करता है।--version <version>fail-closed, version-specific route के माध्यम से स्वामित्व वाली एक non-latest release को स्थायी रूप से हटाता है। हटाए गए versions को restore या republish नहीं किया जा सकता। वर्तमान latest version हटाने से पहले replacement publish करें। इस version-only flow के लिए package owner या org publisher admin आवश्यक है; platform staff package ownership को bypass नहीं करते।- Whole-package soft-delete के लिए package owner, org publisher owner/admin, platform moderator, या platform admin आवश्यक है।
- फ़्लैग:
--version <version>: एक non-latest version को स्थायी रूप से हटाएँ।--yes: confirmation छोड़ें।--json: machine-readable output।
उदाहरण:
clawhub package delete @openclaw/example-plugin --yesclawhub package delete @openclaw/example-plugin --version 1.2.3 --yespackage undelete <name>
- soft-deleted package और releases को restore करता है।
- कोई version undelete नहीं है; स्थायी रूप से हटाए गए versions restore नहीं किए जा सकते।
- package owner, org publisher owner/admin, platform moderator, या platform admin आवश्यक है।
POST /api/v1/packages/{name}/undeleteको कॉल करता है।- फ़्लैग:
--yes: confirmation छोड़ें।--json: machine-readable output।
उदाहरण:
clawhub package undelete @openclaw/example-plugin --yespackage transfer <name>
- package को किसी दूसरे publisher को transfer करता है।
- current package owner और destination publisher, दोनों तक admin access आवश्यक है, जब तक कि platform admin द्वारा न किया जाए।
- Scoped package names को matching scope owner को transfer होना चाहिए।
POST /api/v1/packages/{name}/transferको कॉल करता है।- फ़्लैग:
--to <owner>: destination publisher handle।--reason <text>: optional audit reason।--json: machine-readable output।
उदाहरण:
clawhub package transfer @openclaw/example-plugin --to openclawpackage report
- moderators को package report करने के लिए authenticated command।
POST /api/v1/packages/{name}/reportको कॉल करता है।- Reports package-level होती हैं, optionally किसी version से जुड़ी होती हैं, और review के लिए moderators को visible हो जाती हैं।
- Reports अपने आप packages hide नहीं करतीं या downloads block नहीं करतीं।
- फ़्लैग:
--version <version>: report से attach करने के लिए optional package version।--reason <text>: required report reason।--json: machine-readable output।
उदाहरण:
clawhub package report @openclaw/example-plugin --version 1.2.3 --reason "suspicious native payload"package moderation-status
- package moderation visibility check करने के लिए owner command।
GET /api/v1/packages/{name}/moderationको कॉल करता है।- वर्तमान package scan state, open report count, latest release manual moderation state, download block state, और moderation reasons दिखाता है।
- फ़्लैग:
--json: machine-readable output।
उदाहरण:
clawhub package moderation-status @openclaw/example-pluginpackage readiness <name>
- check करता है कि कोई package future OpenClaw consumption के लिए ready है या नहीं।
GET /api/v1/packages/{name}/readinessको कॉल करता है।- official status, ClawPack availability, artifact digest, source provenance, OpenClaw compatibility, host targets, environment metadata, और scan state के लिए blockers report करता है।
- फ़्लैग:
--json: machine-readable output।
उदाहरण:
clawhub package readiness @openclaw/example-pluginpackage migration-status <name>
- ऐसे package के लिए operator-oriented migration status दिखाता है जो किसी bundled OpenClaw plugin को replace कर सकता है।
package readinessजैसा ही computed readiness endpoint call करता है, लेकिन migration-focused status, latest version, official-package state, checks, और blockers print करता है।- फ़्लैग:
--json: machine-readable output।
उदाहरण:
clawhub package migration-status @openclaw/example-pluginpublisher create <handle>
- authenticated user के स्वामित्व वाला org publisher बनाता है।
- handle lowercase में normalize किया जाता है और
@के साथ या बिना pass किया जा सकता है। - नए बनाए गए org publishers default रूप से trusted/official नहीं होते।
- यदि handle पहले से किसी existing publisher, user, या reserved route द्वारा उपयोग किया गया है, तो fail होता है।
clawhub publisher create opik --display-name "Opik"package publish <source>
POST /api/v1/packagesके ज़रिए code Plugin या bundle Plugin प्रकाशित करता है.<source>स्वीकार करता है:- स्थानीय फ़ोल्डर पथ:
./my-plugin - स्थानीय ClawPack npm-pack tarball:
./my-plugin-1.2.3.tgz - GitHub रेपो:
owner/repoयाowner/repo@ref - GitHub URL:
https://github.com/owner/repo
- स्थानीय फ़ोल्डर पथ:
- मेटाडेटा
package.json,openclaw.plugin.json, और वास्तविक OpenClaw bundle markers जैसे.codex-plugin/plugin.json,.claude-plugin/plugin.json, और.cursor-plugin/plugin.jsonसे स्वतः पहचाना जाता है. .tgzस्रोतों को ClawPack माना जाता है. CLI ठीक वही npm-pack bytes अपलोड करता है और निकाले गएpackage/contents का उपयोग केवल सत्यापन और मेटाडेटा पहले से भरने के लिए करता है.- Code-plugin फ़ोल्डरों को अपलोड से पहले ClawPack npm tarball में पैक किया जाता है ताकि OpenClaw installs ठीक उसी artifact को सत्यापित कर सकें. Bundle-plugin फ़ोल्डर अभी भी extracted-file publish path का उपयोग करते हैं.
- GitHub स्रोतों के लिए, स्रोत attribution रेपो, resolved commit, ref, और subpath से स्वतः भरी जाती है.
- स्थानीय फ़ोल्डरों के लिए, जब origin remote GitHub की ओर इशारा करता है, तो स्रोत attribution स्थानीय git से स्वतः पहचानी जाती है.
- बाहरी code plugins को
openclaw.compat.pluginApiऔरopenclaw.build.openclawVersionस्पष्ट रूप से घोषित करना होगा. Top-levelpackage.json.versionको publish validation के fallback के रूप में उपयोग नहीं किया जाता. --dry-runअपलोड किए बिना resolved publish payload का पूर्वावलोकन दिखाता है.--jsonCI के लिए machine-readable output निकालता है.--owner <handle>तब user या org publisher handle के अंतर्गत प्रकाशित करता है जब actor के पास publisher access हो.- Scoped package names चयनित owner से मेल खाने चाहिए.
docs/publishing.mdदेखें. - मौजूदा flags (
--family,--name,--version,--source-repo,--source-commit,--source-ref,--source-path) अभी भी overrides के रूप में काम करते हैं. - निजी GitHub repos के लिए
GITHUB_TOKENआवश्यक है.
clawhub package publish ./plugin.tgz --owner openclawअनुशंसित स्थानीय प्रवाह
पहले --dry-run का उपयोग करें ताकि live release बनाने से पहले आप resolved package metadata और
source attribution की पुष्टि कर सकें:
npm packclawhub package publish ./my-plugin-1.2.3.tgz --family code-plugin --dry-runclawhub package publish ./my-plugin-1.2.3.tgz --family code-pluginस्थानीय फ़ोल्डर प्रवाह
Code plugins के लिए, folder publish package folder से ClawPack artifact बनाता और अपलोड करता है:
clawhub package publish ./my-plugin --family code-plugin --dry-runclawhub package publish ./my-plugin --family code-plugin--family code-plugin के लिए न्यूनतम package.json
बाहरी code plugins को package.json में थोड़े OpenClaw मेटाडेटा की आवश्यकता होती है.
यह न्यूनतम manifest सफल publish के लिए पर्याप्त है:
{ "name": "@myorg/openclaw-my-plugin", "version": "1.0.0", "type": "module", "openclaw": { "extensions": ["./index.ts"], "compat": { "pluginApi": ">=2026.3.24-beta.2" }, "build": { "openclawVersion": "2026.3.24-beta.2" } }}आवश्यक fields:
openclaw.compat.pluginApiopenclaw.build.openclawVersion
नोट्स:
package.json.versionआपके package release version के लिए है, लेकिन इसे OpenClaw compatibility/build validation के fallback के रूप में उपयोग नहीं किया जाता.openclaw.hostTargetsऔरopenclaw.environmentवैकल्पिक मेटाडेटा हैं. मौजूद होने पर ClawHub उन्हें दिखा सकता है, लेकिन publish के लिए वे आवश्यक नहीं हैं.- यदि आप अधिक विस्तृत compatibility metadata प्रकाशित करना चाहते हैं, तो
openclaw.compat.minGatewayVersionऔरopenclaw.build.pluginSdkVersionवैकल्पिक extras हैं. - यदि आप पुराने
clawhubCLI release का उपयोग कर रहे हैं, तो प्रकाशित करने से पहले upgrade करें ताकि स्थानीय preflight checks अपलोड से पहले चलें. - यदि validation remediation code रिपोर्ट करता है, तो Plugin सत्यापन सुधार देखें.
GitHub Actions
ClawHub plugin repos के लिए
/.github/workflows/package-publish.yml
पर एक आधिकारिक reusable workflow भी भेजता है.
सामान्य caller setup:
name: Package Publish on: pull_request: workflow_dispatch: push: tags: - "v*" jobs: dry-run: if: github.event_name == 'pull_request' uses: openclaw/clawhub/.github/workflows/package-publish.yml@v0.12.0 with: dry_run: true publish: if: github.event_name == 'workflow_dispatch' || startsWith(github.ref, 'refs/tags/') permissions: contents: read id-token: write uses: openclaw/clawhub/.github/workflows/package-publish.yml@v0.12.0 with: dry_run: false secrets: clawhub_token: ${{ secrets.CLAWHUB_TOKEN }}नोट्स:
- Reusable workflow
sourceको caller repo पर default करता है. - Monorepos के लिए,
source_pathपास करें ताकि workflow Plugin package folder प्रकाशित करे, उदाहरण के लिएsource_path: extensions/codex. - Reusable workflow को stable tag या full commit SHA पर pin करें.
@mainसे release publishing न चलाएँ. pull_requestमेंdry_run: trueका उपयोग करना चाहिए ताकि CI गैर-प्रदूषक रहे.- वास्तविक publishes को
workflow_dispatchया tag pushes जैसे trusted events तक सीमित रखना चाहिए. - Secret के बिना trusted publishing केवल
workflow_dispatchपर काम करती है; tag pushes को अभी भीclawhub_tokenचाहिए. - पहले publish, untrusted packages, या break-glass publishes के लिए
clawhub_tokenउपलब्ध रखें. - Workflow JSON result को artifact के रूप में अपलोड करता है और उसे workflow outputs के रूप में expose करता है.
package trusted-publisher get <name>
- किसी package के लिए GitHub Actions trusted publisher config दिखाता है.
- Config सेट करने के बाद repository, workflow filename, और वैकल्पिक environment pin की पुष्टि करने के लिए इसका उपयोग करें.
- Flags:
--json: machine-readable output.
उदाहरण:
clawhub package trusted-publisher get @openclaw/example-pluginpackage trusted-publisher set <name>
- किसी मौजूदा package के लिए GitHub Actions trusted publisher config जोड़ता या बदलता है.
- Package पहले सामान्य manual या token-authenticated
clawhub package publishके माध्यम से बनाया जाना चाहिए. - Config सेट होने के बाद, भविष्य के समर्थित GitHub Actions publishes लंबे समय तक रहने वाले ClawHub token के बिना OIDC/trusted publishing का उपयोग कर सकते हैं.
--repository <repo>कोowner/repoहोना चाहिए.--workflow-filename <file>को.github/workflows/में workflow file name से मेल खाना चाहिए.--environment <name>वैकल्पिक है. Configure होने पर, OIDC claim में GitHub Actions environment को ठीक-ठीक मेल खाना चाहिए.- यह command चलने पर ClawHub configured GitHub repository को सत्यापित करता है. Public repositories को public GitHub metadata के माध्यम से सत्यापित किया जा सकता है. Private repositories के लिए ClawHub के पास उस repository तक GitHub access होना आवश्यक है, उदाहरण के लिए भविष्य के ClawHub GitHub App installation या किसी अन्य authorized GitHub integration के माध्यम से.
- Flags:
--repository <repo>: GitHub repository, उदाहरण के लिएopenclaw/example-plugin.--workflow-filename <file>: workflow file name, उदाहरण के लिएpackage-publish.yml.--environment <name>: वैकल्पिक exact-match GitHub Actions environment.--json: machine-readable output.
उदाहरण:
clawhub package trusted-publisher set @openclaw/example-plugin \ --repository openclaw/example-plugin \ --workflow-filename package-publish.yml \ --environment releasepackage trusted-publisher delete <name>
- किसी package से trusted publisher config हटाता है.
- यदि workflow, repository, या environment pin को disable या फिर से create करने की आवश्यकता हो, तो इसे rollback के रूप में उपयोग करें.
- भविष्य के वास्तविक publishes को config फिर से सेट होने तक सामान्य authenticated publishing का उपयोग करना होगा.
- Flags:
--json: machine-readable output.
उदाहरण:
clawhub package trusted-publisher delete @openclaw/example-pluginInstall telemetry
clawhub install <slug>के बाद, logged in होने पर भेजा जाता है, जब तकCLAWHUB_DISABLE_TELEMETRY=1सेट न हो.- Reporting best-effort है. Telemetry उपलब्ध न होने पर install commands fail नहीं होते.
- विवरण:
docs/telemetry.md.