From 6932897bf9d0a9668b3ecd6ea63b0aecdf9d19da Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Thu, 20 Aug 2026 02:42:05 -0700 Subject: [PATCH] docs(plugins): show root CLI commands (#126621) --- docs/plugins/reference/browser.md | 2 +- docs/plugins/reference/codex.md | 2 +- docs/plugins/reference/device-pair.md | 2 +- docs/plugins/reference/google-meet.md | 2 +- docs/plugins/reference/matrix.md | 2 +- docs/plugins/reference/memory-core.md | 2 +- docs/plugins/reference/memory-lancedb.md | 2 +- docs/plugins/reference/memory-wiki.md | 2 +- docs/plugins/reference/oc-path.md | 2 +- docs/plugins/reference/onepassword.md | 2 +- docs/plugins/reference/policy.md | 2 +- docs/plugins/reference/qa-lab.md | 2 +- docs/plugins/reference/reef.md | 2 +- docs/plugins/reference/talk-voice.md | 2 +- docs/plugins/reference/teams-meetings.md | 2 +- docs/plugins/reference/vault.md | 2 +- docs/plugins/reference/voice-call.md | 2 +- docs/plugins/reference/workboard.md | 2 +- docs/plugins/reference/zoom-meetings.md | 2 +- scripts/lib/plugin-inventory-doc.mts | 17 ++++++++++++++--- test/scripts/plugin-inventory-doc.test.ts | 12 ++++++++++-- 21 files changed, 43 insertions(+), 24 deletions(-) diff --git a/docs/plugins/reference/browser.md b/docs/plugins/reference/browser.md index ef93dc19e2ba..f1f9ff29f9a8 100644 --- a/docs/plugins/reference/browser.md +++ b/docs/plugins/reference/browser.md @@ -16,7 +16,7 @@ Adds agent-callable tools. ## Surface -contracts: `tools`; skills +CLI commands: `openclaw browser`; contracts: `tools`; skills ## Related docs diff --git a/docs/plugins/reference/codex.md b/docs/plugins/reference/codex.md index 09c0b448d075..e3e61abf051e 100644 --- a/docs/plugins/reference/codex.md +++ b/docs/plugins/reference/codex.md @@ -16,7 +16,7 @@ Codex app-server harness and native session catalog. ## Surface -commands: `/codex`; contracts: `mediaUnderstandingProviders`, `migrationProviders`, `tools`, `webSearchProviders` +CLI commands: `openclaw codex`; slash commands: `/codex`; contracts: `mediaUnderstandingProviders`, `migrationProviders`, `tools`, `webSearchProviders` ## Related docs diff --git a/docs/plugins/reference/device-pair.md b/docs/plugins/reference/device-pair.md index f412dafd3b8f..3da0bc8cbdea 100644 --- a/docs/plugins/reference/device-pair.md +++ b/docs/plugins/reference/device-pair.md @@ -16,4 +16,4 @@ Generate setup codes and approve device pairing requests. ## Surface -commands: `/pair` +slash commands: `/pair` diff --git a/docs/plugins/reference/google-meet.md b/docs/plugins/reference/google-meet.md index 70bc2ce0c0b5..74c9c8ddd0d0 100644 --- a/docs/plugins/reference/google-meet.md +++ b/docs/plugins/reference/google-meet.md @@ -16,7 +16,7 @@ OpenClaw Google Meet participant plugin for joining calls through Chrome or Twil ## Surface -contracts: `tools`, `transcriptSourceProviders` +CLI commands: `openclaw googlemeet`; contracts: `tools`, `transcriptSourceProviders` ## Related docs diff --git a/docs/plugins/reference/matrix.md b/docs/plugins/reference/matrix.md index 4da82e54c3e2..92dea6cd9656 100644 --- a/docs/plugins/reference/matrix.md +++ b/docs/plugins/reference/matrix.md @@ -16,7 +16,7 @@ OpenClaw Matrix channel plugin for rooms and direct messages. ## Surface -channels: `matrix` +channels: `matrix`; CLI commands: `openclaw matrix` ## Related docs diff --git a/docs/plugins/reference/memory-core.md b/docs/plugins/reference/memory-core.md index dbf6033d9fb2..094ff139eae9 100644 --- a/docs/plugins/reference/memory-core.md +++ b/docs/plugins/reference/memory-core.md @@ -16,4 +16,4 @@ Adds agent-callable tools. ## Surface -commands: `/dreaming`; contracts: `tools` +CLI commands: `openclaw memory`; slash commands: `/dreaming`; contracts: `tools` diff --git a/docs/plugins/reference/memory-lancedb.md b/docs/plugins/reference/memory-lancedb.md index 1c9baee61118..574af86f776a 100644 --- a/docs/plugins/reference/memory-lancedb.md +++ b/docs/plugins/reference/memory-lancedb.md @@ -16,7 +16,7 @@ OpenClaw LanceDB-backed long-term memory plugin with auto-recall, auto-capture, ## Surface -contracts: `tools` +CLI commands: `openclaw ltm`; contracts: `tools` ## Related docs diff --git a/docs/plugins/reference/memory-wiki.md b/docs/plugins/reference/memory-wiki.md index b4c4ecd83636..b952193013f7 100644 --- a/docs/plugins/reference/memory-wiki.md +++ b/docs/plugins/reference/memory-wiki.md @@ -16,7 +16,7 @@ Persistent wiki compiler and Obsidian-friendly knowledge vault for OpenClaw. ## Surface -contracts: `tools`; skills +CLI commands: `openclaw wiki`; contracts: `tools`; skills ## Related docs diff --git a/docs/plugins/reference/oc-path.md b/docs/plugins/reference/oc-path.md index 14c984502433..35a6d6961881 100644 --- a/docs/plugins/reference/oc-path.md +++ b/docs/plugins/reference/oc-path.md @@ -16,7 +16,7 @@ Adds the openclaw path CLI for oc:// workspace file addressing. ## Surface -plugin +CLI commands: `openclaw path` ## Related docs diff --git a/docs/plugins/reference/onepassword.md b/docs/plugins/reference/onepassword.md index be8af0f0ef1a..cd5fdeb0c929 100644 --- a/docs/plugins/reference/onepassword.md +++ b/docs/plugins/reference/onepassword.md @@ -16,7 +16,7 @@ title: "Onepassword plugin" ## Surface -contracts: `tools` +CLI commands: `openclaw onepassword`; contracts: `tools` ## Related docs diff --git a/docs/plugins/reference/policy.md b/docs/plugins/reference/policy.md index a113442177a8..5eb2e73c95df 100644 --- a/docs/plugins/reference/policy.md +++ b/docs/plugins/reference/policy.md @@ -16,7 +16,7 @@ Adds policy-backed doctor checks for workspace conformance. ## Surface -plugin +CLI commands: `openclaw policy` diff --git a/docs/plugins/reference/qa-lab.md b/docs/plugins/reference/qa-lab.md index 996e1121730b..1a509dfa65bd 100644 --- a/docs/plugins/reference/qa-lab.md +++ b/docs/plugins/reference/qa-lab.md @@ -16,4 +16,4 @@ OpenClaw QA lab plugin with private debugger UI and scenario runner. ## Surface -contracts: `tools`, `webSearchProviders`, `workerProviders` +CLI commands: `openclaw qa`; contracts: `tools`, `webSearchProviders`, `workerProviders` diff --git a/docs/plugins/reference/reef.md b/docs/plugins/reference/reef.md index 447c1aba74c5..5bf77377070c 100644 --- a/docs/plugins/reference/reef.md +++ b/docs/plugins/reference/reef.md @@ -16,7 +16,7 @@ Guarded end-to-end encrypted claw channel. ## Surface -channels: `reef` +channels: `reef`; CLI commands: `openclaw reef` ## Related docs diff --git a/docs/plugins/reference/talk-voice.md b/docs/plugins/reference/talk-voice.md index 0bceb314f5bd..b5658b5d242f 100644 --- a/docs/plugins/reference/talk-voice.md +++ b/docs/plugins/reference/talk-voice.md @@ -16,7 +16,7 @@ Manage Talk voice selection (list/set). ## Surface -commands: `/voice` +slash commands: `/voice` diff --git a/docs/plugins/reference/teams-meetings.md b/docs/plugins/reference/teams-meetings.md index 96fa3e0a55f3..4f03258ff426 100644 --- a/docs/plugins/reference/teams-meetings.md +++ b/docs/plugins/reference/teams-meetings.md @@ -16,7 +16,7 @@ Join Microsoft Teams meetings as a Chrome browser guest. ## Surface -contracts: `tools`, `transcriptSourceProviders` +CLI commands: `openclaw teamsmeetings`; contracts: `tools`, `transcriptSourceProviders` ## Related docs diff --git a/docs/plugins/reference/vault.md b/docs/plugins/reference/vault.md index b59b7cf789e3..56f2257b1416 100644 --- a/docs/plugins/reference/vault.md +++ b/docs/plugins/reference/vault.md @@ -16,7 +16,7 @@ HashiCorp Vault SecretRef provider integration. ## Surface -plugin +CLI commands: `openclaw vault` ## Related docs diff --git a/docs/plugins/reference/voice-call.md b/docs/plugins/reference/voice-call.md index 36b8a33e50ea..2206cc489f04 100644 --- a/docs/plugins/reference/voice-call.md +++ b/docs/plugins/reference/voice-call.md @@ -16,7 +16,7 @@ OpenClaw voice-call plugin for Twilio, Telnyx, and Plivo phone calls. ## Surface -contracts: `tools`; skills +CLI commands: `openclaw voicecall`; contracts: `tools`; skills ## Related docs diff --git a/docs/plugins/reference/workboard.md b/docs/plugins/reference/workboard.md index a99431d78742..4d80a29fb3fe 100644 --- a/docs/plugins/reference/workboard.md +++ b/docs/plugins/reference/workboard.md @@ -16,7 +16,7 @@ Dashboard workboard for agent-owned issues and sessions. ## Surface -contracts: `tools`; dashboard data bindings: `workboard.cards.list`, `workboard.stats`, `workboard.boards.list`; dashboard action verbs: `workboard.dispatch` +CLI commands: `openclaw workboard`; contracts: `tools`; dashboard data bindings: `workboard.cards.list`, `workboard.stats`, `workboard.boards.list`; dashboard action verbs: `workboard.dispatch` ## Related docs diff --git a/docs/plugins/reference/zoom-meetings.md b/docs/plugins/reference/zoom-meetings.md index 7452b941ddc6..d2d27e52317b 100644 --- a/docs/plugins/reference/zoom-meetings.md +++ b/docs/plugins/reference/zoom-meetings.md @@ -16,7 +16,7 @@ Join Zoom meetings as a Chrome browser guest. ## Surface -contracts: `tools`, `transcriptSourceProviders` +CLI commands: `openclaw zoommeetings`; contracts: `tools`, `transcriptSourceProviders` ## Related docs diff --git a/scripts/lib/plugin-inventory-doc.mts b/scripts/lib/plugin-inventory-doc.mts index 92dc3bd23306..205556600f31 100644 --- a/scripts/lib/plugin-inventory-doc.mts +++ b/scripts/lib/plugin-inventory-doc.mts @@ -2,6 +2,7 @@ type PluginSurfaceManifest = { id?: string; channels?: string[]; providers?: string[]; + cliCommands?: Array<{ name?: string }>; commandAliases?: Array<{ name?: string; kind?: string }>; contracts?: Record; dashboard?: Partial>>; @@ -83,7 +84,17 @@ export function resolvePluginSurface(manifest: PluginSurfaceManifest) { if (Array.isArray(manifest.providers) && manifest.providers.length > 0) { parts.push(`providers: ${formatIdentifiers(manifest.providers)}`); } - const commands = [ + const cliCommands = [ + ...new Set( + (manifest.cliCommands ?? []) + .map((command) => command.name?.trim()) + .filter((name): name is string => Boolean(name)), + ), + ].toSorted((left, right) => left.localeCompare(right)); + if (cliCommands.length > 0) { + parts.push(`CLI commands: ${formatIdentifiers(cliCommands.map((name) => `openclaw ${name}`))}`); + } + const slashCommands = [ ...new Set( (manifest.commandAliases ?? []) .filter((alias) => alias.kind === "runtime-slash") @@ -91,8 +102,8 @@ export function resolvePluginSurface(manifest: PluginSurfaceManifest) { .filter((name): name is string => Boolean(name)), ), ].toSorted((left, right) => left.localeCompare(right)); - if (commands.length > 0) { - parts.push(`commands: ${formatIdentifiers(commands.map((name) => `/${name}`))}`); + if (slashCommands.length > 0) { + parts.push(`slash commands: ${formatIdentifiers(slashCommands.map((name) => `/${name}`))}`); } const contracts = Object.keys(manifest.contracts ?? {}).toSorted((left, right) => left.localeCompare(right), diff --git a/test/scripts/plugin-inventory-doc.test.ts b/test/scripts/plugin-inventory-doc.test.ts index 97e3f26bcc8a..3880e2b99caa 100644 --- a/test/scripts/plugin-inventory-doc.test.ts +++ b/test/scripts/plugin-inventory-doc.test.ts @@ -30,15 +30,23 @@ describe("resolvePluginSurface", () => { expect(resolvePluginSurface({})).toBe("plugin"); }); - it("renders only runtime slash command aliases", () => { + it("renders root CLI commands separately from runtime slash command aliases", () => { expect( resolvePluginSurface({ + cliCommands: [ + { name: " voicecall " }, + { name: "browser" }, + { name: "voicecall" }, + { name: " " }, + ], commandAliases: [ { name: "voice", kind: "runtime-slash" }, + { name: " voice ", kind: "runtime-slash" }, + { name: " ", kind: "runtime-slash" }, { name: "internal", kind: "activation-only" }, ], }), - ).toBe("commands: `/voice`"); + ).toBe("CLI commands: `openclaw browser`, `openclaw voicecall`; slash commands: `/voice`"); }); it("escapes dashboard plugin owner delimiters and literal escape markers", () => {