← Back to Skills Marketplace
almohalhel1408

Hermes Share

by Jahfali-dev · GitHub ↗ · v1.1.0 · MIT-0
cross-platform ⚠ error
15
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install hermes-share
Description
Share Hermes skills with other users — package skills as ZIP, send via any messaging platform, or create temporary expiring download links. Peer-to-peer skil...
README (SKILL.md)

Hermes Share — مهارة مشاركة المهارات

مهارة تمكنك من مشاركة مهارات Hermes مع أي شخص آخر، مباشرة عبر أي منصة مراسلة أو عبر رابط مؤقت.

Requirements

Requirement Type Purpose
python3 Binary Run pack_skills.py for ZIP creation & README generation
zip Binary Create compressed ZIP archives (built-in on macOS/Linux)
curl Binary Upload to transfer.sh for temporary link generation
Python stdlib (zipfile, argparse, pathlib, os) Library All built-in, no pip install needed
~/.hermes/skills/ directory Path Source of skills to package

All dependencies are built-in — no pip packages, no Docker, no external services required for core functionality. curl is only needed for the temporary link delivery option.

المحفزات (Triggers)

استخدم هذه المهارة عندما يقول المستخدم:

  • "شارك مهارة X مع فلان"
  • "أرسل كل مهاراتي لصديقي"
  • "أبغى أشارك المهارات مع أحد"
  • "send/share my skills to someone"
  • أي طلب يتعلق بنقل مهارات من جهاز لآخر

الخطوات (Workflow)

المرحلة ١: تحديد المهارات المطلوبة

اسأل المستخدم (إذا ما كان محدد):

وش المهارات اللي تبغى تشاركها؟
1. مهارة وحدة (حدد الاسم)
2. مجموعة مهارات (حدد الأسماء)
3. كل المهارات اللي عندي

إذا المستخدم محدد من البداية، انتقل للمرحلة ٢ مباشرة.


المرحلة ٢: تجهيز ملفات الشرح الثنائية اللغة (Bilingual README)

⚠️ مهم: قبل حزم المهارات، اقرأ ملف SKILL.md لكل مهارة مطلوبة لتوليد شرح عربي دقيق.

٢.أ — توليد الشرح (تلقائي + يدوي)

# أولاً: شغّل السكربت لتوليد ملف الشرح الأولي (يستخرج الوصف الإنجليزي)
python3 ~/.hermes/skills/devops/hermes-share/scripts/pack_skills.py \
  --skills python-data-analysis,flutter-patterns \
  --desc-only \
  --output ~/Downloads/skills-description.txt

٢.ب — تعزيز الشرح العربي

السكربت يستخرج الوصف الإنجليزي تلقائياً. لكن للعربي:

  1. اقرأ SKILL.md لكل مهارة مطلوبة (استخدم skill_view إذا المهارة محملة)
  2. إذا المهارة فيها ar_description في الـ frontmatter → استخدمها مباشرة
  3. إذا ما فيها → اكتب شرحاً عربياً موجزاً (٢-٤ أسطر):
    • وش تسوي المهارة بالضبط
    • متى تستخدمها
    • أبرز إمكانياتها
  4. شغّل --desc-only لتوليد SKILLS_README.txt الأولي
  5. اقرأ الملف المُولَّد، وعدّل الأقسام العربية فيه
  6. اختيارياً: أضف ar_description لـ SKILL.md المهارة الأصلية عشان المرات الجاية

مرجع: references/bilingual-frontmatter.md — توثيق كامل لاتفاقية ar_description

٢.ج — حزم المهارات مع الشرح

# لمهارة واحدة (يتضمن SKILLS_README.txt تلقائياً)
python3 ~/.hermes/skills/devops/hermes-share/scripts/pack_skills.py \
  --skills python-data-analysis \
  --output ~/Downloads/hermes-skills-share.zip

# لعدة مهارات
python3 ~/.hermes/skills/devops/hermes-share/scripts/pack_skills.py \
  --skills python-data-analysis,power-bi-dax,flutter-patterns \
  --output ~/Downloads/hermes-skills-share.zip

# لكل المهارات
python3 ~/.hermes/skills/devops/hermes-share/scripts/pack_skills.py \
  --all \
  --output ~/Downloads/hermes-skills-share.zip

# إذا تبغى بدون ملف الشرح:
python3 ~/.hermes/skills/devops/hermes-share/scripts/pack_skills.py \
  --skills X \
  --no-desc \
  --output ~/Downloads/hermes-skills-share.zip

📄 كل حزمة ZIP تحتوي تلقائياً على:

  • install.sh — سكربت التثبيت التلقائي
  • SKILLS_README.txt — شرح ثنائي اللغة (عربي + إنجليزي) لكل مهارة ⭐
  • مجلدات المهارات نفسها

ملاحظة أمنية مهمة: السكربت يستبعد تلقائياً أي ملفات تحتوي على:

  • مفاتيح API (يصنفها بـ [SANITIZED])
  • توكنات
  • ملفات .env
  • مجلد memory/
  • بيانات الجلسات sessions/

المرحلة ٣: اختيار طريقة الإرسال

اسأل المستخدم عن طريقة الإرسال المفضلة:

كيف تبغى ترسل المهارات؟
1. عبر المنصة الحالية (اللي نتكلم منها دلوقتي)
2. عبر منصة ثانية (واتساب، تيليجرام، ديسكورد...)
3. رابط مؤقت (ينتهي بعد مدة تحددها)

الخيار أ: الإرسال عبر المنصة الحالية

أرفق الملف مباشرة في الرد:

MEDIA:/Users/abdurrahmanjahfali/Downloads/hermes-skills-share.zip

مع رسالة ترحيبية من قالب templates/share_message.md.

الخيار ب: الإرسال عبر منصة أخرى

إذا المستخدم يبي يرسل عبر منصة ثانية، استخدم منصات Hermes المتاحة. مثلاً للواتساب إذا كان مربوط:

أرسل الملف للشخص على المنصة المحددة مع تعليمات التثبيت

الخيار ج: رابط مؤقت (Expiring Link)

استخدم transfer.sh لإنشاء رابط مؤقت:

# رابط ينتهي بعد ٢٤ ساعة (افتراضي)
curl --upload-file ~/Downloads/hermes-skills-share.zip https://transfer.sh/hermes-skills-$(date +%Y%m%d).zip

# رابط ينتهي بعد ٣ أيام
curl -H "Max-Days: 3" --upload-file ~/Downloads/hermes-skills-share.zip https://transfer.sh/hermes-skills-$(date +%Y%m%d).zip

# رابط ينتهي بعد عدد معين من التحميلات (مثلاً ٥ تحميلات)
curl -H "Max-Downloads: 5" --upload-file ~/Downloads/hermes-skills-share.zip https://transfer.sh/hermes-skills-$(date +%Y%m%d).zip

إذا transfer.sh ما اشتغل (может يكون محظور)، استخدم البدائل:

  • file.io: curl -F "file=@~/Downloads/hermes-skills-share.zip" https://file.io
  • 0x0.st: curl -F "file=@~/Downloads/hermes-skills-share.zip" https://0x0.st

المرحلة ٤: تعليمات التثبيت للطرف الآخر

أرسل رسالة تحتوي على تعليمات التثبيت. استخدم قالب templates/share_message.md واملأ المتغيرات.

الطرف الآخر يحتاج فقط إلى:

# ١. فك الملف المضغوط
unzip hermes-skills-share.zip -d ~/Downloads/hermes-skills-temp/

# ٢. تشغيل سكربت التثبيت التلقائي
bash ~/Downloads/hermes-skills-temp/install.sh

سكربت install.sh (المتضمن تلقائياً داخل كل ZIP) يتولى:

  • نسخ المهارات إلى ~/.hermes/skills/
  • التحقق من عدم وجود تعارضات
  • إظهار ملخص بالمهارات المثبتة

تنبيهات ومحاذير

  1. 🔴 ملف .env لا يُشارك أبداً — السكربت يستبعده تلقائياً
  2. 🔴 الذاكرة الخاصة لا تُشارك — مجلد memory/ مستبعد
  3. 🟡 حجم الملف — بعض المهارات فيها ملفات كبيرة (نماذج، صور). إذا تجاوز 50MB، اسأل المستخدم قبل الإرسال
  4. 🟡 المهارات المدفوعة/الخاصة — تأكد من صلاحية مشاركة المهارة قبل إرسالها
  5. 🟢 المهارات المركّبة من ClawHub — الطرف الآخر يقدر يثبتها مباشرة من ClawHub بدل المشاركة اليدوية (أسهل)
  6. 🟡 transfer.sh — أقصى حجم 10GB، الروابط تنتهي بعد 14 يوم كحد أقصى

الملفات المساعدة

الملف الوظيفة
scripts/pack_skills.py حزم المهارات في ZIP مع تنظيف تلقائي للبيانات الحساسة
scripts/install_skills.sh سكربت التثبيت التلقائي للطرف الآخر (يُدمج داخل ZIP)
templates/share_message.md قالب رسالة المشاركة مع تعليمات التثبيت
references/bilingual-frontmatter.md اتفاقية ar_description للشروح الثنائية اللغة

مثال كامل للتنفيذ

المستخدم: "يا سليمان، أرسل مهارات python-data-analysis و flutter-patterns لصديقي على التيليجرام"

التنفيذ:

# ١. تجهيز الحزمة
python3 ~/.hermes/skills/devops/hermes-share/scripts/pack_skills.py \
  --skills python-data-analysis,flutter-patterns \
  --output ~/Downloads/hermes-skills-share.zip

# ٢. إرسال عبر المنصة
# MEDIA:/Users/abdurrahmanjahfali/Downloads/hermes-skills-share.zip
# + رسالة تعليمات التثبيت

المستخدم: "أبغى رابط مؤقت لكل مهاراتي ينتهي بعد ٤٨ ساعة"

التنفيذ:

# ١. تجهيز كل المهارات
python3 ~/.hermes/skills/devops/hermes-share/scripts/pack_skills.py \
  --all \
  --output ~/Downloads/all-hermes-skills.zip

# ٢. رفع للرابط المؤقت
curl -H "Max-Days: 2" --upload-file ~/Downloads/all-hermes-skills.zip \
  https://transfer.sh/all-hermes-skills.zip
# الناتج: https://transfer.sh/xxxxx/all-hermes-skills.zip

صيانة السكربت (Maintenance Notes)

pack_skills.py — argparse هيكلية

عند تعديل السكربت، انتبه إلى:

  • --list، --skills، --all في مجموعة mutually_exclusive_group بدون required=True — هذا يسمح بتمرير --list بدون --skills أو --all.
  • لا تضف --list خارج المجموعة الحصرية — سيسبب تعارض conflicting option string.
  • إذا أضفت flag جديد، تأكد من منطق if args.list: قبل منطق if args.all: في main().

التحقق بعد التعديل

# ١. عرض المهارات (اختبار --list)
python3 ~/.hermes/skills/devops/hermes-share/scripts/pack_skills.py --list

# ٢. حزم مهارة وحدة
python3 ~/.hermes/skills/devops/hermes-share/scripts/pack_skills.py \
  --skills hermes-share --output /tmp/test-pack.zip

# ٣. فحص محتويات ZIP
unzip -l /tmp/test-pack.zip

# ٤. تنظيف
rm /tmp/test-pack.zip

Embedded Files

Why embedded? ClawHub's publish filter only includes .md and .py files. Shell scripts and templates are embedded here so they're always accessible.

install_skills.sh

\x3Cdetails> \x3Csummary>📋 install_skills.sh — Auto-installer for recipients (click to expand)\x3C/summary>

#!/usr/bin/env bash
# ============================================================
#  Hermes Skills — Auto-Installer
#  المهارات المرسلة عبر hermes-share
# ============================================================
#  طريقة الاستخدام:
#    1. فك الملف المضغوط
#    2. شغّل: bash install.sh
# ============================================================

set -e

HERMES_SKILLS="${HERMES_HOME:-$HOME/.hermes}/skills"
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"

GREEN='\033[0;32m'
YELLOW='\033[1;33m'
CYAN='\033[0;36m'
RED='\033[0;31m'
NC='\033[0m'

echo ""
echo -e "${CYAN}🜔  Hermes Skills Installer${NC}"
echo -e "${CYAN}==========================${NC}"
echo ""

if [[ ! -d "$HERMES_SKILLS" ]]; then
    echo -e "${YELLOW}📁 Creating skills directory: $HERMES_SKILLS${NC}"
    mkdir -p "$HERMES_SKILLS"
fi

INSTALLED=0
SKIPPED=0
FAILED=0

for skill_dir in "$SCRIPT_DIR"/*/; do
    skill_name=$(basename "$skill_dir")
    [[ ! -d "$skill_dir" ]] && continue
    [[ "$skill_name" == "install.sh" ]] && continue

    if [[ ! -f "$skill_dir/SKILL.md" ]]; then
        echo -e "${YELLOW}⚠️  $skill_name — no SKILL.md, skipping...${NC}"
        SKIPPED=$((SKIPPED + 1))
        continue
    fi

    target="$HERMES_SKILLS/$skill_name"
    existing=$(find "$HERMES_SKILLS" -name "$skill_name" -type d -maxdepth 4 2>/dev/null | head -1)

    if [[ -n "$existing" ]]; then
        echo -e "${YELLOW}⏭️  $skill_name — already exists in: $(basename $(dirname $existing))/"
        echo -e "    To update: delete old skill first then reinstall${NC}"
        SKIPPED=$((SKIPPED + 1))
    else
        skill_md="$skill_dir/SKILL.md"
        category=""
        if [[ -f "$skill_md" ]]; then
            category_line=$(head -20 "$skill_md" | grep -i "category:" | head -1 || true)
            if [[ -n "$category_line" ]]; then
                category=$(echo "$category_line" | sed 's/.*category:[[:space:]]*//i' | xargs)
            fi
        fi

        if [[ -n "$category" && "$category" != "general" ]]; then
            target="$HERMES_SKILLS/$category/$skill_name"
        fi

        echo -e "📦 ${GREEN}Installing${NC} $skill_name..."
        mkdir -p "$(dirname "$target")"
        cp -r "$skill_dir" "$target"
        echo -e "   ${GREEN}✓ Done${NC}"
        INSTALLED=$((INSTALLED + 1))
    fi
done

echo ""
echo -e "${CYAN}==========================${NC}"
echo -e "${GREEN}✓ Installed: $INSTALLED skill(s)${NC}"
if [[ $SKIPPED -gt 0 ]]; then
    echo -e "${YELLOW}⏭️  Skipped: $SKIPPED (already exist)${NC}"
fi
echo ""

if [[ $INSTALLED -gt 0 ]]; then
    echo -e "${CYAN}📋 Verify:${NC}"
    echo "   hermes skills list"
    echo ""
    echo -e "${CYAN}💡 Load new skills:${NC}"
    echo "   /reset"
fi
echo ""

\x3C/details>

share_message.md

\x3Cdetails> \x3Csummary>📨 share_message.md — Message template for recipients (click to expand)\x3C/summary>

# 🜔 Hermes Skills — Skill Share

Hello! {{sender_name}} sent you {{skills_count}} Hermes skill(s) 🎉

---

## 📦 Skills Included

{{skills_list}}

---

## 🚀 Installation (2 steps)

**1. Extract the ZIP:**
```bash
unzip {{zip_filename}} -d ~/Downloads/hermes-skills-temp/

2. Run the auto-installer:

bash ~/Downloads/hermes-skills-temp/install.sh

✅ After Install

Verify:

hermes skills list

Start a fresh session:

hermes --continue
# or in-session: /reset

📝 Notes

  • Skills are copied to ~/.hermes/skills/ automatically
  • If a skill already exists, it will be skipped (not overwritten)
  • No API keys or sensitive data are included — automatically sanitized

🔗 Download Link

{{download_link}}

{{expiry_info}}


Sent via Hermes Share 🜔 — {{date}}


\x3C/details>
Capability Tags
requires-sensitive-credentials
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install hermes-share
  3. After installation, invoke the skill by name or use /hermes-share
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.1.0
Initial release: peer-to-peer skill sharing with bilingual README, ZIP packaging, temporary links, and auto-installer. Full Arabic+English support.
Metadata
Slug hermes-share
Version 1.1.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Hermes Share?

Share Hermes skills with other users — package skills as ZIP, send via any messaging platform, or create temporary expiring download links. Peer-to-peer skil... It is an AI Agent Skill for Claude Code / OpenClaw, with 15 downloads so far.

How do I install Hermes Share?

Run "/install hermes-share" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Hermes Share free?

Yes, Hermes Share is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Hermes Share support?

Hermes Share is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Hermes Share?

It is built and maintained by Jahfali-dev (@almohalhel1408); the current version is v1.1.0.

💬 Comments