Get started
कौशल प्रारूप
कौशल प्रारूप
डिस्क पर
कौशल एक फ़ोल्डर है।
आवश्यक:
SKILL.md(याskill.md; लेगेसीskills.mdभी स्वीकार्य है)
वैकल्पिक:
- कोई भी सहायक टेक्स्ट-आधारित फ़ाइलें (“अनुमत फ़ाइलें” देखें)
.clawhubignore(प्रकाशन के लिए ignore पैटर्न, लेगेसी.clawdhubignore).gitignore(इसका भी पालन किया जाता है)
GitHub आयात
वेब GitHub importer local publish/sync की तुलना में अधिक सख्त है। यह केवल
साइन-इन किए गए GitHub खाते के स्वामित्व वाली public, non-fork repositories में
SKILL.md या लेगेसी skills.md फ़ाइलों को खोजता है। यह private repos, forks,
archived/disabled repos, या third-party public repos आयात नहीं करता।
Local install metadata (CLI द्वारा लिखी गई):
<skill>/.clawhub/origin.json(लेगेसी.clawdhub)
Workdir install state (CLI द्वारा लिखी गई):
<workdir>/.clawhub/lock.json(लेगेसी.clawdhub)
SKILL.md
- वैकल्पिक YAML frontmatter के साथ Markdown।
- publish के दौरान server frontmatter से metadata निकालता है।
descriptionको UI/search में skill summary के रूप में उपयोग किया जाता है।
Frontmatter metadata
Skill metadata आपके SKILL.md के शीर्ष पर YAML frontmatter में घोषित किया जाता है। यह registry (और security analysis) को बताता है कि आपके skill को चलने के लिए क्या चाहिए।
मूल frontmatter
---name: my-skilldescription: Short summary of what this skill does.version: 1.0.0---Runtime metadata (metadata.openclaw)
अपने skill की runtime requirements को metadata.openclaw के अंतर्गत घोषित करें (aliases: metadata.clawdbot, metadata.clawdis)।
---name: my-skilldescription: Manage tasks via the Todoist API.metadata: openclaw: requires: env: - TODOIST_API_KEY bins: - curl primaryEnv: TODOIST_API_KEY---उन environment variables के लिए requires.env का उपयोग करें जो skill चलने से पहले मौजूद होने चाहिए। जब आपको प्रति-variable metadata चाहिए, जिसमें required: false वाले optional variables भी शामिल हों, तब envVars का उपयोग करें।
पूरा field reference
| Field | Type | Description |
|---|---|---|
requires.env |
string[] |
वे आवश्यक environment variables जिनकी आपके skill को अपेक्षा है। |
requires.bins |
string[] |
वे CLI binaries जो सभी installed होने चाहिए। |
requires.anyBins |
string[] |
वे CLI binaries जिनमें से कम से कम एक मौजूद होना चाहिए। |
requires.config |
string[] |
वे config file paths जिन्हें आपका skill पढ़ता है। |
primaryEnv |
string |
आपके skill के लिए मुख्य credential env var। |
envVars |
array |
name, optional required, और optional description के साथ environment variable declarations। optional env vars के लिए required: false सेट करें। |
always |
boolean |
यदि true, तो skill हमेशा active रहता है (explicit install आवश्यक नहीं)। |
skillKey |
string |
skill की invocation key override करें। |
emoji |
string |
skill के लिए display emoji। |
homepage |
string |
skill के homepage या docs का URL। |
os |
string[] |
OS restrictions (उदा. ["macos"], ["linux"])। |
install |
array |
dependencies के लिए install specs (नीचे देखें)। |
nix |
object |
Nix Plugin spec (README देखें)। |
config |
object |
Clawdbot config spec (README देखें)। |
Install specs
यदि आपके skill को dependencies installed चाहिए, तो उन्हें install array में घोषित करें:
metadata: openclaw: install: - kind: brew formula: jq bins: [jq] - kind: node package: typescript bins: [tsc]Supported install kinds: brew, node, go, uv.
वैकल्पिक environment variables
Optional environment variables को metadata.openclaw.envVars के अंतर्गत घोषित करें और required: false सेट करें। requires.env में optional entries न जोड़ें, क्योंकि requires.env का मतलब है कि skill उनके बिना चल नहीं सकता।
metadata: openclaw: primaryEnv: TODOIST_API_KEY envVars: - name: TODOIST_API_KEY required: true description: Todoist API token used for authenticated requests. - name: TODOIST_PROJECT_ID required: false description: Optional default project ID when the user does not specify one.यह क्यों महत्वपूर्ण है
ClawHub का security analysis जाँचता है कि आपका skill जो घोषित करता है, वह उसके वास्तविक काम से मेल खाता है। यदि आपका code TODOIST_API_KEY को reference करता है, लेकिन आपका frontmatter उसे requires.env, primaryEnv, या envVars के अंतर्गत घोषित नहीं करता, तो analysis metadata mismatch flag करेगा। declarations को सही रखने से आपका skill review pass करने में मदद मिलती है और users समझ पाते हैं कि वे क्या install कर रहे हैं।
उदाहरण: पूरा frontmatter
---name: todoist-clidescription: Manage Todoist tasks, projects, and labels from the command line.version: 1.2.0metadata: openclaw: requires: env: - TODOIST_API_KEY bins: - curl primaryEnv: TODOIST_API_KEY envVars: - name: TODOIST_API_KEY required: true description: Todoist API token. - name: TODOIST_PROJECT_ID required: false description: Optional default project ID. emoji: "\u2705" homepage: https://github.com/example/todoist-cli---अनुमत फ़ाइलें
publish द्वारा केवल “टेक्स्ट-आधारित” फ़ाइलें स्वीकार की जाती हैं।
- Extension allowlist
packages/schema/src/textFiles.ts(TEXT_FILE_EXTENSIONS) में है। - Script files upload के बाद भी scanned की जाती हैं; PowerShell
.ps1,.psm1, और.psd1फ़ाइलें text के रूप में स्वीकार की जाती हैं। text/से शुरू होने वाले content types को text माना जाता है; साथ ही एक छोटी allowlist (JSON/YAML/TOML/JS/TS/Markdown/SVG)।
Limits (server-side):
- कुल bundle size: 50MB।
- Embedding text में
SKILL.md+ अधिकतम ~40 non-.mdfiles शामिल हैं (best-effort cap)।
Slugs
- default रूप से folder name से derived।
- Package scopes को ClawHub publisher handle से ठीक-ठीक match करना चाहिए। Publisher handles lowercase letters, numbers, hyphens, dots, और underscores का उपयोग कर सकते हैं; उन्हें lowercase letter या number से शुरू और समाप्त होना चाहिए।
- Package slugs lowercase और npm-safe होने चाहिए, उदाहरण के लिए
@example.tools/demo-pluginयाdemo-plugin।
Versioning + tags
- प्रत्येक publish एक नया version (semver) बनाता है।
- Tags किसी version के string pointers होते हैं;
latestआम तौर पर उपयोग किया जाता है।
License
- ClawHub पर प्रकाशित सभी कौशल
MIT-0के अंतर्गत licensed हैं। - कोई भी प्रकाशित कौशलों का उपयोग, modification, और redistribution कर सकता है, commercial उपयोग सहित।
- Attribution आवश्यक नहीं है।
SKILL.mdमें conflicting license terms न जोड़ें; ClawHub per-skill license overrides support नहीं करता।
सशुल्क कौशल
- ClawHub paid skills, per-skill pricing, paywalls, या revenue sharing support नहीं करता।
SKILL.mdमें pricing metadata न जोड़ें; यह skill format का हिस्सा नहीं है और किसी published skill को paid नहीं बनाएगा।- यदि आपका skill किसी paid third-party service से integrate करता है, तो skill instructions और env declarations में external cost और required account को स्पष्ट रूप से document करें (
requires.envrequired variables के लिए, या optional variables के लिएrequired: falseके साथenvVars)।