Abo -30% SUB30
Eigene OpenClaw Skills erstellen: Von SKILL.md bis ClawHub
$ ./blog/guides
Anleitungen

Eigene OpenClaw Skills erstellen: Von SKILL.md bis ClawHub

ClawHosters
ClawHosters von Daniel Samer
5 Min. Lesezeit

OpenClaw Skills sind Markdown-Dateien. Keine kompilierten Binaries, keine API-Wrapper, keine Docker-Container. Ein Ordner, eine Datei namens SKILL.md, fertig. Der Agent liest deine Anweisungen zur Laufzeit und befolgt sie.

Die Syntax lernst du in fünf Minuten. Aber es gibt ein Konzept, an dem fast alle scheitern. Und genau das ist der Grund, warum selbst gebaute Skills oft nie aktiviert werden.

Was ein Skill eigentlich ist

Ein Skill liegt unter ~/.openclaw/skills/dein-skill-name/SKILL.md. Mehr nicht. YAML-Frontmatter oben für Metadaten, Markdown darunter für Anweisungen. Beim Start einer neuen Session scannt OpenClaw jeden Skill-Ordner, liest das Frontmatter und entscheidet, welche Skills relevant sind.

ClawHub (die öffentliche Registry von OpenClaw) hostet über 13.000 Community Skills, Stand März 2026. Du kannst die installieren, eigene bauen, oder beides.

Der Fehler, den die meisten Anleitungen verschweigen

Jede openclaw skill anleitung erklärt, was das description-Feld macht. Kaum eine erklärt, wie OpenClaw es tatsächlich nutzt.

Wie es der technische Guide von LumaDock beschreibt: "Die Frontmatter-Description ist kein Marketing-Text. Sie funktioniert eher wie eine Trigger-Phrase." OpenClaw liest Name und Description, um zu entscheiden, ob der vollständige Skill in den Kontext geladen wird. Erst nach diesem Match liest der Agent die Anweisungen darunter.

Das bedeutet: Deine Description sollte genau die Worte verwenden, die ein Nutzer tippen würde.

"Summarize errors from a service log" funktioniert. "Comprehensive log analysis utility" eher nicht.

Ich habe Skills gesehen, die wochenlang unbenutzt blieben, weil die Description zu abstrakt war. Schreibe sie so, als würdest du den Satz "Hey OpenClaw, kannst du..." vervollständigen.

SKILL.md Aufbau

Hier ein funktionierendes Beispiel. Ein Log-Triage-Skill mit allen nötigen Komponenten:

---
name: log-triage
description: Summarize errors from a service log in a time window.
user-invocable: true
metadata: {"clawdbot":{"emoji":"🔍","requires":{"bins":["bash","date"]}}}
---

Unter dem Frontmatter strukturierst du deine Anweisungen wie ein Runbook:

# Log triage

## What it does
Reads service logs, groups repeated errors, and returns a summary.

## Inputs needed

- Service name (required)

- Time window (default: last 1 hour)

## Workflow
1. Ask for service name and time window if not provided
2. Fetch logs via journalctl or docker logs
3. Group repeated error patterns
4. Show the exact command used for each step

## Output format
Markdown table: error pattern, count, first/last occurrence, sample line.

## Guardrails

- Never restart services or modify config files

- If logs are empty, say so and suggest what to check next

- Do not fabricate log entries

## Failure handling
If a command fails, include the command text and error output.

Die Guardrails-Section ist wichtiger, als du denkst. Ohne sie rät der Agent bei fehlenden Daten. Und Raten liefert unzuverlässige Ergebnisse.

Zwei Details zum Frontmatter verdienen besondere Aufmerksamkeit. Das Flag user-invocable: true macht deinen Skill als Slash-Command verfügbar. Und der metadata-Block muss ein einzeiliges JSON-Objekt sein. Mehrzeiliges YAML in diesem Feld verursacht stille Parse-Fehler, wie die offizielle OpenClaw-Dokumentation bestätigt. Dieser Bug hat schon viele erwischt.

Skill testen

Führe openclaw skills list --eligible aus, um zu prüfen, ob OpenClaw deinen Skill erkennt und alle Gating-Checks bestanden sind (requires.bins, OS-Einschränkungen usw.). Falls dein Skill nicht auftaucht, sagt dir dieser Befehl warum.

Wichtig zu wissen: Skills werden beim Session-Start eingefroren. Nach dem Bearbeiten von SKILL.md brauchst du eine neue Session, damit Änderungen greifen. Für Hot-Reload während der Entwicklung aktivierst du den File Watcher in der Config (skills.load.watch: true).

Auf ClawHub veröffentlichen

Vier Schritte:

  1. clawhub auth login ausführen
  2. Den Metadata-Namespace auf metadata.clawdbot setzen, nicht auf metadata.openclaw. Die offizielle Doku zeigt manchmal metadata.openclaw in Beispielen, aber der ClawHub-Validator akzeptiert nur clawdbot. Eine Community-Checklist mit 13 Punkten dokumentiert diesen Stolperstein nach sechs fehlgeschlagenen Versuchen.
  3. clawhub publish ./dein-skill-ordner ausführen
  4. Auf den VirusTotal-Scan warten (jede ClawHub-Einreichung wird seit Februar 2026 automatisch gescannt)

Beachte dabei: VirusTotal scannt ausführbare Artefakte. Es analysiert nicht die natürlichsprachlichen Anweisungen in SKILL.md auf Prompt Injection. Reviewer und Nutzer müssen den Quellcode selbst lesen.

Security Checklist

Vier Regeln, die dir Probleme ersparen:

  • Niemals API-Keys oder Tokens hardcoden. Nutze requires.env in den Metadaten und SecretRef-Provider (source: env, source: file oder source: exec), um Credentials sicher einzubinden.

  • Füge set -euo pipefail in jedes Shell-Skript ein, das dein Skill referenziert. Nach der ClawHavoc-Kampagne, die ClawHub mit über 1.000 bösartigen Skills überschwemmt hat, gilt fehlendes Script-Hardening als Warnsignal.

  • Deklariere minimale Berechtigungen. Skills mit zu vielen Rechten werden von Reviewern markiert und von Nutzern gemeldet (drei Meldungen verstecken einen Skill automatisch).

  • Dokumentiere jeden externen Endpoint, den dein Skill kontaktiert. Nutzer, die nicht nachvollziehen können, wohin Daten fließen, installieren deinen Skill nicht.

Eigene openclaw custom skills auf ClawHosters nutzen

Wenn du eine ClawHosters Managed Instance nutzt, kannst du eigene Skills direkt über das Dashboard hochladen. Kein CLI-Setup nötig. Deine Instance erkennt sie bei der nächsten Session. Die komplette Anleitung findest du in der Skills & Plugins Dokumentation.

Häufig gestellte Fragen

Auf einer ClawHosters Managed Instance lädst du SKILL.md über das Web-Dashboard hoch. Die Instance erkennt neue Skills automatisch. Bei Self-Hosted-Setups legst du die Datei unter `~/.openclaw/skills/dein-skill-name/` ab und startest eine neue Session.

Die häufigste Ursache ist ein vages `description`-Feld. OpenClaw gleicht Skills anhand von Name und Description ab, bevor die vollständigen Anweisungen geladen werden. Schreibe deine Description mit den exakten Worten, die Nutzer tippen würden. Prüfe auch `openclaw skills list --eligible` auf Gating-Fehler.

ClawHub scannt seit Februar 2026 jede Einreichung mit VirusTotal. Der Scan deckt aber nur ausführbare Dateien ab, nicht die SKILL.md-Anweisungen selbst. Lies den Security Hardening Guide für einen vollständigen Überblick, was du vor der Installation von Community Skills prüfen solltest.

Lokal funktionieren beide Namespaces. Für ClawHub-Publishing musst du `metadata.clawdbot` verwenden. Der ClawHub-Validator parst nur diesen Namespace. Skills mit `metadata.openclaw` scheitern still an der Validierung.
*Zuletzt aktualisiert: März 2026*

Quellen

  1. 1 über 13.000 Community Skills
  2. 2 technische Guide von LumaDock
  3. 3 offizielle OpenClaw-Dokumentation
  4. 4 Community-Checklist mit 13 Punkten
  5. 5 SecretRef-Provider
  6. 6 ClawHosters Managed Instance
  7. 7 Skills & Plugins Dokumentation
  8. 8 ClawHosters Managed Instance
  9. 9 Security Hardening Guide