Loslegen
CLI
CLI
CLI-Paket: clawhub, Binärdatei: clawhub.
Installieren Sie es global mit npm oder pnpm:
npm i -g clawhub# oderpnpm add -g clawhubÜberprüfen Sie es anschließend:
clawhub --helpclawhub loginclawhub whoamiGlobale Flags
--workdir <dir>: Arbeitsverzeichnis (Standard: cwd; greift auf den Clawdbot-Workspace zurück, falls konfiguriert)--dir <dir>: Installationsverzeichnis unter dem Arbeitsverzeichnis (Standard:skills)--site <url>: Basis-URL für die Browser-Anmeldung (Standard:https://clawhub.ai)--registry <url>: API-Basis-URL (Standard: automatisch ermittelt, andernfallshttps://clawhub.ai)--no-input: Eingabeaufforderungen deaktivieren
Entsprechende Umgebungsvariablen:
CLAWHUB_SITE(veraltet:CLAWDHUB_SITE)CLAWHUB_REGISTRY(veraltet:CLAWDHUB_REGISTRY)CLAWHUB_WORKDIR(veraltet:CLAWDHUB_WORKDIR)
HTTP-Proxy
Die CLI berücksichtigt die standardmäßigen HTTP-Proxy-Umgebungsvariablen für Systeme hinter Unternehmens-Proxys oder in eingeschränkten Netzwerken:
HTTPS_PROXY/https_proxyHTTP_PROXY/http_proxyNO_PROXY/no_proxy
Wenn eine dieser Variablen festgelegt ist, leitet die CLI ausgehende Anfragen über
den angegebenen Proxy. HTTPS_PROXY wird für HTTPS-Anfragen verwendet, HTTP_PROXY
für unverschlüsseltes HTTP. NO_PROXY / no_proxy wird berücksichtigt, um den Proxy für
bestimmte Hosts oder Domains zu umgehen.
Dies ist auf Systemen erforderlich, auf denen direkte ausgehende Verbindungen blockiert sind (z. B. Docker-Container, Hetzner-VPS mit ausschließlich über Proxy verfügbarem Internet, Unternehmens-Firewalls).
Beispiel:
export HTTPS_PROXY=http://proxy.example.com:3128export NO_PROXY=localhost,127.0.0.1clawhub search "my query"Wenn keine Proxy-Variable festgelegt ist, bleibt das Verhalten unverändert (direkte Verbindungen).
Konfigurationsdatei
Speichert Ihr API-Token und die zwischengespeicherte Registry-URL.
- macOS:
~/Library/Application Support/clawhub/config.json - Linux/XDG:
$XDG_CONFIG_HOME/clawhub/config.jsonoder~/.config/clawhub/config.json - Windows:
%APPDATA%\\clawhub\\config.json - Veralteter Rückgriff: Wenn
clawhub/config.jsonnoch nicht existiert, aberclawdhub/config.jsonvorhanden ist, verwendet die CLI den veralteten Pfad erneut - Überschreibung:
CLAWHUB_CONFIG_PATH(veraltet:CLAWDHUB_CONFIG_PATH)
Befehle
login / auth login
- Standard: Öffnet den Browser unter
<site>/cli/authund schließt den Vorgang über einen Loopback-Callback ab. - Ohne grafische Oberfläche:
clawhub login --token clh_... - Interaktiv auf Remote-Systemen/ohne grafische Oberfläche:
clawhub login --devicegibt einen Code aus und wartet, während Sie ihn unter<site>/cli/deviceautorisieren.
whoami
- Überprüft das gespeicherte Token über
/api/v1/whoami.
token
- Gibt das gespeicherte API-Token auf stdout aus.
- Nützlich, um ein lokales Anmelde-Token über eine Pipe an Befehle zum Einrichten von CI-Secrets zu übergeben.
star <skill> / unstar <skill>
- Fügt Ihren Lesezeichen ein Skill hinzu oder entfernt ihn daraus. Die Befehlsnamen bleiben aus Kompatibilitätsgründen
starundunstar. - Ruft
POST /api/v1/stars/<slug>undDELETE /api/v1/stars/<slug>auf. --yesüberspringt die Bestätigung.
search <query...>
- Ruft
/api/v1/search?q=...auf. - Die Ausgabe enthält den Skill-Slug, den Handle des Eigentümers, den Anzeigenamen und die Relevanzbewertung.
- Die Suche bevorzugt exakte Token-Übereinstimmungen bei Slug und Name vor der Downloadpopularität. Ein eigenständiges Slug-Token wie
mapstimmt stärker mitpersonal-mapüberein als mit der Teilzeichenfolge inamap. - Die Popularität dient nur als gering gewichtete Grundlage für die Rangfolge und garantiert keine Spitzenplatzierung.
- Wenn ein Skill erscheinen sollte, aber nicht angezeigt wird, führen Sie im angemeldeten Zustand
clawhub inspect @owner/slugaus, um für Eigentümer sichtbare Moderationsdiagnosen zu prüfen, bevor Sie Metadaten umbenennen.
explore
- Listet die neuesten Skills über
/api/v1/skills?limit=...&sort=createdAtauf (absteigend nachcreatedAtsortiert). - Flags:
--limit <n>(1-200, Standard: 25)--sort newest|updated|rating|downloads|trending(Standard: neueste). Veraltete Aliasse für die Installationssortierung funktionieren aus Kompatibilitätsgründen weiterhin.--json(maschinenlesbare Ausgabe)
- Ausgabe:
<slug> v<version> <age> <summary>(Zusammenfassung auf 50 Zeichen gekürzt).
inspect @owner/slug
- Ruft Skill-Metadaten und Versionsdateien ab, ohne sie zu installieren.
--version <version>: Eine bestimmte Version untersuchen (Standard: neueste).--tag <tag>: Eine mit einem Tag versehene Version untersuchen (z. B.latest).--versions: Versionsverlauf auflisten (erste Seite).--limit <n>: Maximale Anzahl aufzulistender Versionen (1-200).--files: Dateien der ausgewählten Version auflisten.--file <path>: Unverarbeitete Dateibytes abrufen (Limit: 10 MB).--json: Maschinenlesbare Ausgabe;--fileenthält die exakten Bytes als Base64 sowie, sofern verfügbar, als UTF-8-Text.
install @owner/slug
- Ermittelt die neueste Version für den angegebenen Eigentümer und Skill.
- Lädt das ZIP-Archiv über
/api/v1/downloadherunter. - Extrahiert es nach
<workdir>/<dir>/<slug>. - Verweigert das Überschreiben fixierter Skills; führen Sie zuerst
clawhub unpin <skill>aus. - Schreibt:
<workdir>/.clawhub/lock.json(veraltet:.clawdhub)<skill>/.clawhub/origin.json(veraltet:.clawdhub)
uninstall <skill>
- Entfernt
<workdir>/<dir>/<slug>und löscht den Lockfile-Eintrag. - Sendet im angemeldeten Zustand nach bestem Bemühen Telemetriedaten, damit aktuelle Installationszahlen deaktiviert werden können.
- Interaktiv: Fragt nach einer Bestätigung.
- Nicht interaktiv (
--no-input): Erfordert--yes.
list
- Liest
<workdir>/.clawhub/lock.json(veraltet:.clawdhub). - Zeigt
pinnedneben Skills an, die mitclawhub pinfixiert wurden, einschließlich des optionalen Grundes.
pin <skill>
- Markiert einen installierten Skill im Lockfile als fixiert.
--reason <text>erfasst, warum der Skill fixiert ist.- Fixierte Skills werden von
update --allübersprungen und von einem direktenupdate <skill>abgelehnt. - Fixierte Skills lehnen außerdem
install --forceab, damit die lokalen Bytes nicht versehentlich ersetzt werden können.
unpin <skill>
- Entfernt die Lockfile-Fixierung eines installierten Skills, sodass er durch künftige Aktualisierungen geändert werden kann.
update [@owner/slug] / update --all
- Berechnet den Fingerabdruck aus lokalen Dateien.
- Wenn der Fingerabdruck mit einer bekannten Version übereinstimmt: keine Eingabeaufforderung.
- Wenn der Fingerabdruck nicht übereinstimmt:
- verweigert den Vorgang standardmäßig
- überschreibt mit
--force(oder fragt bei interaktiver Ausführung nach)
- Fixierte Skills werden von
--forceniemals aktualisiert. update <skill>schlägt bei fixierten Skills sofort fehl und weist Sie an, zuerstclawhub unpin <skill>auszuführen.update --allüberspringt fixierte Slugs und gibt eine Zusammenfassung der weiterhin fixierten Elemente aus.
skill publish <path>
- Vergleicht den lokalen Bundle-Fingerabdruck mit ClawHub und wird erfolgreich beendet, wenn der Inhalt bereits veröffentlicht ist.
- Neue Skills verwenden standardmäßig
1.0.0; geänderte Skills verwenden standardmäßig die nächste Patch- Version. --version <version>wählt ausdrücklich eine Version aus und veröffentlicht sie auch dann, wenn der Inhalt mit einer vorhandenen Version übereinstimmt.--dry-runermittelt die Veröffentlichung ohne Upload;--jsongibt ein maschinenlesbares Ergebnis aus.--owner <handle>veröffentlicht unter dem Handle einer Organisation oder eines Benutzerkontos, wenn der Akteur über Veröffentlichungszugriff verfügt.--migrate-ownerverschiebt einen vorhandenen Skill nach--owner, während eine neue Version veröffentlicht wird. Erfordert Administrator- oder Eigentümerzugriff bei beiden Herausgebern.- Das Eigentümer- und Prüfverhalten wird in
docs/publishing.mderläutert. - Die Veröffentlichung eines Skills bedeutet, dass er auf ClawHub unter
MIT-0freigegeben wird. - Veröffentlichte Skills dürfen ohne Namensnennung kostenlos verwendet, verändert und weitergegeben werden.
- ClawHub unterstützt weder kostenpflichtige Skills noch Preise pro Skill.
- Veralteter Alias:
publish <path>.
clawhub skill publish ./my-skill --dry-runclawhub skill publish ./my-skillclawhub skill publish ./my-skill --version 2.0.0GitHub Actions
Der wiederverwendbare
skill-publish.yml-Workflow
von ClawHub ruft skill publish für einen skill_path oder für jeden direkt unter
root liegenden Skill-Ordner auf (Standard: skills). Er überspringt unveränderte Skills und verwendet
dasselbe automatische Verhalten für Patch-Versionen.
Legen Sie dry_run: true fest, um eine Vorschau ohne Token anzuzeigen. Tatsächliche Veröffentlichungen erfordern das
Secret clawhub_token.
sync
- Durchsucht das aktuelle Arbeitsverzeichnis, das konfigurierte Skills-Verzeichnis und alle
--root <dir>-Ordner nach lokalen Skill-Ordnern, dieSKILL.mdoderskill.mdenthalten. - Vergleicht den Fingerabdruck jedes lokalen Skills mit ClawHub und veröffentlicht nur neue oder geänderte Skills.
- Neue Skills werden als
1.0.0veröffentlicht; geänderte Skills werden standardmäßig als nächste Patch-Version veröffentlicht. Verwenden Sie--bump minor|majorfür Aktualisierungsbatches, die einen größeren SemVer-Schritt vollziehen sollen. --dry-runzeigt den Veröffentlichungsplan ohne Upload an;--jsongibt einen maschinenlesbaren Plan aus.--allveröffentlicht jeden neuen oder geänderten Skill ohne Rückfrage. Ohne--allkönnen Sie in interaktiven Terminals die zu veröffentlichenden Skills auswählen.--owner <handle>veröffentlicht unter dem Handle einer Organisation oder eines Benutzerkontos, wenn der Akteur über Veröffentlichungszugriff verfügt.syncdient ausschließlich der einseitigen Veröffentlichung. Es installiert, aktualisiert oder lädt nichts herunter und meldet keine Installations- oder Downloadtelemetrie.
clawhub sync --all --dry-runclawhub sync --allclawhub sync --root ./skills --owner openclaw --bump minorscan --slug <slug>
- Erfordert
clawhub login. - Führt ClawHub ClawScan über
POST /api/v1/skills/-/scanaus und fragt anschließend den Status ab, bis der Scan einen Endzustand erreicht. - Scans werden asynchron ausgeführt und können einige Zeit in Anspruch nehmen. Während ein Scan in der Warteschlange steht, zeigt der Terminal-Spinner seine aktuelle priorisierte Position und die Anzahl der vorausliegenden Scans an.
- Scans veröffentlichter Skills erfordern Eigentümerzugriff oder Verwaltungszugriff beim Herausgeber. Moderatoren und Administratoren können dasselbe Backend über
clawhub-adminverwenden. --updateist nur zusammen mit--sluggültig; erfolgreiche Ergebnisse veröffentlichter Scans werden damit in die ausgewählte Version zurückgeschrieben.--output <file.zip>lädt das vollständige Berichtsarchiv mitmanifest.json,clawscan.json,skillspector.json,static-analysis.json,virustotal.jsonundREADME.mdherunter.--jsongibt die vollständige Polling-Antwort für Automatisierungszwecke aus.- Scans lokaler Pfade werden nicht mehr unterstützt. Laden Sie eine neue Version hoch und verwenden Sie anschließend
scan download, um die gespeicherten Scanergebnisse für diese eingereichte Version abzurufen.
clawhub scan --slug gifgrepclawhub scan --slug gifgrep --version 1.2.3clawhub scan --slug gifgrep --update --output report.zipscan download <name>
- Erfordert
clawhub login. - Lädt die gespeicherte ZIP-Datei des Scanberichts für eine eingereichte Skill- oder Plugin-Version herunter, einschließlich Versionen, die durch ClawHub-Sicherheitsprüfungen blockiert oder ausgeblendet wurden.
- Skill-Downloads verwenden den Skill-Slug und standardmäßig
--kind skill. - Plugin-Downloads verwenden den Paketnamen und erfordern
--kind plugin. --versionist erforderlich, damit Autoren genau die eingereichte Version prüfen, die ClawHub blockiert hat.--output <file.zip>wählt den Zielpfad aus.
clawhub scan download gifgrep --version 1.2.3clawhub scan download @scope/demo --version 2.0.0 --kind plugin --output report.zipGitHub Actions
ClawHub stellt unter
/.github/workflows/skill-publish.yml
einen offiziellen wiederverwendbaren Workflow für Skill-Repositories und Katalog-Repositories bereit.
Typische Katalogkonfiguration:
name: Skill Publish on: pull_request: workflow_dispatch: jobs: dry-run: if: github.event_name == 'pull_request' uses: openclaw/clawhub/.github/workflows/skill-publish.yml@v1 with: owner: nvidia dry_run: true publish: if: github.event_name == 'workflow_dispatch' uses: openclaw/clawhub/.github/workflows/skill-publish.yml@v1 with: owner: nvidia dry_run: false secrets: clawhub_token: ${{ secrets.CLAWHUB_TOKEN }}Hinweise:
rootverwendet für Katalog-Repositories standardmäßigskills.- Übergeben Sie
skill_path: skills/review-helper, um einen einzelnen Skill-Ordner zu verarbeiten. ownerentspricht dem CLI-Flag--owner; lassen Sie es weg, um als authentifizierter Benutzer zu veröffentlichen.- Die Veröffentlichung von V1-Skills verwendet
clawhub_token; vertrauenswürdige Veröffentlichung über GitHub OIDC ist derzeit nur für Pakete verfügbar.
delete <skill>
- Ohne
--versionwird ein Skill vorläufig gelöscht (Eigentümer, Moderator oder Administrator). - Ruft
DELETE /api/v1/skills/{slug}auf. - Vom Eigentümer veranlasste vorläufige Löschungen reservieren den Slug für 30 Tage; der Befehl gibt den Ablaufzeitpunkt aus.
--version <version>zieht eine eigene, nicht neueste Version über eine nach dem Fail-Closed-Prinzip arbeitende, versionsspezifische Route zurück. Die Versionsnummer bleibt reserviert und kann nicht mit anderen Inhalten erneut veröffentlicht werden. Veröffentlichen Sie einen Ersatz, bevor Sie die derzeit neueste Version löschen. Das Plattformpersonal umgeht bei diesem ausschließlich versionsbezogenen Ablauf die Eigentümerschaft nicht.--reason <text>zeichnet eine Moderationsnotiz zur vorläufigen Löschung des gesamten Skills und im Auditprotokoll auf.--note <text>ist ein Alias für--reason.--yesüberspringt die Bestätigung.
undelete <skill>
- Stellt einen ausgeblendeten Skill wieder her (Eigentümer, Moderator oder Administrator).
- Ruft
POST /api/v1/skills/{slug}/undeleteauf. --version <version>stellt nur genau das beibehaltene Artefakt wieder her, das zuvor von demselben Eigentümer-Akteur zurückgezogen wurde. Die wiederhergestellte Version wird dadurch weder zur neuesten Version noch werden entfernte Tags neu erstellt.- Die Versionswiederherstellung ruft
POST /api/v1/skills/{slug}/versions/{version}/restoreauf. --reason <text>zeichnet eine Moderationsnotiz zum Skill und im Auditprotokoll auf.--note <text>ist ein Alias für--reason.--yesüberspringt die Bestätigung.
hide <skill>
- Blendet einen Skill aus (Eigentümer, Moderator oder Administrator).
- Alias für
delete.
unhide <skill>
- Blendet einen Skill wieder ein (Eigentümer, Moderator oder Administrator).
- Alias für
undelete.
skill rename <skill> <new-name>
- Benennt einen eigenen Skill um und behält den vorherigen Slug als Weiterleitungsalias bei.
- Ruft
POST /api/v1/skills/{slug}/renameauf. --yesüberspringt die Bestätigung.
skill merge <source> <target>
- Führt einen eigenen Skill mit einem anderen eigenen Skill zusammen.
- Der Quell-Slug wird nicht mehr öffentlich aufgeführt und wird zu einem Weiterleitungsalias auf das Ziel.
- Ruft
POST /api/v1/skills/{sourceSlug}/mergeauf. --yesüberspringt die Bestätigung.
transfer
- Workflow zur Übertragung der Eigentümerschaft.
- Übertragungen an Benutzer-Handles erstellen eine ausstehende Anfrage, die der Empfänger annimmt.
- Übertragungen an Organisations-/Publisher-Handles werden nur dann sofort wirksam, wenn der Akteur sowohl auf den aktuellen Eigentümer als auch auf den Ziel-Publisher Administratorzugriff hat.
- Unterbefehle:
transfer request <skill> <handle> [--message "..."] [--yes]transfer list [--outgoing]transfer accept <skill> [--yes]transfer reject <skill> [--yes]transfer cancel <skill> [--yes]
- Endpunkte:
POST /api/v1/skills/{slug}/transferPOST /api/v1/skills/{slug}/transfer/acceptPOST /api/v1/skills/{slug}/transfer/rejectPOST /api/v1/skills/{slug}/transfer/cancelGET /api/v1/transfers/incomingGET /api/v1/transfers/outgoing
package explore [query...]
- Durchsucht den einheitlichen Paketkatalog über
GET /api/v1/packagesundGET /api/v1/packages/searchoder zeigt ihn an. - Verwenden Sie dies für Plugins und andere Einträge aus Paketfamilien;
searchauf oberster Ebene bleibt die Suchoberfläche für Skills. - Flags:
--family skill|code-plugin|bundle-plugin--official--executes-code--target <target>,--os <os>,--arch <arch>,--libc <libc>--requires-browser,--requires-desktop,--requires-native-deps--requires-external-service,--external-service <name>--binary <name>,--os-permission <name>--artifact-kind legacy-zip|npm-pack--npm-mirror--limit <n>(1-100, Standardwert: 25)--json
Beispiele:
clawhub package explore --family code-pluginclawhub package explore --family code-plugin --os darwin --requires-desktopclawhub package explore --family code-plugin --artifact-kind npm-packclawhub package explore --npm-mirrorclawhub package explore episodic-claw --family code-pluginpackage inspect <name>
- Ruft Paketmetadaten ab, ohne das Paket zu installieren.
- Verwenden Sie dies für Plugin-Metadaten, Kompatibilität, Verifizierung, Quelle sowie die Prüfung von Versionen und Dateien.
--version <version>: prüft eine bestimmte Version (Standardwert: neueste).--tag <tag>: prüft eine mit einem Tag versehene Version (z. B.latest).--versions: listet den Versionsverlauf auf (erste Seite).--limit <n>: maximale Anzahl aufzulistender Versionen (1-100).--files: listet die Dateien der ausgewählten Version auf.--file <path>: ruft eine begrenzte UTF-8-Textvorschau ab (Limit: 200KB).--json: maschinenlesbare Ausgabe.
package download <name>
- Löst eine Paketversion über
GET /api/v1/packages/{name}/versions/{version}/artifactauf. - Lädt das Artefakt von
downloadUrldes Resolvers herunter. - Verifiziert ClawHub SHA-256 für alle Artefakte.
- Bei ClawPack-npm-pack-Artefakten werden zusätzlich die npm-
sha512-Integrität, die npm-Prüfsumme und Name/Version auspackage.jsondes Tarballs verifiziert. - Ältere ZIP-Versionen werden über die ältere ZIP-Route heruntergeladen.
- Flags:
--version <version>: lädt eine bestimmte Version herunter.--tag <tag>: lädt eine mit einem Tag versehene Version herunter (Standardwert:latest).-o, --output <path>: Ausgabedatei oder -verzeichnis.--force: überschreibt eine vorhandene Ausgabedatei.--json: maschinenlesbare Ausgabe.
Beispiele:
clawhub package download @openclaw/example-plugin --tag latestclawhub package download @openclaw/example-plugin --version 1.2.3 -o artifacts/package verify <file>
- Berechnet ClawHub SHA-256, die npm-
sha512-Integrität und die npm-Prüfsumme für ein lokales Artefakt. - Mit
--packagewerden die erwarteten Metadaten von ClawHub aufgelöst und die lokale Datei mit den veröffentlichten Artefaktmetadaten verglichen. - Mit direkten Digest-Flags erfolgt die Verifizierung ohne Netzwerksuche.
- Flags:
--package <name>: Paketname zum Auflösen der erwarteten Artefaktmetadaten.--version <version>oder--tag <tag>: erwartete Paketversion.--sha256 <hex>: erwarteter ClawHub SHA-256.--npm-integrity <sri>: erwartete npm-Integrität.--npm-shasum <sha1>: erwartete npm-Prüfsumme.--json: maschinenlesbare Ausgabe.
Beispiele:
clawhub package verify ./example-plugin-1.2.3.tgz --package @openclaw/example-plugin --version 1.2.3clawhub package verify ./example-plugin-1.2.3.tgz --sha256 <hex>package validate <source>
- Führt den in der ClawHub-CLI enthaltenen Plugin Inspector für einen lokalen Plugin-Paketordner aus.
- Verwendet standardmäßig eine Offline-/statische Validierung, ohne einen lokalen OpenClaw-Checkout zu suchen oder zu importieren.
- Schwerwiegende Kompatibilitätsfehler führen zu einem Exit-Code ungleich null. Befunde, die nur Warnungen darstellen, werden ausgegeben, führen jedoch zum Exit-Code null.
- Flags:
--out <dir>: schreibt Plugin-Inspector-Berichte in dieses Verzeichnis.--openclaw <path>: prüft anhand eines explizit angegebenen lokalen OpenClaw-Checkouts.--runtime: aktiviert die Laufzeiterfassung; importiert Plugin-Code.--allow-execute: erlaubt die Laufzeiterfassung in einem isolierten Arbeitsbereich.--no-mock-sdk: deaktiviert das simulierte OpenClaw SDK während der Laufzeiterfassung.--json: maschinenlesbare Ausgabe.
Beispiel:
clawhub package validate ./example-pluginWenn die Validierung einen Befund zum Paket, Manifest, SDK-Import oder Artefakt meldet, lesen Sie Korrekturen für die Plugin-Validierung und führen Sie den Befehl anschließend erneut aus.
package delete <name>
- Ohne
--versionwerden ein Paket und alle Releases vorläufig gelöscht. --version <version>zieht ein eigenes, nicht neuestes Release über eine nach dem Fail-Closed-Prinzip arbeitende, versionsspezifische Route zurück. Die Versionsnummer bleibt reserviert und kann nicht mit anderen Inhalten erneut veröffentlicht werden. Veröffentlichen Sie einen Ersatz, bevor Sie das derzeit neueste Release löschen. Dieser ausschließlich versionsbezogene Ablauf erfordert den Paketeigentümer oder einen Administrator des Organisations-Publishers; das Plattformpersonal umgeht die Paketeigentümerschaft nicht.- Die vorläufige Löschung des gesamten Pakets erfordert den Paketeigentümer, einen Eigentümer/Administrator des Organisations-Publishers, einen Plattformmoderator oder Plattformadministrator.
- Flags:
--version <version>: zieht eine nicht neueste Version zurück.--yes: überspringt die Bestätigung.--json: maschinenlesbare Ausgabe.
Beispiel:
clawhub package delete @openclaw/example-plugin --yesclawhub package delete @openclaw/example-plugin --version 1.2.3 --yespackage undelete <name>
- Stellt ein vorläufig gelöschtes Paket und dessen Releases wieder her.
- Erfordert den Paketeigentümer, einen Eigentümer/Administrator des Organisations-Publishers, einen Plattformmoderator oder Plattformadministrator.
- Ruft
POST /api/v1/packages/{name}/undeleteauf. --version <version>stellt nur genau das beibehaltene Release wieder her, das zuvor von demselben Eigentümer-Akteur zurückgezogen wurde. Das Release wird dadurch weder zum neuesten Release noch werden entfernte Paket-Tags/Dist-Tags neu erstellt.- Die Versionswiederherstellung ruft
POST /api/v1/packages/{name}/versions/{version}/restoreauf. - Flags:
--version <version>: stellt ein vom Eigentümer zurückgezogenes Release wieder her.--yes: überspringt die Bestätigung.--json: maschinenlesbare Ausgabe.
Beispiel:
clawhub package undelete @openclaw/example-plugin --yespackage transfer <name>
- Überträgt ein Paket an einen anderen Publisher.
- Erfordert Administratorzugriff sowohl auf den aktuellen Paketeigentümer als auch auf den Ziel- Publisher, sofern die Übertragung nicht durch einen Plattformadministrator erfolgt.
- Paketnamen mit Gültigkeitsbereich müssen an den Eigentümer des entsprechenden Gültigkeitsbereichs übertragen werden.
- Ruft
POST /api/v1/packages/{name}/transferauf. - Flags:
--to <owner>: Handle des Ziel-Publishers.--reason <text>: optionaler Auditgrund.--json: maschinenlesbare Ausgabe.
Beispiel:
clawhub package transfer @openclaw/example-plugin --to openclawpackage report
- Authentifizierter Befehl zum Melden eines Pakets an Moderatoren.
- Ruft
POST /api/v1/packages/{name}/reportauf. - Meldungen gelten auf Paketebene, können optional mit einer Version verknüpft werden und sind für Moderatoren zur Prüfung sichtbar.
- Meldungen blenden Pakete nicht automatisch aus und blockieren selbst keine Downloads.
- Flags:
--version <version>: optionale Paketversion, die der Meldung zugeordnet wird.--reason <text>: erforderlicher Meldegrund.--json: maschinenlesbare Ausgabe.
Beispiel:
clawhub package report @openclaw/example-plugin --version 1.2.3 --reason "verdächtige native Nutzlast"package moderation-status
- Befehl für Eigentümer zum Prüfen der Sichtbarkeit eines Pakets für die Moderation.
- Ruft
GET /api/v1/packages/{name}/moderationauf. - Zeigt den aktuellen Scanstatus des Pakets, die Anzahl offener Meldungen, den manuellen Moderationsstatus der neuesten Version, den Download-Sperrstatus und die Moderationsgründe.
- Flags:
--json: maschinenlesbare Ausgabe.
Beispiel:
clawhub package moderation-status @openclaw/example-pluginpackage readiness <name>
- Prüft, ob ein Paket für die zukünftige Verwendung durch OpenClaw bereit ist.
- Ruft
GET /api/v1/packages/{name}/readinessauf. - Meldet Hindernisse hinsichtlich offiziellem Status, ClawPack-Verfügbarkeit, Artefakt-Digest, Quellherkunft, OpenClaw-Kompatibilität, Host-Zielen, Umgebungsmetadaten und Scanstatus.
- Flags:
--json: maschinenlesbare Ausgabe.
Beispiel:
clawhub package readiness @openclaw/example-pluginpackage migration-status <name>
- Zeigt den betreiberorientierten Migrationsstatus für ein Paket, das möglicherweise ein gebündeltes OpenClaw-Plugin ersetzt.
- Ruft denselben berechneten Bereitschaftsendpunkt wie
package readinessauf, gibt jedoch migrationsbezogenen Status, neueste Version, Status als offizielles Paket, Prüfungen und Hindernisse aus. - Flags:
--json: maschinenlesbare Ausgabe.
Beispiel:
clawhub package migration-status @openclaw/example-pluginpublisher create <handle>
- Erstellt einen Org-Publisher, dessen Eigentümer der authentifizierte Benutzer ist.
- Das Handle wird in Kleinbuchstaben normalisiert und kann mit oder ohne
@übergeben werden. - Neu erstellte Org-Publisher sind standardmäßig weder vertrauenswürdig noch offiziell.
- Schlägt fehl, wenn das Handle bereits von einem vorhandenen Publisher oder Benutzer beziehungsweise einer reservierten Route verwendet wird.
clawhub publisher create opik --display-name "Opik"package publish <source>
- Veröffentlicht über
POST /api/v1/packagesein Code-Plugin oder Bundle-Plugin. <source>akzeptiert:- Lokalen Ordnerpfad:
./my-plugin - Lokalen ClawPack-npm-pack-Tarball:
./my-plugin-1.2.3.tgz - GitHub-Repository:
owner/repooderowner/repo@ref - GitHub-URL:
https://github.com/owner/repo
- Lokalen Ordnerpfad:
- Metadaten werden automatisch aus
package.json,openclaw.plugin.jsonund echten OpenClaw-Bundle-Markierungen wie.codex-plugin/plugin.json,.claude-plugin/plugin.jsonund.cursor-plugin/plugin.jsonerkannt. .tgz-Quellen werden als ClawPack behandelt. Die CLI lädt exakt die npm-pack- Bytes hoch und verwendet den extrahierten Inhalt vonpackage/nur zur Validierung und zum Vorbelegen der Metadaten.- Ordner mit Code-Plugins werden vor dem Upload in einen ClawPack-npm-Tarball gepackt, damit OpenClaw-Installationen das exakte Artefakt verifizieren können. Ordner mit Bundle-Plugins verwenden weiterhin den Veröffentlichungspfad für extrahierte Dateien.
- Bei GitHub-Quellen wird die Quellenangabe automatisch aus dem Repository, dem aufgelösten Commit, der Referenz und dem Unterpfad ausgefüllt.
- Bei lokalen Ordnern wird die Quellenangabe automatisch aus dem lokalen Git erkannt, wenn das Origin-Remote auf GitHub verweist.
- Externe Code-Plugins müssen
openclaw.compat.pluginApiundopenclaw.build.openclawVersionausdrücklich deklarieren.package.json.versionauf oberster Ebene wird nicht als Fallback für die Veröffentlichungsvalidierung verwendet. --dry-runzeigt eine Vorschau der aufgelösten Veröffentlichungsnutzlast an, ohne sie hochzuladen.--jsonerzeugt eine maschinenlesbare Ausgabe für CI.--owner <handle>veröffentlicht unter dem Handle eines Benutzer- oder Org-Publishers, wenn der Akteur über Publisherzugriff verfügt.- Paketnamen mit Gültigkeitsbereich müssen mit dem ausgewählten Eigentümer übereinstimmen. Siehe
docs/publishing.md. - Vorhandene Flags (
--family,--name,--version,--source-repo,--source-commit,--source-ref,--source-path) funktionieren weiterhin als Überschreibungen. - Private GitHub-Repositorys erfordern
GITHUB_TOKEN.
clawhub package publish ./plugin.tgz --owner openclawEmpfohlener lokaler Ablauf
Verwenden Sie zuerst --dry-run, damit Sie die aufgelösten Paketmetadaten und
die Quellenangabe prüfen können, bevor Sie eine Live-Version erstellen:
npm packclawhub package publish ./my-plugin-1.2.3.tgz --family code-plugin --dry-runclawhub package publish ./my-plugin-1.2.3.tgz --family code-pluginAblauf für lokale Ordner
Bei Code-Plugins erstellt die Veröffentlichung aus einem Ordner ein ClawPack-Artefakt aus dem Paketordner und lädt es hoch:
clawhub package publish ./my-plugin --family code-plugin --dry-runclawhub package publish ./my-plugin --family code-pluginMinimales package.json für --family code-plugin
Externe Code-Plugins benötigen eine kleine Menge an OpenClaw-Metadaten in
package.json. Dieses minimale Manifest reicht für eine erfolgreiche Veröffentlichung aus:
{ "name": "@myorg/openclaw-my-plugin", "version": "1.0.0", "type": "module", "openclaw": { "extensions": ["./index.ts"], "compat": { "pluginApi": ">=2026.3.24-beta.2" }, "build": { "openclawVersion": "2026.3.24-beta.2" } }}Erforderliche Felder:
openclaw.compat.pluginApiopenclaw.build.openclawVersion
Hinweise:
package.json.versionist die Veröffentlichungsversion Ihres Pakets, wird jedoch nicht als Fallback für die OpenClaw-Kompatibilitäts-/Build-Validierung verwendet.openclaw.hostTargetsundopenclaw.environmentsind optionale Metadaten. ClawHub kann sie anzeigen, wenn sie vorhanden sind, sie sind jedoch für die Veröffentlichung nicht erforderlich.openclaw.compat.minGatewayVersionundopenclaw.build.pluginSdkVersionsind optionale Ergänzungen, wenn Sie detailliertere Kompatibilitätsmetadaten veröffentlichen möchten.- Wenn Sie eine ältere Version der
clawhub-CLI verwenden, führen Sie vor der Veröffentlichung ein Upgrade durch, damit die lokalen Vorabprüfungen vor dem Upload ausgeführt werden. - Wenn die Validierung einen Behebungscode meldet, lesen Sie Behebungen für die Plugin-Validierung.
GitHub Actions
ClawHub stellt außerdem unter
/.github/workflows/package-publish.yml
einen offiziellen wiederverwendbaren Workflow für Plugin-Repositorys bereit.
Typische Einrichtung des aufrufenden Workflows:
name: Package Publish on: pull_request: workflow_dispatch: push: tags: - "v*" jobs: dry-run: if: github.event_name == 'pull_request' uses: openclaw/clawhub/.github/workflows/package-publish.yml@v0.12.0 with: dry_run: true publish: if: github.event_name == 'workflow_dispatch' || startsWith(github.ref, 'refs/tags/') permissions: contents: read id-token: write uses: openclaw/clawhub/.github/workflows/package-publish.yml@v0.12.0 with: dry_run: false secrets: clawhub_token: ${{ secrets.CLAWHUB_TOKEN }}Hinweise:
- Der wiederverwendbare Workflow setzt
sourcestandardmäßig auf das aufrufende Repository. - Übergeben Sie bei Monorepositorys
source_path, damit der Workflow den Ordner des Plugin-Pakets veröffentlicht, beispielsweisesource_path: extensions/codex. - Fixieren Sie den wiederverwendbaren Workflow auf ein stabiles Tag oder den vollständigen Commit-SHA. Führen Sie keine Release-Veröffentlichung von
@mainaus. pull_requestsolltedry_run: trueverwenden, damit CI keine dauerhaften Änderungen verursacht.- Echte Veröffentlichungen sollten auf vertrauenswürdige Ereignisse wie
workflow_dispatchoder Tag-Pushes beschränkt sein. - Vertrauenswürdige Veröffentlichung ohne Secret funktioniert nur bei
workflow_dispatch; Tag-Pushes benötigen weiterhinclawhub_token. - Halten Sie
clawhub_tokenfür die erste Veröffentlichung, nicht vertrauenswürdige Pakete oder Notfallveröffentlichungen verfügbar. - Der Workflow lädt das JSON-Ergebnis als Artefakt hoch und stellt es als Workflow-Ausgaben bereit.
package trusted-publisher get <name>
- Zeigt die Konfiguration des vertrauenswürdigen GitHub-Actions-Publishers für ein Paket.
- Verwenden Sie dies nach dem Festlegen der Konfiguration, um das Repository, den Workflow-Dateinamen und die optionale Umgebungsfixierung zu bestätigen.
- Flags:
--json: maschinenlesbare Ausgabe.
Beispiel:
clawhub package trusted-publisher get @openclaw/example-pluginpackage trusted-publisher set <name>
- Fügt einem vorhandenen Paket die Konfiguration für einen vertrauenswürdigen GitHub-Actions-Publisher hinzu oder ersetzt sie.
- Das Paket muss zuerst durch reguläres manuelles oder tokenauthentifiziertes
clawhub package publisherstellt werden. - Nach dem Festlegen der Konfiguration können zukünftige unterstützte GitHub-Actions-Veröffentlichungen OIDC/vertrauenswürdige Veröffentlichung ohne langlebiges ClawHub-Token verwenden.
--repository <repo>mussowner/reposein.--workflow-filename <file>muss mit dem Namen der Workflow-Datei in.github/workflows/übereinstimmen.--environment <name>ist optional. Wenn konfiguriert, muss die GitHub-Actions- Umgebung im OIDC-Claim exakt übereinstimmen.- ClawHub verifiziert das konfigurierte GitHub-Repository, wenn dieser Befehl ausgeführt wird. Öffentliche Repositorys können anhand öffentlicher GitHub-Metadaten verifiziert werden. Bei privaten Repositorys muss ClawHub über GitHub-Zugriff auf dieses Repository verfügen, beispielsweise über eine zukünftige Installation der ClawHub GitHub App oder eine andere autorisierte GitHub-Integration.
- Flags:
--repository <repo>: GitHub-Repository, beispielsweiseopenclaw/example-plugin.--workflow-filename <file>: Name der Workflow-Datei, beispielsweisepackage-publish.yml.--environment <name>: optionale GitHub-Actions-Umgebung mit exakter Übereinstimmung.--json: maschinenlesbare Ausgabe.
Beispiel:
clawhub package trusted-publisher set @openclaw/example-plugin \ --repository openclaw/example-plugin \ --workflow-filename package-publish.yml \ --environment releasepackage trusted-publisher delete <name>
- Entfernt die Konfiguration für den vertrauenswürdigen Publisher aus einem Paket.
- Verwenden Sie dies als Rollback, wenn die Workflow-, Repository- oder Umgebungsfixierung deaktiviert oder neu erstellt werden muss.
- Zukünftige echte Veröffentlichungen müssen die reguläre authentifizierte Veröffentlichung verwenden, bis die Konfiguration erneut festgelegt wird.
- Flags:
--json: maschinenlesbare Ausgabe.
Beispiel:
clawhub package trusted-publisher delete @openclaw/example-pluginInstallationstelemetrie
- Wird nach
clawhub install <slug>gesendet, wenn eine Anmeldung besteht, sofernCLAWHUB_DISABLE_TELEMETRY=1nicht gesetzt ist. - Die Meldung erfolgt nach bestem Bemühen. Installationsbefehle schlagen nicht fehl, wenn die Telemetrie nicht verfügbar ist.
- Details:
docs/telemetry.md.