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

yaml
---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)।

yaml
---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 में घोषित करें:

yaml
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 उनके बिना चल नहीं सकता।

yaml
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

yaml
---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-.md files शामिल हैं (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.env required variables के लिए, या optional variables के लिए required: false के साथ envVars)।
Was this useful?
On this page

On this page