लर्निंग पाथ
OpenClaw की बिल्ट-इन स्किल्स आम वर्कफ़्लो कवर करती हैं, और ClawHub पर और भी बहुत कुछ मिलता है। लेकिन सबसे अहम वही होते हैं जो अब तक किसी ने बनाए ही नहीं—यानी आपकी अपनी परियोजनाओं और टूल्स के इर्द-गिर्द ढले ऑटोमेशन।
यह ट्यूटोरियल दो कस्टम स्किल्स बनाना दिखाता है। पहली एक Python स्क्रिप्ट को रैप करती है जो Jupyter नोटबुक्स को Word दस्तावेज़ों में बदलती है। यदि आप नोटबुक्स में लिखते हैं लेकिन एडिटर्स या स्टेकहोल्डर्स को .docx फाइलें सौंपते हैं, तो यह मैनुअल एक्सपोर्ट को एक स्लैश कमांड में बदल देती है। दूसरी स्किल Replicate API के जरिए Nano Banana Pro से इमेज जनरेट करती है, जिसमें बेसिक्स के ऊपर क्रेडेंशियल मैनेजमेंट और एनवायरनमेंट स्कोपिंग की परतें जोड़ी जाती हैं।
ट्यूटोरियल में Docker सैंडबॉक्सिंग, मेटाडेटा गेटिंग और स्किल्स को ClawHub पर पब्लिश करना भी शामिल है। OpenClaw प्लेटफ़ॉर्म का व्यापक दृष्टिकोण देखने के लिए OpenClaw Projects: What You Can Build और हमारे टॉप एजेंट स्किल्स गाइड देखें।
OpenClaw स्किल्स क्या हैं?
स्किल्स वे तरीके हैं जिनसे आप OpenClaw एजेंट में नए व्यवहार जोड़ते हैं। कोई स्किल उतनी सरल हो सकती है जितना कि कोड को रीफॉर्मैट करने वाली स्लैश कमांड, या उतनी जटिल जितना कि PRs की समीक्षा करने और Jira या Slack पर टिप्पणियां पोस्ट करने वाला बहु-चरणीय वर्कफ़्लो।
यदि आपने MCP (Model Context Protocol) सर्वर्स का Claude Code या समान टूल्स में उपयोग किया है, तो स्किल्स एक अलग भूमिका निभाती हैं। MCP सर्वर्स अलग प्रोसेसेज़ होते हैं जो एक मानकीकृत प्रोटोकॉल के जरिए टूल्स एक्सपोज़ करते हैं, जो ऐसे इंटीग्रेशन्स के लिए उपयुक्त है जिन्हें परसिस्टेंट स्टेट या मल्टीपल टूल एंडपॉइंट्स चाहिए।
स्किल्स इन सबको छोड़कर सीधे चलते हैं: आप साधारण-भाषा में निर्देश लिखते हैं जिन्हें एजेंट रनटाइम पर पढ़ता और मानता है, जिससे जब आपको सिर्फ एक चीज़ ऑटोमेट करनी हो तो इन्हें बनाना तेज़ हो जाता है। OpenClaw बनाम Claude Code तुलना इन ट्रेड-ऑफ़्स पर विस्तार से जाती है।
Hooks, दूसरा एक्सटेंशन प्वाइंट, कुछ होने पर अपने-आप ट्रिगर होते हैं, जैसे कोई टूल कॉल पूरा होना या मॉडल का रिस्पॉन्स जनरेट करना। स्किल्स तब तक निष्क्रिय रहती हैं जब तक उपयोगकर्ता कोई स्लैश कमांड न लिख दे या एजेंट किसी कार्य के संदर्भ में उन्हें प्रासंगिक न समझे।

OpenClaw ईमेल, कैलेंडर, GitHub, ब्राउज़र ऑटोमेशन आदि पर 49 स्किल्स के साथ आता है। समुदाय ने ClawHub पर हज़ारों अतिरिक्त स्किल्स पब्लिश की हैं। प्लेटफ़ॉर्म कैसे विकसित हुआ, इसकी पृष्ठभूमि के लिए MoltBot से ClawdBot का इतिहास देखें।
पूर्वापेक्षाएँ
आपको चाहिए:
- Telegram के माध्यम से OpenClaw इंस्टॉल और रनिंग (इंस्टॉल गाइड)। Telegram का BotFather इंटीग्रेशन स्लैश कमांड सपोर्ट के लिए सबसे अच्छा है, और यही इस ट्यूटोरियल में स्किल्स ट्रिगर करने का तरीका होगा।
- uv इंस्टॉल (इस ट्यूटोरियल की दोनों स्किल्स Python डिपेंडेंसीज़ के लिए इसका उपयोग करती हैं)
- टर्मिनल, YAML और Markdown के साथ सहजता
- इमेज जनरेशन स्किल के लिए एक Replicate API टोकन (फ्री साइनअप, उपयोग-आधारित भुगतान)
- यदि आप ClawHub पर पब्लिश करना चाहते हैं तो कम से कम एक सप्ताह पुराना GitHub खाता
यदि आप OpenClaw को लोकल मॉडलों के साथ चलाना पसंद करते हैं, तो Ollama के साथ OpenClaw ट्यूटोरियल वह सेटअप कवर करता है।
अपनी पहली OpenClaw स्किल बनाना
पहली स्किल एक Python स्क्रिप्ट को रैप करती है जो Jupyter नोटबुक्स को Word दस्तावेज़ों में बदलती है, markdown फ़ॉर्मैटिंग, कोड ब्लॉक्स, इमेजेज़, टेबल्स और हाइपरलिंक्स को संभालते हुए ताकि .docx आउटपुट मूल नोटबुक की संरचना को बनाए रखे। यदि आप नियमित रूप से Word में काम करने वाले लोगों को नोटबुक सामग्री सौंपते हैं, तो यह मैनुअल एक्सपोर्ट को एक ही स्लैश कमांड में बदल देता है।
OpenClaw की मैनेज्ड स्किल्स डायरेक्टरी में स्किल फ़ोल्डर बनाएँ:
mkdir -p ~/.openclaw/skills/notebook-to-docx
~/.openclaw/skills में मौजूद स्किल्स आपकी सभी सेशंस में उपलब्ध रहती हैं। आप इन्हें किसी प्रोजेक्ट के अंदर <project>/skills पर भी रख सकते हैं ताकि वे उस वर्कस्पेस तक सीमित रहें; और जब एक ही नाम दोनों जगह हो, तो वर्कस्पेस कॉपी मैनेज्ड कॉपी पर वरीय होती है, जो बदले में उसी नाम की किसी भी बंडल्ड स्किल को ओवरराइड करती है।
SKILL.md लिखना
हर स्किल को एक फाइल चाहिए: SKILL.md। सबसे ऊपर का YAML फ्रंटमैटर बताता है कि OpenClaw स्किल को कैसे लोड करे, और नीचे का मार्कडाउन बॉडी रनटाइम पर एजेंट द्वारा माने जाने वाले निर्देशों को रखता है।
यह फाइल बनाएँ ~/.openclaw/skills/notebook-to-docx/SKILL.md, फ्रंटमैटर से शुरू करते हुए:
---
name: notebook-to-docx
description: Convert Jupyter notebooks to Word documents with proper formatting
user-invocable: true
metadata: {"openclaw": {"requires": {"bins": ["uv"]}}}
---
name ही स्लैश कमांड का नाम भी होता है (/notebook-to-docx)। description एजेंट को एक पंक्ति का सार देता है जिससे वह मौजूदा कार्य के लिए प्रासंगिकता आँकता है। user-invocable: true सेट करने पर आपकी Telegram चैट में स्लैश कमांड रजिस्टर हो जाती है। metadata JSON लोड-टाइम गेटिंग संभालता है: requires.bins OpenClaw को बताता है कि यदि uv सिस्टम PATH पर न हो तो इस स्किल को रनटाइम पर फेल होने के बजाय स्किप कर दे।
यदि आप उलटा व्यवहार चाहते हैं, यानी स्किल तब तक न चले जब तक आप स्पष्टतः स्लैश कमांड न टाइप करें, तो disable-model-invocation: true सेट करें।
टिप्पणी: YAML फ्रंटमैटर केवल एक-पंक्ति वाले मानों का समर्थन करता है। मल्टी-लाइन स्ट्रिंग्स या ब्लॉक स्कैलर्स पार्स त्रुटियाँ देंगे; इसी कारण metadata एक सिंगल-लाइन JSON ऑब्जेक्ट है, नेस्टेड YAML नहीं।
फ्रंटमैटर के नीचे, निर्देश बॉडी जोड़ें:
# Notebook to DOCX Converter
Converts Jupyter notebooks (.ipynb) to Word documents (.docx) with proper formatting.
## Usage
Run the conversion script:
uv run --with nbformat --with python-docx --with Pillow python {baseDir}/notebook_to_docx.py <notebook_path> [output_path]
If output_path is not specified, creates a .docx file with the same name as the notebook.
## Features
- Markdown formatting preserved as Word styles (bold, italics, headings)
- Backticks preserved around inline code with monospace font
- Code blocks show triple backticks and language name, use Courier New font
- Non-code text uses Poppins font
- Images embedded with alt text
- Hyperlinks preserved and clickable
- Markdown tables converted to Word tables
## Requirements
- nbformat
- python-docx
- Pillow
{baseDir} एक टेम्पलेट वैरिएबल है जो रनटाइम पर स्किल फ़ोल्डर पथ में रिज़ॉल्व होती है, इसलिए आपको लोकेशन हार्डकोड करने की ज़रूरत नहीं। जब कोई और आपकी स्किल को किसी अलग डायरेक्टरी में इंस्टॉल करे तो यह महत्वपूर्ण होता है।
uv run --with फ़्लैग्स स्क्रिप्ट के लिए ज़रूरी तीन लाइब्रेरीज़ खींच लेते हैं, जिससे स्किल उपयोगकर्ता के एनवायरनमेंट पर पैकेजों की मौजूदगी मान लेने के बजाय स्वयं-निहित रहती है।
सपोर्टिंग स्क्रिप्ट
Python स्क्रिप्ट उसी फ़ोल्डर में जाती है जहाँ SKILL.md है। लगभग 490 पंक्तियों की होने के कारण इसे यहाँ शामिल करना लंबा होगा, इसलिए इस gist से पूरी स्क्रिप्ट लें और notebook_to_docx.py नाम से ~/.openclaw/skills/notebook-to-docx/ में रखें। यह ऊपर SKILL.md के Features सेक्शन में सूचीबद्ध सब कुछ कवर करती है।
यहाँ एंट्री प्वाइंट है ताकि आप ऊँचे स्तर पर इसका काम देख सकें:
def convert_notebook_to_docx(notebook_path, output_path=None):
notebook_path = Path(notebook_path)
if output_path is None:
output_path = notebook_path.with_suffix('.docx')
else:
output_path = Path(output_path)
with open(notebook_path, 'r', encoding='utf-8') as f:
nb = nbformat.read(f, as_version=4)
doc = Document()
create_styles(doc)
style = doc.styles['Normal']
style.font.name = 'Poppins'
style.font.size = Pt(11)
base_path = notebook_path.parent
for cell in nb.cells:
if cell.cell_type == 'markdown':
process_markdown_cell(doc, cell.source, base_path)
elif cell.cell_type == 'code':
process_code_cell(doc, cell.source, cell.get('outputs', []))
doc.save(output_path)
print(f'Converted: {notebook_path} -> {output_path}')
return output_path
स्किल का परीक्षण
OpenClaw सेशन स्टार्ट पर स्किल लिस्ट का स्नैपशॉट लेता है, लेकिन एक बिल्ट-इन फाइल वॉचर नए SKILL.md फाइलों को लगभग 250ms में पकड़ लेता है। यदि स्किल दिखाई नहीं देती, तो सेशन को रीस्टार्ट करें।
यह वह नोटबुक है जिसे हम टेस्ट के लिए उपयोग करेंगे:

OpenClaw के साथ अपनी Telegram चैट खोलें और /notebook-to-docx टाइप करें, फिर बताएं किस नोटबुक को कन्वर्ट करना है:

प्राप्त Word दस्तावेज़:

हेडिंग्स, कोड ब्लॉक्स, इनलाइन फ़ॉर्मैटिंग और हाइपरलिंक्स सही Word स्टाइल्स में आ जाते हैं। यदि आपके आउटपुट में कुछ गड़बड़ दिखे, तो जाँचें कि आपके SKILL.md की फीचर लिस्ट स्क्रिप्ट की सपोर्ट से मेल खाती है या नहीं।
OpenClaw सुरक्षा और सैंडबॉक्सिंग
OpenClaw टूल एक्ज़ीक्यूशन को Docker कंटेनरों के अंदर चला सकता है, जिससे कोई भी बिगड़ी हुई या समझौता की गई स्किल आपकी मशीन पर क्या-क्या छू सकती है, वह सीमित हो जाता है। सेटिंग ~/.openclaw/openclaw.json की agents.defaults.sandbox में होती है, और चुनने के लिए तीन मोड हैं:
"off"डिफ़ॉल्ट है, जिसमें टूल्स सीधे होस्ट पर रन होते हैं और कोई आइसोलेशन लेयर नहीं होती।"non-main"आपकी मुख्य चैट सेशन को होस्ट पर रखता है पर बैकग्राउंड और ऑटोमेटेड सेशंस को कंटेनरों में शिफ्ट कर देता है।-
"all"के साथ, हर सेशन संदर्भ की परवाह किए बिना कंटेनर के अंदर चलता है।
मोड के ऊपर, आप एक वर्कस्पेस एक्सेस स्तर चुनते हैं जो तय करता है कि कंटेनर आपकी फाइलसिस्टम का कितना हिस्सा देखता है। डिफ़ॉल्ट "none" सैंडबॉक्स को ~/.openclaw/sandboxes के तहत अपना अलग-थलग डायरेक्टरी देता है, जिसमें आपके प्रोजेक्ट फाइलों तक कोई पहुँच नहीं।
"ro" के साथ, आपका वर्कस्पेस /agent पर रीड-ओनली के रूप में माउंट होता है, इसलिए एजेंट आपका कोड पढ़ सकता है पर कुछ बदल नहीं सकता। "rw" इससे आगे बढ़कर /workspace पर पूर्ण रीड-राइट एक्सेस देता है।
एक कामकाजी कॉन्फ़िगरेशन जो बैकग्राउंड सेशंस को सैंडबॉक्स करता है और उन्हें राइट एक्सेस देता है, इस तरह दिखता है:
{
"agents": {
"defaults": {
"sandbox": {
"mode": "non-main",
"scope": "session",
"workspaceAccess": "rw"
}
}
}
}

यह उसी क्षण प्रासंगिक हो जाता है जब आपकी स्किल्स APIs कॉल करना या क्रेडेंशियल्स संभालना शुरू करती हैं।
जब कोई स्किल कंटेनर के अंदर चलती है, तो होस्ट के एनवायरनमेंट वैरिएबल अपने-आप वहाँ मौजूद नहीं होते। आपने .bashrc में जो REPLICATE_API_TOKEN एक्सपोर्ट किया है, वह सैंडबॉक्स के अंदर मौजूद नहीं होगा, इसलिए सीक्रेट्स को OpenClaw की कॉन्फ़िग सिस्टम के जरिए भेजना होगा—यही हम अगले सेक्शन में सेट अप करेंगे।
टिप्पणी: यदि आपकी स्किल अपने मेटाडेटा में requires.bins का उपयोग किसी CLI टूल पर गेटिंग के लिए करती है, तो यह चेक लोड टाइम पर होस्ट पर चलता है। लेकिन जब एजेंट सैंडबॉक्स में है, तो वह बाइनरी कंटेनर के अंदर भी मौजूद होनी चाहिए। उसे sandbox.docker.setupCommand के जरिए इंस्टॉल करें या किसी कस्टम Docker इमेज में बेक करें।
सैंडबॉक्सिंग फ़ाइल ऑपरेशन्स या शेल कमांड्स के गलत होने पर क्षति-क्षेत्र को भी सीमित करती है। कोई स्किल गलती से rm -rf / चला दे, तो वह आपके वास्तविक मशीन के बजाय कंटेनर फाइलसिस्टम को लगेगा—यह इसे ऑन करने का अच्छा कारण है, भले ही आप अपने कोड पर भरोसा करते हों।
AI एजेंट वर्कफ़्लोज़ सुरक्षा सीमाएँ कैसे संभालते हैं, इस पर अधिक जानकारी के लिए AI Agent Workflows with Claude CoWork देखें।
API-कनेक्टेड स्किल बनाना
दूसरी स्किल Replicate API के माध्यम से Google के Nano Banana Pro (Gemini 3 Pro Image) मॉडल का उपयोग करके इमेज जनरेट करती है, जिसका मतलब है कि SKILL.md बेसिक्स के ऊपर क्रेडेंशियल मैनेजमेंट और एनवायरनमेंट गेटिंग भी वायर करनी होगी।

स्किल फ़ोल्डर बनाएँ:
mkdir -p ~/.openclaw/skills/nano-banana-pro
यह फाइल बनाएँ ~/.openclaw/skills/nano-banana-pro/SKILL.md, फ्रंटमैटर से शुरू करते हुए:
---
name: nano-banana-pro
description: Generate or edit images via Gemini 3 Pro Image on Replicate
user-invocable: true
metadata: {"openclaw": {"emoji": "🎨", "requires": {"env": ["REPLICATE_API_TOKEN"], "bins": ["uv"]}, "primaryEnv": "REPLICATE_API_TOKEN"}}
---
संरचना पहली स्किल जैसी ही है, लेकिन metadata फ़ील्ड और काम कर रहा है। अब इसमें दो गेट्स हैं: requires.env यह जाँचता है कि REPLICATE_API_TOKEN मौजूद है या नहीं, और requires.bins uv की मौजूदगी की जाँच करता है। इनमें से कोई भी न हो तो स्किल चुपचाप स्किप हो जाती है।
emoji फ़ील्ड Telegram की स्लैश कमांड लिस्ट में एक आइकन सेट करती है। और primaryEnv REPLICATE_API_TOKEN को कॉन्फ़िग के apiKey शॉर्टकट से मैप करता है (नीचे क्रेडेंशियल सेक्शन में और जानकारी)।
यदि आप macOS Skills UI में आवश्यक बाइनरीज़ के लिए वन-क्लिक इंस्टॉलेशन ऑफर करना चाहते हैं, तो मेटाडेटा में एक install ऐरे जोड़ें:
metadata: {"openclaw": {"requires": {"bins": ["uv"]}, "install": [{"id": "brew", "kind": "brew", "formula": "uv", "bins": ["uv"], "label": "Install uv (brew)"}]}}
Linux पर, इंस्टॉलेशन को मैन्युअल रूप से या sandbox.docker.setupCommand के जरिए संभालें।
फ्रंटमैटर के नीचे, निर्देश बॉडी जोड़ें:
# Nano Banana Pro Image Generator
Generate and edit images using Google's Nano Banana Pro model via the Replicate API.
## Usage
Run the generation script:
uv run --with replicate python {baseDir}/generate.py --prompt "<user prompt>" [--aspect-ratio 1:1] [--output image.png]
## Options
- --prompt: The image description (required)
- --aspect-ratio: Ratio like 1:1, 4:3, 16:9 (default: 1:1)
- --output: Output file path (default: generated_image.png)
## Tips
- For text in images, be specific about fonts, size, and placement
- The model supports resolutions up to 2K
- Safety filtering is on by default
बॉडी पहली स्किल से छोटी है क्योंकि जनरेशन स्क्रिप्ट ज़्यादातर जटिलता को संभालती है। {baseDir} टेम्पलेट वैरिएबल वही तरह काम करती है—रनटाइम पर स्किल फ़ोल्डर में रिज़ॉल्व होती है।
जनरेशन स्क्रिप्ट
यह जोड़ें ~/.openclaw/skills/nano-banana-pro/generate.py:
import replicate
import urllib.request
import argparse
def main():
parser = argparse.ArgumentParser()
parser.add_argument("--prompt", required=True)
parser.add_argument("--aspect-ratio", default="1:1")
parser.add_argument("--output", default="generated_image.png")
args = parser.parse_args()
output = replicate.run(
"google/nano-banana-pro",
input={
"prompt": args.prompt,
"aspect_ratio": args.aspect_ratio,
"output_format": "png",
"safety_filter_level": "block_only_high",
},
)
# Replicate returns a FileOutput; download the image
url = str(output[0]) if isinstance(output, list) else str(output)
urllib.request.urlretrieve(url, args.output)
print(f"Image saved to {args.output}")
if __name__ == "__main__":
main()
यह आर्ग्युमेंट्स पार्स करता है, मॉडल नाम और इनपुट पैरामीटर्स के साथ replicate.run() कॉल करता है, और परिणामी इमेज डाउनलोड करता है। replicate लाइब्रेरी REPLICATE_API_TOKEN को अपने-आप एनवायरनमेंट से पढ़ती है।
API क्रेडेंशियल कॉन्फ़िगर करना
इसमें एक प्रविष्टि जोड़ें ~/.openclaw/openclaw.json:
{
"skills": {
"entries": {
"nano-banana-pro": {
"enabled": true,
"apiKey": "r8_your_replicate_token_here",
"env": {
"REPLICATE_API_TOKEN": "r8_your_replicate_token_here"
}
}
}
}
}
यहाँ क्रेडेंशियल देने के दो तरीके हैं। apiKey फ़ील्ड एक शॉर्टकट है जो स्किल मेटाडेटा में घोषित primaryEnv पर मैप करता है। env ब्लॉक आपको बारीक नियंत्रण देता है, जिससे यदि स्किल को कई एनवायरनमेंट वैरिएबल्स चाहिए हों तो आप उन्हें इंजेक्ट कर सकें।
दोनों तरीक़े मानों को एजेंट रन के लिए स्कोप करते हैं। वे रन स्टार्ट पर सेट होते हैं और उसके खत्म होते ही क्लियर, इसलिए वे आपके ग्लोबल शेल एनवायरनमेंट में लीक नहीं होते।
परीक्षण
एक नया OpenClaw सेशन शुरू करें और स्किल इनवोक करें:
/nano_banana_pro generate a beautiful and accurate diagram of how backpropagation works
यह वह डायग्राम है जो स्किल ने Replicate पर Nano Banana Pro के जरिए बनाया:

इमेज तो मिल गई, लेकिन यहाँ आने में एक मोड़ आया। इस SKILL.md के पहले संस्करण में ## Rules सेक्शन नहीं था, जिसने एजेंट को इम्प्रोवाइज़ करने की जगह दे दी। जब Nano Banana Pro ने अधिक मांग के कारण "service unavailable" त्रुटि लौटाई, तो एजेंट ने अपने-आप google/nano-banana (नॉन-Pro वैरिएंट) को फॉलबैक के रूप में आज़माने का निर्णय लिया और उसी मॉडल से इमेज बना दी।
एजेंट के दृष्टिकोण से, यह चुनाव तार्किक था: किसी भी उपलब्ध माध्यम से कार्य पूरा करना। आपके दृष्टिकोण से, यह वही नहीं था जो आपने कहा था। समाधान था निर्देश बॉडी में व्यवहार संबंधी सीमाएँ जोड़ना:
## Rules
- Only use the google/nano-banana-pro model. Never fall back to other models like google/nano-banana or any alternative. If the model is unavailable or rate-limited, report the error to the user and stop.
- After generating an image, send the image file directly in the chat. Do not just save it to the workspace silently.
एजेंट SKILL.md निर्देशों को सख्त सीमा के बजाय मार्गदर्शन की तरह मानता है, और जहाँ गैप हों उन्हें अपने निर्णय से भर देता है। जिसे आप मना नहीं करते, उसे वह आज़माने का फैसला कर सकता है।
यदि कोई व्यवहार आपके लिए अहम है—चाहे वह कौन-सा मॉडल उपयोग करना हो, आउटपुट कहाँ भेजना हो, या विफलता पर दोबारा कोशिश करनी हो—तो उसे Rules सेक्शन में स्पष्ट रूप से लिखें।
ClawHub पर स्किल्स पब्लिश और साझा करना
ClawHub OpenClaw स्किल्स के लिए सार्वजनिक रजिस्ट्री है, जिसे मुफ्त में ब्राउज़ और इंस्टॉल किया जा सकता है। पब्लिशिंग के लिए कम से कम एक सप्ताह पुराना GitHub अकाउंट चाहिए।
CLI सेट अप करना
ClawHub CLI को ग्लोबली इंस्टॉल करें:
npm i -g clawhub
फिर ऑथेंटिकेट करें:
clawhub login
यह GitHub ऑथेंटिकेशन के लिए आपका ब्राउज़र खोलता है। ऑथेंटिकेट होने के बाद, आप टर्मिनल से सर्च, इंस्टॉल और पब्लिश कर सकते हैं।
अपनी स्किल पब्लिश करना
इमेज जनरेशन स्किल पब्लिश करने के लिए:
clawhub publish ~/.openclaw/skills/nano-banana-pro \
--slug nano-banana-pro \
--name "Nano Banana Pro" \
--version 1.0.0 \
--tags latest
--slug ClawHub पर यूनिक आइडेंटिफ़ायर होता है और पूरी रजिस्ट्री में अद्वितीय होना चाहिए। यदि किसी और ने उसी स्लग के साथ स्किल पहले ही पब्लिश कर दी है, तो कमांड "only the owner can publish updates" त्रुटि के साथ फेल होगी। उस स्थिति में कोई दूसरा स्लग चुनें, जैसे yourname-nano-banana-pro।
--version सेमान्टिक वर्ज़निंग का पालन करता है। हर बार अपडेट पब्लिश करते समय वर्ज़न नंबर बढ़ाएँ और चाहें तो चेंजलॉग जोड़ें:
clawhub publish ~/.openclaw/skills/nano-banana-pro \
--slug nano-banana-pro \
--version 1.1.0 \
--changelog "Added image editing with --image-input flag"
ClawHub वर्ज़न हिस्ट्री रखता है ताकि उपयोगकर्ता बदलावों का ऑडिट कर सकें और ज़रूरत पड़ने पर रोलबैक कर सकें।
बल्क ऑपरेशन्स के लिए, clawhub sync --all आपकी स्किल्स डायरेक्टरी स्कैन करता है और किसी भी नई या अपडेटेड स्किल्स को एक ही बार में पब्लिश कर देता है:
clawhub sync --all --bump patch
कम्युनिटी स्किल्स इंस्टॉल करना
किसी और द्वारा पब्लिश की गई स्किल इंस्टॉल करने के लिए:
clawhub search "calendar"
clawhub install caldav-calendar
इंस्टॉल की गई स्किल्स डिफ़ॉल्ट रूप से ./skills में जाती हैं, जिन्हें OpenClaw अगली सेशन में वर्कस्पेस स्किल्स के रूप में उठा लेता है।
थर्ड-पार्टी स्किल्स पर एक टिप्पणी
जनवरी 2026 में, Koi के सुरक्षा शोधकर्ताओं ने ClawHub पर 341 दुर्भावनापूर्ण स्किल्स खोजीं, जिसे ClawHavoc घटना के नाम से जाना गया। हमलावरों ने टाइपो-स्क्वॉटेड स्किल नामों और नकली "prerequisite" इंस्टॉलेशन चरणों का उपयोग Atomic macOS Stealer (AMOS), रिवर्स शेल्स और क्रेडेंशियल एक्सफ़िल्ट्रेशन पेलोड्स फैलाने के लिए किया।
फरवरी 2026 के मध्य तक, यह संख्या दर्जनों श्रेणियों में 824 से अधिक फ्लैग्ड स्किल्स तक बढ़ गई।
कोई भी कम्युनिटी स्किल इंस्टॉल करने से पहले, उसकी SKILL.md और सपोर्टिंग फाइलें पढ़ें। संदिग्ध "prerequisite" इंस्टॉलेशन चरणों, अपारदर्शी (obfuscated) कोड या base64-एन्कोडेड कमांड्स पर नज़र रखें। ClawHub तीन या अधिक उपयोगकर्ता रिपोर्ट्स वाली स्किल्स को स्वतः छुपा देता है, लेकिन नए दुर्भावनापूर्ण स्किल्स मॉडरेशन से तेज़ी से आ सकते हैं।
Clawdex जैसे टूल्स आपकी इंस्टॉल की गई स्किल्स को ज्ञात दुर्भावनापूर्ण पैकेजों के डेटाबेस के विरुद्ध स्कैन कर सकते हैं।
थर्ड-पार्टी स्किल्स को उसी सावधानी से लें जैसे किसी थर्ड-पार्टी कोड को लेते हैं: चलाने से पहले समीक्षा करें।
निष्कर्ष
SKILL.md फ़ॉर्मेट, openclaw.json के जरिए क्रेडेंशियल स्कोपिंग, और ClawHub CLI—इन सबके बीच आपके पास लोकल ऑटोमेशन से लेकर साझा पैकेज तक का पूरा लाइफ़साइकल है।
नई OpenClaw स्किल बनाने का ज़्यादातर काम मार्कडाउन बॉडी में स्पष्ट निर्देश लिखने और यह तय करने में जाता है कि मेटाडेटा में क्या-क्या गेट करना है। वास्तविक कोड—चाहे वह कन्वर्ज़न स्क्रिप्ट हो या API कॉल—अलग फाइलों में रहता है जहाँ आप उसे स्वतंत्र रूप से टेस्ट और इटरेट कर सकते हैं।
जो इस ट्यूटोरियल के दायरे से आगे जाना चाहते हैं, उनके लिए OpenClaw रिपोज़िटरी में बंडल्ड स्किल्स दिखाती हैं कि कोर टीम अधिक जटिल वर्कफ़्लो कैसे संरचित करती है। Claude Opus 4.6 ओवरव्यू बताता है कि मॉडल चयन एजेंट व्यवहार को कैसे प्रभावित करता है, और Introduction to Claude Models कोर्स एजेंट्स जैसे OpenClaw के पीछे मौजूद मॉडलों के साथ हाथ-से-हाथ अभ्यास कराता है।
OpenClaw स्किल्स बनाने से जुड़े FAQs
OpenClaw में SKILL.md फ़ाइल क्या है?
SKILL.md वह एकल फ़ाइल है जिसकी हर OpenClaw स्किल को आवश्यकता होती है। इसके YAML फ्रंटमैटर में लोडिंग व्यवहार (name, description, metadata गेट्स) परिभाषित होते हैं और नीचे का मार्कडाउन बॉडी रनटाइम पर एजेंट द्वारा माने जाने वाले निर्देश रखता है।
मुझे कस्टम OpenClaw स्किल्स कहाँ रखनी चाहिए?
उन्हें ~/.openclaw/skills/ में रखें ताकि वे सभी सेशंस में उपलब्ध मैनेज्ड स्किल्स रहें, या <project>/skills/ में रखें ताकि वे वर्कस्पेस-स्कोप्ड स्किल्स बनें। वर्कस्पेस स्किल्स मैनेज्ड स्किल्स को ओवरराइड करती हैं, और वे उसी नाम वाली बंडल्ड स्किल्स को।
मैं OpenClaw स्किल को API कीज़ सुरक्षित रूप से कैसे पास करूँ?
क्रेडेंशियल को ~/.openclaw/openclaw.json में स्किल की एंट्री में apiKey शॉर्टकट या env ब्लॉक के जरिए जोड़ें। दोनों तरीकों में वैल्यूज़ एजेंट रन तक सीमित रहती हैं और उसके अंत में क्लियर हो जाती हैं, इसलिए वे आपके शेल एनवायरनमेंट में लीक नहीं होतीं।
मैं OpenClaw स्किल को ClawHub पर कैसे पब्लिश करूँ?
npm से ClawHub CLI इंस्टॉल करें, clawhub login के जरिए ऑथेंटिकेट करें, फिर clawhub publish चलाएँ—स्किल पाथ, वैश्विक रूप से यूनिक स्लग, और सेमान्टिक वर्ज़न नंबर के साथ। आपको कम से कम एक सप्ताह पुराना GitHub खाता चाहिए।
OpenClaw का Docker सैंडबॉक्स क्या है और इसे कब उपयोग करना चाहिए?
Docker सैंडबॉक्स टूल एक्ज़ीक्यूशन को कंटेनरों के अंदर चलाता है ताकि कोई स्किल आपके होस्ट मशीन पर क्या-क्या छू सकती है, वह सीमित रहे। इसके तीन मोड हैं: off, non-main (सिर्फ बैकग्राउंड सेशंस), और all। जब आपकी स्किल्स क्रेडेंशियल्स संभालें या शेल कमांड्स चलाएँ, तो इसे ऑन करना उपयोगी है।
मैं 2 से अधिक वर्षों के अनुभव वाला डेटा साइंस कंटेंट क्रिएटर हूँ और Medium पर सबसे बड़े फॉलोइंग्स में से एक रखता हूँ। मुझे एआई और एमएल पर विस्तार से लेख लिखना पसंद है, जिसमें हल्का-सा व्यंग्यात्मक अंदाज रहता है—क्योंकि कुछ तो करना पड़ता है ताकि वे कम उबाऊ लगें। मैंने 130 से अधिक लेख और एक DataCamp कोर्स तैयार किया है, और एक और बन रहा है। मेरा कंटेंट 50 लाख से अधिक लोगों ने देखा है, जिनमें से 20 हज़ार लोग Medium और LinkedIn पर फॉलोअर्स बन गए।
