### Channel setup JSON configuration example Source: https://docs.openclaw.ai/plugins/sdk-setup Shows the JSON configuration for the channel setup contract, listing the fields and their CLI flags. ```JSON { "openclaw": { "channel": { "id": "example", "setup": { "fields": [ { "key": "endpoint", "kind": "string", "cli": { "flags": "--endpoint ", "description": "Service endpoint" } }, { "key": "transport", "kind": "choice", "choices": ["native", "container"], "cli": { "flags": "--transport ", "description": "Transport owner" } } ] } } } } ``` -------------------------------- ### Quickstart: Initialize and build a tool plugin Source: https://docs.openclaw.ai/plugins/tool-plugins Run these commands to create a new plugin named 'stock-quotes', install dependencies, build, validate, and test. Requires Node 24.16+ or 26.1+, TypeScript ESM output, and typebox in dependencies. ```bash openclaw plugins init stock-quotes --name "Stock Quotes" cd stock-quotes npm install npm run plugin:build npm run plugin:validate npm test ``` -------------------------------- ### Install the OpenClaw Gateway service (openclaw gateway install) Source: https://docs.openclaw.ai Installs the Gateway as a background service after pressing Ctrl+C to stop the foreground Gateway started by quick start. ```bash openclaw gateway install ``` -------------------------------- ### Clone Kev, download model, and start server Source: https://docs.openclaw.ai/plugins/typesafe Sets up the Kev repository at a pinned revision, installs dependencies with uv, downloads the Kev-4B Qwen3 checkpoint, and starts the server on port 8009. Requires Python 3.12+ and uv. The first server start downloads base model weights. ```sh git clone https://github.com/jaredpalmer/kev.git cd kev git checkout 5f78968927069eaacc3b2bdb688586989b3933ac uv sync --frozen --extra serve uv run python - <<'PY' from huggingface_hub import snapshot_download snapshot_download( "jaredpalmer/kev-4b", revision="c4bfa11b0dc07691884f2d97f1c4c4c05c92e416", local_dir="models/kev-4b-qwen3", ) PY KEV_DTYPE=bf16 uv run --extra serve python -m kev.serve \ --run models/kev-4b-qwen3 --port 8009 ``` -------------------------------- ### Restart Gateway and run facetime.setup Source: https://docs.openclaw.ai/plugins/facetime Restart the Gateway after saving configuration, then run the setup command which reports required actions and starts the native helper but does not dial a call. ```bash openclaw gateway restart openclaw gateway call facetime.setup --json ``` -------------------------------- ### plugin-sdk/setup-runtime Source: https://docs.openclaw.ai/plugins/sdk-subpaths Runtime helpers for channel setup contracts, setup translators, patched adapters, and setup wizards. ```APIDOC ## plugin-sdk/setup-runtime ### Description Runtime helpers for channel setup contracts, setup translators, patched adapters, and setup wizards. ### Exports - `defineChannelSetupContract` - `createSetupTranslator` - `createPatchedAccountSetupAdapter` - `createEnvPatchedAccountSetupAdapter` - `createSetupInputPresenceValidator` - `noteChannelLookupFailure` - `noteChannelLookupSummary` - `promptResolvedAllowFrom` - `splitSetupEntries` - `createAllowlistSetupWizardProxy` - `createDelegatedSetupWizardProxy` ``` -------------------------------- ### Install plugin and start node host in Parallels VM Source: https://docs.openclaw.ai/plugins/google-meet/transports Install the Google Meet plugin (enabled by default) and start a node host in the Parallels VM, pointing it at the Gateway host on port 18789. The node is given the display name 'parallels-macos'. ```bash openclaw plugins install @openclaw/google-meet openclaw node run --host --port 18789 --display-name parallels-macos ``` -------------------------------- ### Run facetime.setup, facetime.preflight, and facetime.status Source: https://docs.openclaw.ai/plugins/facetime Run setup and preflight to verify audio readiness, then check status. These commands do not dial anyone; setup and preflight perform live setup and audio checks, while status can inspect an inactive runtime without opening apps or starting call audio. Resolve any reported setup or preflight errors before making a call. ```bash openclaw gateway call facetime.setup --json openclaw gateway call facetime.preflight --json openclaw gateway call facetime.status --json ``` ```bash openclaw gateway call facetime.dial \ --params '{"handle":"owner@example.com","mode":"audio"}' \ --json ``` ```bash openclaw gateway call facetime.hangup --json openclaw gateway call facetime.status --json ``` -------------------------------- ### Run setup and join a Meet URL Source: https://docs.openclaw.ai/plugins/google-meet Check setup, then join a Meet URL. The setup command is agent-readable and mode/transport-aware. ```bash openclaw googlemeet setup openclaw googlemeet join https://meet.google.com/abc-defg-hij ``` -------------------------------- ### plugin-sdk/setup Source: https://docs.openclaw.ai/plugins/sdk-subpaths Shared setup wizard helpers, setup translator, allowlist prompts, and setup status builders. ```APIDOC ## plugin-sdk/setup ### Description Shared setup wizard helpers, setup translator, allowlist prompts, and setup status builders. ### Exports - Shared setup wizard helpers - setup translator - allowlist prompts - setup status builders ``` -------------------------------- ### Install OpenClaw with curl (macOS/Linux/WSL2) and PowerShell (Windows) Source: https://docs.openclaw.ai Installs OpenClaw on macOS/Linux/WSL2 (bash) and Windows (PowerShell). The installer detects the OS, installs Node if needed, installs OpenClaw, and starts onboarding. ```bash curl -fsSL https://openclaw.ai/install.sh | bash ``` ```powershell iwr -useb https://openclaw.ai/install.ps1 | iex ``` -------------------------------- ### OpenClaw config entry for installed Codex plugin Source: https://docs.openclaw.ai/plugins/codex-native-plugins Example configuration entry written by the install command for a plugin installed from a repository marketplace. The install command checks the authenticated owner or administrator before calling Codex plugin/install. ```json5 { plugins: { entries: { codex: { enabled: true, config: { codexPlugins: { enabled: true, plugins: { "security-review@company-tools": { enabled: true, marketplaceName: "company-tools", pluginName: "security-review", }, }, }, }, }, }, }, } ``` -------------------------------- ### Check plugin setup and run googlemeet setup Source: https://docs.openclaw.ai/plugins/google-meet/troubleshooting Verify the plugin is enabled and its runtime application succeeded, then check setup with these commands. ```bash openclaw plugins list | grep google-meet openclaw googlemeet setup ``` -------------------------------- ### Install a bundle from directory, archive, or marketplace Source: https://docs.openclaw.ai/plugins/bundles Use these commands to install a bundle from a local directory, an archive, or a marketplace. The `` placeholder is a local marketplace path/repo or a git/GitHub source. ```bash # Local directory openclaw plugins install ./my-bundle # Archive openclaw plugins install ./my-bundle.tgz # Claude marketplace openclaw plugins marketplace list openclaw plugins install --marketplace ``` -------------------------------- ### Install and verify VM audio dependencies (BlackHole, SoX) Source: https://docs.openclaw.ai/plugins/google-meet/transports Installs BlackHole 2ch and SoX in the Parallels macOS VM, then reboots to activate the audio driver and verifies that both are available. Run these commands before installing the plugin and starting the node host. ```bash brew install blackhole-2ch sox sudo reboot system_profiler SPAudioDataType | grep -i BlackHole command -v sox ``` -------------------------------- ### transcriptSources manifest example Source: https://docs.openclaw.ai/plugins/manifest/surfaces Example manifest JSON showing the transcriptSources field with a captions provider descriptor. The descriptor includes an optional name and an autoStart object advertising setup controls for accountId and meetingUrl. ```json { "contracts": { "transcriptSourceProviders": ["captions"] }, "transcriptSources": { "captions": { "name": "Captions", "autoStart": { "accountId": "optional", "meetingUrl": "required" } } } } ``` -------------------------------- ### Install and enable hook-demo plugin Source: https://docs.openclaw.ai/plugins/hooks Install the local hook-demo plugin directory with --link and --force (acknowledging local source), then enable it. Review local plugin code before loading because native plugins run in the Gateway process. ```bash openclaw plugins install --link ./hook-demo --force openclaw plugins enable hook-demo ``` -------------------------------- ### Pinned npm install configuration for openclaw.install Source: https://docs.openclaw.ai/plugins/sdk-setup Example JSON configuration for a pinned npm install, specifying the npmSpec, expectedIntegrity, and defaultChoice. Keep the exact version in npmSpec and add the expected artifact integrity. ```json { "openclaw": { "install": { "npmSpec": "@wecom/wecom-openclaw-plugin@1.2.3", "expectedIntegrity": "sha512-REPLACE_WITH_NPM_DIST_INTEGRITY", "defaultChoice": "npm" } } } ``` -------------------------------- ### Setup checks and join commands for meeting platforms Source: https://docs.openclaw.ai/plugins/meeting-plugins Run the setup check for each platform to verify configuration, then use the join command to join a meeting. Treat any failed setup check as a blocker for that transport and mode. ```bash openclaw googlemeet setup ``` ```bash openclaw googlemeet join 'https://meet.google.com/abc-defg-hij' ``` ```bash openclaw teamsmeetings setup ``` ```bash openclaw teamsmeetings join 'https://teams.microsoft.com/l/meetup-join/...' ``` ```bash openclaw slackhuddles setup ``` ```bash openclaw slackhuddles join 'channel:C0123ABCD' ``` ```bash openclaw zoommeetings setup ``` ```bash openclaw zoommeetings join 'https://zoom.us/j/1234567890' ``` -------------------------------- ### Channel plugin metadata JSON example Source: https://docs.openclaw.ai/plugins/architecture-internals/packaging Example JSON for a channel plugin's package.json metadata, advertising channel discovery and install hints via openclaw.channel and openclaw.install. Includes fields like id, label, aliases, npmSpec, and defaultChoice. ```json { "name": "@openclaw/nextcloud-talk", "openclaw": { "extensions": ["./index.ts"], "channel": { "id": "nextcloud-talk", "label": "Nextcloud Talk", "selectionLabel": "Nextcloud Talk (self-hosted)", "docsPath": "/channels/nextcloud-talk", "docsLabel": "nextcloud-talk", "blurb": "Self-hosted chat via Nextcloud Talk webhook bots.", "order": 65, "aliases": ["nc-talk", "nc"] }, "install": { "npmSpec": "@openclaw/nextcloud-talk", "localPath": "", "defaultChoice": "npm" } } } ``` -------------------------------- ### createOptionalChannelSetupWizard Source: https://docs.openclaw.ai/plugins/sdk-setup Lower-level builder for the optional setup wizard only. ```APIDOC ## createOptionalChannelSetupWizard ### Description Lower-level builder for the optional setup wizard only. ### Source `openclaw/plugin-sdk/channel-setup` ### Usage Use when you only need the wizard half of the optional-install surface. ``` -------------------------------- ### Noninteractive plugin commands with --accept-capabilities Source: https://docs.openclaw.ai/plugins/manage-plugins Use these commands when consent is required in noninteractive or silent setup. The --accept-capabilities flag explicitly approves new capabilities for install, update, and enable operations. ```bash openclaw plugins install clawhub: --accept-capabilities openclaw plugins update --accept-capabilities openclaw plugins enable --accept-capabilities ``` -------------------------------- ### Authenticate llama-cpp for local media setup Source: https://docs.openclaw.ai/plugins/llama-cpp Run on the Gateway host to set up managed local OCR and vision. Setup recommends separate OCR and vision recipes based on hardware, memory, runtime backend, and disk, and asks before downloading. Requires Linux x64 with CPU execution for automatic media setup; other backends wait for end-to-end verification. ```bash openclaw models auth login --provider llama-cpp --method local-media ``` -------------------------------- ### Run openclaw googlemeet setup and test-listen commands Source: https://docs.openclaw.ai/plugins/google-meet/oauth-and-artifacts Sets up the Google Meet extension with a Chrome node in transcribe mode, then tests listening to a specific meeting with a 30-second timeout. These commands run from any install. ```bash openclaw googlemeet setup --transport chrome-node --mode transcribe openclaw googlemeet test-listen https://meet.google.com/abc-defg-hij --transport chrome-node --timeout-ms 30000 ``` -------------------------------- ### Install and inspect a local plugin Source: https://docs.openclaw.ai/plugins/tool-plugins Installs the plugin from a local folder and inspects its runtime metadata. ```bash openclaw plugins install ./stock-quotes openclaw plugins inspect stock-quotes --runtime ``` -------------------------------- ### Undo sessions-only setup with openclaw node install --force --all-commands Source: https://docs.openclaw.ai/plugins/session-share Run for the service to forget the saved allowlist and restore the full default node surface. Use `openclaw node run --all-commands` for the foreground. ```bash openclaw node install --force --all-commands ``` -------------------------------- ### Undo sessions-only setup with openclaw node run --all-commands Source: https://docs.openclaw.ai/plugins/session-share Run in the foreground to forget the saved allowlist and restore the full default node surface. Use `openclaw node install --force --all-commands` for the service instead. ```bash openclaw node run --all-commands ``` -------------------------------- ### plugin-sdk/channel-setup Source: https://docs.openclaw.ai/plugins/sdk-subpaths Provides helpers for defining channel setup contracts and creating optional setup surfaces, adapters, and wizards. ```APIDOC ## plugin-sdk/channel-setup ### Description Exports helpers for defining channel setup contracts and creating optional setup surfaces, adapters, and wizards. ### Exports - `defineChannelSetupContract` - channel-owned setup field/input types - `createOptionalChannelSetupSurface` - `createOptionalChannelSetupAdapter` - `createOptionalChannelSetupWizard` - `DEFAULT_ACCOUNT_ID` - `createTopLevelChannelDmPolicy` - `setSetupChannelEnabled` - `splitSetupEntries` ```