Get started
命令列介面
命令列介面
命令列介面套件:clawhub,執行檔:clawhub。
使用 npm 或 pnpm 進行全域安裝:
npm i -g clawhub# 或pnpm add -g clawhub接著進行驗證:
clawhub --helpclawhub loginclawhub whoami全域旗標
--workdir <dir>:工作目錄(預設:目前工作目錄;若已設定,則備援使用 Clawdbot 工作區)--dir <dir>:工作目錄下的安裝目錄(預設:skills)--site <url>:瀏覽器登入的基底 URL(預設:https://clawhub.ai)--registry <url>:API 基底 URL(預設:自動探索,否則使用https://clawhub.ai)--no-input:停用提示
對應的環境變數:
CLAWHUB_SITE(舊版CLAWDHUB_SITE)CLAWHUB_REGISTRY(舊版CLAWDHUB_REGISTRY)CLAWHUB_WORKDIR(舊版CLAWDHUB_WORKDIR)
HTTP Proxy
對於位於公司 Proxy 或受限網路後方的系統,命令列介面會遵循標準 HTTP Proxy 環境變數:
HTTPS_PROXY/https_proxyHTTP_PROXY/http_proxyNO_PROXY/no_proxy
設定其中任一變數時,命令列介面會透過指定的 Proxy 路由對外請求。HTTPS 請求使用 HTTPS_PROXY,一般 HTTP 請求則使用 HTTP_PROXY。系統會遵循 NO_PROXY / no_proxy,讓特定主機或網域略過 Proxy。
在直接對外連線遭封鎖的系統上,這是必要設定(例如 Docker 容器、只能透過 Proxy 存取網際網路的 Hetzner VPS、公司防火牆)。
範例:
export HTTPS_PROXY=http://proxy.example.com:3128export NO_PROXY=localhost,127.0.0.1clawhub search "我的查詢"未設定 Proxy 變數時,行為維持不變(直接連線)。
設定檔
儲存你的 API 權杖與快取的登錄 URL。
- macOS:
~/Library/Application Support/clawhub/config.json - Linux/XDG:
$XDG_CONFIG_HOME/clawhub/config.json或~/.config/clawhub/config.json - Windows:
%APPDATA%\\clawhub\\config.json - 舊版備援:如果
clawhub/config.json尚不存在,但clawdhub/config.json存在,命令列介面會沿用舊版路徑 - 覆寫:
CLAWHUB_CONFIG_PATH(舊版CLAWDHUB_CONFIG_PATH)
命令
login / auth login
- 預設:開啟瀏覽器前往
<site>/cli/auth,並透過迴送回呼完成登入。 - 無介面模式:
clawhub login --token clh_... - 遠端/無介面互動模式:
clawhub login --device會顯示代碼並等待你在<site>/cli/device完成授權。
whoami
- 透過
/api/v1/whoami驗證已儲存的權杖。
token
- 將已儲存的 API 權杖輸出至標準輸出。
- 適合透過管線將本機登入權杖傳入 CI 機密設定命令。
star <skill> / unstar <skill>
- 將技能加入你的精選項目,或從中移除。
- 呼叫
POST /api/v1/stars/<slug>與DELETE /api/v1/stars/<slug>。 --yes會略過確認。
search <query...>
- 呼叫
/api/v1/search?q=...。 - 輸出包含技能 slug、擁有者帳號、顯示名稱與相關性分數。
- 搜尋排序會優先考量 slug/名稱權杖的完全相符,其次才是下載熱門度。例如獨立的 slug 權杖
map,與personal-map的相符程度會高於amap中的子字串。 - 熱門度只會小幅影響排名,無法保證排在最前面。
- 如果某項技能理應出現卻未顯示,請在登入狀態下執行
clawhub inspect @owner/slug,先檢查擁有者可見的審核診斷資訊,再重新命名中繼資料。
explore
- 透過
/api/v1/skills?limit=...&sort=createdAt列出最新技能(依createdAt降冪排序)。 - 旗標:
--limit <n>(1-200,預設:25)--sort newest|updated|rating|downloads|trending(預設:newest)。為維持相容性,舊版安裝排序別名仍可使用。--json(機器可讀輸出)
- 輸出:
<slug> v<version> <age> <summary>(摘要截斷為 50 個字元)。
inspect @owner/slug
- 擷取技能中繼資料與版本檔案,但不進行安裝。
--version <version>:檢查特定版本(預設:最新版本)。--tag <tag>:檢查已標記的版本(例如latest)。--versions:列出版本歷程(第一頁)。--limit <n>:要列出的最大版本數(1-200)。--files:列出所選版本的檔案。--file <path>:擷取原始檔案內容(僅限文字檔;上限 200KB)。--json:機器可讀輸出。
install @owner/slug
- 解析指定擁有者與技能的最新版本。
- 透過
/api/v1/download下載 zip。 - 解壓縮至
<workdir>/<dir>/<slug>。 - 拒絕覆寫已釘選的技能;請先執行
clawhub unpin <skill>。 - 寫入:
<workdir>/.clawhub/lock.json(舊版為.clawdhub)<skill>/.clawhub/origin.json(舊版為.clawdhub)
uninstall <skill>
- 移除
<workdir>/<dir>/<slug>,並刪除鎖定檔項目。 - 登入時會盡力傳送遙測資料,以停用目前的安裝計數。
- 互動模式:要求確認。
- 非互動模式(
--no-input):需要--yes。
list
- 讀取
<workdir>/.clawhub/lock.json(舊版為.clawdhub)。 - 在使用
clawhub pin凍結的技能旁顯示pinned,包括選填的原因。
pin <skill>
- 在鎖定檔中將已安裝的技能標記為已釘選。
--reason <text>會記錄凍結技能的原因。update --all會略過已釘選的技能,直接執行update <skill>則會遭拒。- 已釘選的技能也會拒絕
install --force,以免意外取代本機內容。
unpin <skill>
- 從已安裝技能中移除鎖定檔釘選,讓未來的更新可以修改該技能。
update [@owner/slug] / update --all
- 根據本機檔案計算指紋。
- 如果指紋符合已知版本:不顯示提示。
- 如果指紋不符:
- 預設拒絕
- 使用
--force覆寫(若為互動模式,也可透過提示確認)
--force永遠不會更新已釘選的技能。- 對已釘選的技能執行
update <skill>會立即失敗,並提示你先執行clawhub unpin <skill>。 update --all會略過已釘選的 slug,並顯示哪些項目仍維持凍結的摘要。
skill publish <path>
- 將本機套件組合指紋與 ClawHub 比較;若內容已發布,則成功結束。
- 新技能預設為
1.0.0;已變更的技能預設為下一個修補版本。 --version <version>會明確選取版本,即使內容與現有版本相符仍會發布。--dry-run會解析發布流程但不上傳;--json會輸出機器可讀的結果。- 當執行者具有發布者存取權時,
--owner <handle>會以組織/使用者的發布者帳號發布。 --migrate-owner會在發布新版本時,將現有技能移轉至--owner。需要同時具有兩個發布者的管理員/擁有者存取權。- 擁有者與審核行為的說明請參閱
docs/publishing.md。 - 發布技能表示該技能會在 ClawHub 上以
MIT-0授權發布。 - 已發布的技能可免費使用、修改與再散布,無須標示出處。
- ClawHub 不支援付費技能或個別技能定價。
- 舊版別名:
publish <path>。
clawhub skill publish ./my-skill --dry-runclawhub skill publish ./my-skillclawhub skill publish ./my-skill --version 2.0.0GitHub Actions
ClawHub 的可重複使用
skill-publish.yml
工作流程會針對一個 skill_path 呼叫 skill publish,或針對 root 下的每個第一層技能資料夾呼叫(預設:skills)。它會略過未變更的技能,並採用相同的自動修補版本行為。
設定 dry_run: true 可在不使用權杖的情況下預覽。實際發布需要 clawhub_token 機密。
sync
- 掃描目前的工作目錄、已設定的技能目錄,以及任何
--root <dir>資料夾,尋找包含SKILL.md或skill.md的本機技能資料夾。 - 將每個本機技能指紋與 ClawHub 比較,只發布新增或已變更的技能。
- 新技能會以
1.0.0發布;已變更的技能預設發布下一個修補版本。對於應提升較大語意化版本幅度的更新批次,請使用--bump minor|major。 --dry-run會顯示發布計畫但不上傳;--json會輸出機器可讀的計畫。--all會發布所有新增或已變更的技能,而不顯示提示。若未使用--all,互動式終端機會讓你選取要發布的技能。- 當執行者具有發布者存取權時,
--owner <handle>會以組織/使用者的發布者帳號發布。 sync僅支援單向發布。它不會安裝、更新、下載,也不會回報安裝/下載遙測資料。
clawhub sync --all --dry-runclawhub sync --allclawhub sync --root ./skills --owner openclaw --bump minorscan --slug <slug>
- 需要執行
clawhub login。 - 透過
POST /api/v1/skills/-/scan執行 ClawHub ClawScan,接著輪詢直到掃描進入終止狀態。 - 掃描為非同步作業,可能需要一段時間才能完成。排隊期間,終端機的旋轉指示器會顯示目前的優先掃描順位,以及前方還有多少項掃描。
- 已發布內容的掃描需要擁有權或發布者管理存取權。版主/管理員可透過
clawhub-admin使用相同的後端。 --update僅可與--slug搭配使用;它會將成功的已發布掃描結果寫回所選版本。--output <file.zip>會下載完整報告封存檔,其中包含manifest.json、clawscan.json、skillspector.json、static-analysis.json、virustotal.json與README.md。--json會輸出完整的輪詢回應,以供自動化使用。- 已不再支援本機路徑掃描。請上傳新版本,然後使用
scan download擷取該提交版本所儲存的掃描結果。
clawhub scan --slug gifgrepclawhub scan --slug gifgrep --version 1.2.3clawhub scan --slug gifgrep --update --output report.zipscan download <name>
- 需要執行
clawhub login。 - 下載已提交技能或外掛版本所儲存的掃描報告 ZIP,包括遭 ClawHub 安全性檢查封鎖或隱藏的版本。
- 下載技能時使用技能 slug,且預設為
--kind skill。 - 下載外掛時使用套件名稱,且必須指定
--kind plugin。 --version為必要選項,讓作者能檢查 ClawHub 封鎖的確切提交版本。--output <file.zip>用於選擇目的地路徑。
clawhub scan download gifgrep --version 1.2.3clawhub scan download @scope/demo --version 2.0.0 --kind plugin --output report.zipGitHub Actions
ClawHub 在
/.github/workflows/skill-publish.yml
提供官方可重複使用的工作流程,供技能儲存庫與目錄儲存庫使用。
典型的目錄設定:
name: 技能發布 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 }}注意事項:
- 對於目錄儲存庫,
root預設為skills。 - 傳入
skill_path: skills/review-helper可處理單一技能資料夾。 owner對應命令列介面的--owner旗標;省略時會以已驗證身分的使用者發布。- V1 技能發布使用
clawhub_token;GitHub OIDC 受信任發布目前僅適用於套件。
delete <skill>
- 若未指定
--version,則軟刪除 Skills(擁有者、版主或管理員)。 - 呼叫
DELETE /api/v1/skills/{slug}。 - 由擁有者發起的軟刪除會保留該 slug 30 天;此命令會列印到期時間。
--version <version>會透過預設拒絕、 版本專用的路由,永久刪除一個由你擁有且非最新的版本。 已刪除的版本無法還原或重新發布。刪除目前的最新版本前,請先發布替代版本。 在此僅限版本的流程中,平台工作人員無法略過擁有權限制。--reason <text>會在整個 Skills 的軟刪除記錄與稽核日誌中記錄審核備註。--note <text>是--reason的別名。--yes會略過確認。
undelete <skill>
- 還原隱藏的 Skills(擁有者、版主或管理員)。
- 無法取消刪除版本;永久刪除的版本無法還原。
- 呼叫
POST /api/v1/skills/{slug}/undelete。 --reason <text>會在 Skills 與稽核日誌中記錄審核備註。--note <text>是--reason的別名。--yes會略過確認。
hide <skill>
- 隱藏 Skills(擁有者、版主或管理員)。
delete的別名。
unhide <skill>
- 取消隱藏 Skills(擁有者、版主或管理員)。
undelete的別名。
skill rename <skill> <new-name>
- 重新命名你擁有的 Skills,並保留先前的 slug 作為重新導向別名。
- 呼叫
POST /api/v1/skills/{slug}/rename。 --yes會略過確認。
skill merge <source> <target>
- 將一個你擁有的 Skills 合併到另一個你擁有的 Skills。
- 來源 slug 將不再公開列出,並成為指向目標的重新導向別名。
- 呼叫
POST /api/v1/skills/{sourceSlug}/merge。 --yes會略過確認。
transfer
- 擁有權移轉工作流程。
- 移轉至使用者代號時,會建立待處理要求,由接收者接受。
- 移轉至組織/發布者代號時,只有在執行者同時具備目前擁有者與目標發布者的 管理員存取權時,才會立即套用。
- 子命令:
transfer request <skill> <handle> [--message "..."] [--yes]transfer list [--outgoing]transfer accept <skill> [--yes]transfer reject <skill> [--yes]transfer cancel <skill> [--yes]
- 端點:
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...]
- 透過
GET /api/v1/packages和GET /api/v1/packages/search瀏覽或搜尋統一的套件目錄。 - 對外掛和其他套件家族項目使用此命令;頂層
search仍是 Skills 搜尋介面。 - 旗標:
--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,預設值:25)--json
範例:
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>
- 在不安裝的情況下擷取套件中繼資料。
- 使用此命令檢查外掛中繼資料、相容性、驗證、來源,以及版本/檔案。
--version <version>:檢查特定版本(預設值:最新版本)。--tag <tag>:檢查加上標籤的版本(例如latest)。--versions:列出版本歷史記錄(第一頁)。--limit <n>:要列出的版本數上限(1-100)。--files:列出所選版本的檔案。--file <path>:擷取原始檔案內容(僅限文字檔案;上限 200KB)。--json:機器可讀的輸出。
package download <name>
- 透過
GET /api/v1/packages/{name}/versions/{version}/artifact解析套件版本。 - 從解析器的
downloadUrl下載成品。 - 驗證所有成品的 ClawHub SHA-256。
- 對於 ClawPack npm-pack 成品,還會驗證 npm
sha512完整性、 npm shasum,以及壓縮封存檔的package.json名稱/版本。 - 舊版 ZIP 版本會透過舊版 ZIP 路由下載。
- 旗標:
--version <version>:下載特定版本。--tag <tag>:下載加上標籤的版本(預設值:latest)。-o, --output <path>:輸出檔案或目錄。--force:覆寫現有的輸出檔案。--json:機器可讀的輸出。
範例:
clawhub package download @openclaw/example-plugin --tag latestclawhub package download @openclaw/example-plugin --version 1.2.3 -o artifacts/package verify <file>
- 為本機成品計算 ClawHub SHA-256、npm
sha512完整性及 npm shasum。 - 搭配
--package時,會從 ClawHub 解析預期的中繼資料,並將 本機檔案與已發布的成品中繼資料進行比較。 - 搭配直接摘要旗標時,無須查詢網路即可驗證。
- 旗標:
--package <name>:用於解析預期成品中繼資料的套件名稱。--version <version>或--tag <tag>:預期的套件版本。--sha256 <hex>:預期的 ClawHub SHA-256。--npm-integrity <sri>:預期的 npm 完整性。--npm-shasum <sha1>:預期的 npm shasum。--json:機器可讀的輸出。
範例:
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>
- 對本機外掛套件 資料夾執行 ClawHub 命令列介面內建的外掛檢查器。
- 預設執行離線/靜態驗證,不會尋找或匯入本機 OpenClaw 原始碼簽出。
- 嚴重相容性錯誤會以非零狀態結束。僅警告的發現會列印出來,但 會以零狀態結束。
- 旗標:
--out <dir>:將外掛檢查器報告寫入此目錄。--openclaw <path>:針對明確指定的本機 OpenClaw 原始碼簽出進行檢查。--runtime:啟用執行階段擷取;會匯入外掛程式碼。--allow-execute:允許在隔離的工作區中進行執行階段擷取。--no-mock-sdk:停用執行階段擷取期間模擬的 OpenClaw SDK。--json:機器可讀的輸出。
範例:
clawhub package validate ./example-plugin若驗證回報套件、資訊清單、SDK 匯入或成品發現,請參閱 外掛驗證修正,然後重新執行命令。
package delete <name>
- 若未指定
--version,則軟刪除套件及所有發行版本。 --version <version>會透過預設拒絕、 版本專用的路由,永久刪除一個由你擁有且非最新的發行版本。 已刪除的版本無法還原或重新發布。刪除目前的最新版本前,請先發布替代版本。 此僅限版本的流程要求套件擁有者或組織發布者管理員執行; 平台工作人員無法略過套件擁有權限制。- 整個套件的軟刪除要求套件擁有者、組織發布者擁有者/管理員、平台 版主或平台管理員執行。
- 旗標:
--version <version>:永久刪除一個非最新版本。--yes:略過確認。--json:機器可讀的輸出。
範例:
clawhub package delete @openclaw/example-plugin --yesclawhub package delete @openclaw/example-plugin --version 1.2.3 --yespackage undelete <name>
- 還原已軟刪除的套件與發行版本。
- 無法取消刪除版本;永久刪除的版本無法還原。
- 要求套件擁有者、組織發布者擁有者/管理員、平台版主 或平台管理員執行。
- 呼叫
POST /api/v1/packages/{name}/undelete。 - 旗標:
--yes:略過確認。--json:機器可讀的輸出。
範例:
clawhub package undelete @openclaw/example-plugin --yespackage transfer <name>
- 將套件移轉給另一個發布者。
- 除非由平台管理員執行,否則必須同時具備目前套件擁有者與目標 發布者的管理員存取權。
- 具範圍的套件名稱必須移轉給相符的範圍擁有者。
- 呼叫
POST /api/v1/packages/{name}/transfer。 - 旗標:
--to <owner>:目標發布者代號。--reason <text>:選用的稽核原因。--json:機器可讀的輸出。
範例:
clawhub package transfer @openclaw/example-plugin --to openclawpackage report
- 用於向版主檢舉套件的已驗證命令。
- 呼叫
POST /api/v1/packages/{name}/report。 - 檢舉以套件為層級,可選擇與某個版本相關聯,並會顯示 給版主進行審查。
- 檢舉本身不會自動隱藏套件或封鎖下載。
- 旗標:
--version <version>:選擇性附加至檢舉的套件版本。--reason <text>:必要的檢舉原因。--json:機器可讀的輸出。
範例:
clawhub package report @openclaw/example-plugin --version 1.2.3 --reason "可疑的原生承載內容"package moderation-status
- 用於檢查套件審核可見性的擁有者命令。
- 呼叫
GET /api/v1/packages/{name}/moderation。 - 顯示目前的套件掃描狀態、未結案檢舉數量、最新發行版本的人工 審核狀態、下載封鎖狀態及審核原因。
- 旗標:
--json:機器可讀的輸出。
範例:
clawhub package moderation-status @openclaw/example-pluginpackage readiness <name>
- 檢查套件是否已準備好供未來的 OpenClaw 使用。
- 呼叫
GET /api/v1/packages/{name}/readiness。 - 回報正式狀態、ClawPack 可用性、成品摘要、 來源出處、OpenClaw 相容性、主機目標、環境中繼資料 及掃描狀態的阻礙因素。
- 旗標:
--json:機器可讀的輸出。
範例:
clawhub package readiness @openclaw/example-pluginpackage migration-status <name>
- 顯示可能取代 OpenClaw 內建外掛之套件的 操作者導向遷移狀態。
- 呼叫與
package readiness相同的計算式準備度端點,但會列印 以遷移為重點的狀態、最新版本、正式套件狀態、檢查項目及 阻礙因素。 - 旗標:
--json:機器可讀的輸出。
範例:
clawhub package migration-status @openclaw/example-pluginpublisher create <handle>
- 建立由已驗證使用者擁有的組織發布者。
- 代號會正規化為小寫,傳入時可包含或不包含
@。 - 新建立的組織發布者預設不受信任/非正式。
- 若代號已由現有發布者、使用者或保留路由使用,則會失敗。
clawhub publisher create opik --display-name "Opik"package publish <source>
- 透過
POST /api/v1/packages發布程式碼外掛或套件組合外掛。 <source>接受:- 本機資料夾路徑:
./my-plugin - 本機 ClawPack npm-pack tarball:
./my-plugin-1.2.3.tgz - GitHub 儲存庫:
owner/repo或owner/repo@ref - GitHub URL:
https://github.com/owner/repo
- 本機資料夾路徑:
- 系統會從
package.json、openclaw.plugin.json,以及.codex-plugin/plugin.json、.claude-plugin/plugin.json和.cursor-plugin/plugin.json等實際 OpenClaw 套件組合標記自動偵測中繼資料。 .tgz來源會視為 ClawPack。命令列介面會上傳完全相同的 npm-pack 位元組,並僅將解壓縮後的package/內容用於驗證與 預先填入中繼資料。- 程式碼外掛資料夾會在上傳前封裝成 ClawPack npm tarball,讓 OpenClaw 安裝程序能驗證完全相同的成品。套件組合外掛資料夾仍會 使用解壓縮檔案發布路徑。
- 對於 GitHub 來源,系統會根據儲存庫、解析後的提交、ref 和子路徑自動填入來源歸屬資訊。
- 對於本機資料夾,當 origin 遠端指向 GitHub 時,系統會從本機 git 自動偵測來源歸屬資訊。
- 外部程式碼外掛必須明確宣告
openclaw.compat.pluginApi和openclaw.build.openclawVersion。 頂層package.json.version不會作為發布驗證的備援值。 --dry-run可在不上傳的情況下預覽解析後的發布承載資料。--json會輸出可供 CI 機器讀取的結果。- 當操作者具有發布者存取權時,
--owner <handle>會以使用者或組織發布者代號發布。 - 有範圍的套件名稱必須符合所選擁有者。請參閱
docs/publishing.md。 - 現有旗標(
--family、--name、--version、--source-repo、--source-commit、--source-ref、--source-path)仍可用於覆寫。 - 私有 GitHub 儲存庫需要
GITHUB_TOKEN。
clawhub package publish ./plugin.tgz --owner openclaw建議的本機流程
請先使用 --dry-run,以便在建立正式版本之前確認解析後的套件中繼資料與
來源歸屬資訊:
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-plugin本機資料夾流程
對於程式碼外掛,資料夾發布會從套件資料夾建置並上傳 ClawPack 成品:
clawhub package publish ./my-plugin --family code-plugin --dry-runclawhub package publish ./my-plugin --family code-plugin--family code-plugin 的最小 package.json
外部程式碼外掛需要在 package.json 中加入少量 OpenClaw 中繼資料。
以下最小資訊清單足以成功發布:
{ "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" } }}必要欄位:
openclaw.compat.pluginApiopenclaw.build.openclawVersion
注意事項:
package.json.version是你的套件發行版本,但不會作為 OpenClaw 相容性/建置驗證的備援值。openclaw.hostTargets和openclaw.environment是選用的中繼資料。 若存在,ClawHub 可能會顯示它們,但發布並不要求這些資料。- 如果你想發布更詳細的相容性中繼資料,
openclaw.compat.minGatewayVersion和openclaw.build.pluginSdkVersion是選用的額外欄位。 - 如果你使用較舊版本的
clawhub命令列介面,請在發布前升級,以便 在上傳前執行本機預檢。 - 如果驗證回報修復代碼,請參閱 外掛驗證修正。
GitHub Actions
ClawHub 也在
/.github/workflows/package-publish.yml
提供適用於外掛儲存庫的官方可重複使用工作流程。
典型的呼叫端設定:
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 }}注意事項:
- 可重複使用工作流程預設會將
source設為呼叫端儲存庫。 - 對於 monorepo,請傳入
source_path,讓工作流程發布外掛 套件資料夾,例如source_path: extensions/codex。 - 請將可重複使用工作流程固定至穩定標籤或完整提交 SHA。不要從
@main執行版本發布。 pull_request應使用dry_run: true,以避免 CI 產生正式資料。- 實際發布應僅限於
workflow_dispatch或標籤推送等受信任事件。 - 不使用密鑰的受信任發布僅適用於
workflow_dispatch;標籤推送仍需要clawhub_token。 - 請保留
clawhub_token,以供首次發布、不受信任的套件或緊急發布使用。 - 工作流程會將 JSON 結果上傳為成品,並將其公開為工作流程輸出。
package trusted-publisher get <name>
- 顯示套件的 GitHub Actions 受信任發布者設定。
- 設定完成後,請使用此命令確認儲存庫、工作流程檔案名稱 以及選用的環境固定設定。
- 旗標:
--json:機器可讀取的輸出。
範例:
clawhub package trusted-publisher get @openclaw/example-pluginpackage trusted-publisher set <name>
- 為現有套件附加或取代 GitHub Actions 受信任發布者設定。
- 必須先透過一般手動或權杖驗證的
clawhub package publish建立套件。 - 設定完成後,未來受支援的 GitHub Actions 發布即可使用 OIDC/受信任發布,而不需要長效 ClawHub 權杖。
--repository <repo>必須為owner/repo。--workflow-filename <file>必須符合.github/workflows/中的工作流程檔案名稱。--environment <name>是選用項目。設定後,OIDC 宣告中的 GitHub Actions 環境必須完全相符。- 執行此命令時,ClawHub 會驗證設定的 GitHub 儲存庫。 公開儲存庫可透過公開 GitHub 中繼資料驗證。私有 儲存庫需要 ClawHub 擁有該儲存庫的 GitHub 存取權,例如 透過未來的 ClawHub GitHub App 安裝或其他已授權的 GitHub 整合。
- 旗標:
--repository <repo>:GitHub 儲存庫,例如openclaw/example-plugin。--workflow-filename <file>:工作流程檔案名稱,例如package-publish.yml。--environment <name>:選用的完全相符 GitHub Actions 環境。--json:機器可讀取的輸出。
範例:
clawhub package trusted-publisher set @openclaw/example-plugin \ --repository openclaw/example-plugin \ --workflow-filename package-publish.yml \ --environment releasepackage trusted-publisher delete <name>
- 從套件移除受信任發布者設定。
- 如果需要停用或重新建立工作流程、儲存庫或環境固定設定,請將此命令用於復原。
- 在再次設定前,未來的實際發布必須使用一般驗證發布。
- 旗標:
--json:機器可讀取的輸出。
範例:
clawhub package trusted-publisher delete @openclaw/example-plugin安裝遙測
- 登入後執行
clawhub install <slug>時傳送,除非已設定CLAWHUB_DISABLE_TELEMETRY=1。 - 回報採盡力而為。即使遙測無法使用,安裝命令也不會失敗。
- 詳細資訊:
docs/telemetry.md。