{ "workspaceDir": "/Users/MWsatwareAG/.openclaw/workspace", "plugins": [ { "id": "acpx", "name": "ACPX Runtime", "description": "ACP runtime backend powered by acpx with configurable command path and version policy.", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/acpx/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configUiHints": { "command": { "label": "acpx Command", "help": "Optional path/command override for acpx (for example /home/user/repos/acpx/dist/cli.js). Leave unset to use plugin-local bundled acpx." }, "expectedVersion": { "label": "Expected acpx Version", "help": "Exact version to enforce (for example 0.1.15) or \"any\" to skip strict version matching." }, "cwd": { "label": "Default Working Directory", "help": "Default cwd for ACP session operations when not set per session." }, "permissionMode": { "label": "Permission Mode", "help": "Default acpx permission policy for runtime prompts." }, "nonInteractivePermissions": { "label": "Non-Interactive Permission Policy", "help": "acpx policy when interactive permission prompts are unavailable." }, "strictWindowsCmdWrapper": { "label": "Strict Windows cmd Wrapper", "help": "Enabled by default. On Windows, reject unresolved .cmd/.bat wrappers instead of shell fallback. Disable only for compatibility with non-standard wrappers.", "advanced": true }, "timeoutSeconds": { "label": "Prompt Timeout Seconds", "help": "Optional acpx timeout for each runtime turn.", "advanced": true }, "queueOwnerTtlSeconds": { "label": "Queue Owner TTL Seconds", "help": "Idle queue-owner TTL for acpx prompt turns. Keep this short in OpenClaw to avoid delayed completion after each turn.", "advanced": true }, "mcpServers": { "label": "MCP Servers", "help": "Named MCP server definitions to inject into ACPX-backed session bootstrap. Each entry needs a command and can include args and env.", "advanced": true } }, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": { "command": { "type": "string" }, "expectedVersion": { "type": "string" }, "cwd": { "type": "string" }, "permissionMode": { "type": "string", "enum": [ "approve-all", "approve-reads", "deny-all" ] }, "nonInteractivePermissions": { "type": "string", "enum": [ "deny", "fail" ] }, "strictWindowsCmdWrapper": { "type": "boolean" }, "timeoutSeconds": { "type": "number", "minimum": 0.001 }, "queueOwnerTtlSeconds": { "type": "number", "minimum": 0 }, "mcpServers": { "type": "object", "additionalProperties": { "type": "object", "properties": { "command": { "type": "string", "description": "Command to run the MCP server" }, "args": { "type": "array", "items": { "type": "string" }, "description": "Arguments to pass to the command" }, "env": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Environment variables for the MCP server" } }, "required": [ "command" ] } } } }, "error": "bundled (disabled by default)" }, { "id": "bluebubbles", "name": "@openclaw/bluebubbles", "description": "OpenClaw BlueBubbles channel plugin", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/bluebubbles/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "error": "bundled (disabled by default)" }, { "id": "copilot-proxy", "name": "@openclaw/copilot-proxy", "description": "OpenClaw Copilot Proxy provider plugin", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/copilot-proxy/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "error": "bundled (disabled by default)" }, { "id": "device-pair", "name": "Device Pairing", "description": "Generate setup codes and approve device pairing requests.", "source": "/usr/local/lib/node_modules/openclaw/extensions/device-pair/index.ts", "origin": "bundled", "enabled": true, "status": "loaded", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [ "device-pair-notifier" ], "commands": [ "pair" ], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configUiHints": { "publicUrl": { "label": "Gateway URL", "help": "Public WebSocket URL used for /pair setup codes (ws/wss or http/https)." } }, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": { "publicUrl": { "type": "string" } } } }, { "id": "diagnostics-otel", "name": "@openclaw/diagnostics-otel", "description": "OpenClaw diagnostics OpenTelemetry exporter", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/diagnostics-otel/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "error": "bundled (disabled by default)" }, { "id": "diffs", "name": "Diffs", "description": "Read-only diff viewer and file renderer for agents.", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/diffs/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configUiHints": { "defaults.fontFamily": { "label": "Default Font", "help": "Preferred font family name for diff content and headers." }, "defaults.fontSize": { "label": "Default Font Size", "help": "Base diff font size in pixels." }, "defaults.lineSpacing": { "label": "Default Line Spacing", "help": "Line-height multiplier applied to diff rows." }, "defaults.layout": { "label": "Default Layout", "help": "Initial diff layout shown in the viewer." }, "defaults.showLineNumbers": { "label": "Show Line Numbers", "help": "Show line numbers by default." }, "defaults.diffIndicators": { "label": "Diff Indicator Style", "help": "Choose added/removed indicators style." }, "defaults.wordWrap": { "label": "Default Word Wrap", "help": "Wrap long lines by default." }, "defaults.background": { "label": "Default Background Highlights", "help": "Show added/removed background highlights by default." }, "defaults.theme": { "label": "Default Theme", "help": "Initial viewer theme." }, "defaults.fileFormat": { "label": "Default File Format", "help": "Rendered file format for file mode (PNG or PDF)." }, "defaults.fileQuality": { "label": "Default File Quality", "help": "Quality preset for PNG/PDF rendering." }, "defaults.fileScale": { "label": "Default File Scale", "help": "Device scale factor used while rendering file artifacts." }, "defaults.fileMaxWidth": { "label": "Default File Max Width", "help": "Maximum file render width in CSS pixels." }, "defaults.mode": { "label": "Default Output Mode", "help": "Tool default when mode is omitted. Use view for canvas/gateway viewer, file for PNG/PDF, or both." }, "security.allowRemoteViewer": { "label": "Allow Remote Viewer", "help": "Allow non-loopback access to diff viewer URLs when the token path is known." } }, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": { "defaults": { "type": "object", "additionalProperties": false, "properties": { "fontFamily": { "type": "string", "default": "Fira Code" }, "fontSize": { "type": "number", "minimum": 10, "maximum": 24, "default": 15 }, "lineSpacing": { "type": "number", "minimum": 1, "maximum": 3, "default": 1.6 }, "layout": { "type": "string", "enum": [ "unified", "split" ], "default": "unified" }, "showLineNumbers": { "type": "boolean", "default": true }, "diffIndicators": { "type": "string", "enum": [ "bars", "classic", "none" ], "default": "bars" }, "wordWrap": { "type": "boolean", "default": true }, "background": { "type": "boolean", "default": true }, "theme": { "type": "string", "enum": [ "light", "dark" ], "default": "dark" }, "fileFormat": { "type": "string", "enum": [ "png", "pdf" ], "default": "png" }, "format": { "type": "string", "enum": [ "png", "pdf" ] }, "fileQuality": { "type": "string", "enum": [ "standard", "hq", "print" ], "default": "standard" }, "fileScale": { "type": "number", "minimum": 1, "maximum": 4, "default": 2 }, "fileMaxWidth": { "type": "number", "minimum": 640, "maximum": 2400, "default": 960 }, "imageFormat": { "type": "string", "enum": [ "png", "pdf" ] }, "imageQuality": { "type": "string", "enum": [ "standard", "hq", "print" ] }, "imageScale": { "type": "number", "minimum": 1, "maximum": 4 }, "imageMaxWidth": { "type": "number", "minimum": 640, "maximum": 2400 }, "mode": { "type": "string", "enum": [ "view", "image", "file", "both" ], "default": "both" } } }, "security": { "type": "object", "additionalProperties": false, "properties": { "allowRemoteViewer": { "type": "boolean", "default": false } } } } }, "error": "bundled (disabled by default)" }, { "id": "discord", "name": "@openclaw/discord", "description": "OpenClaw Discord channel plugin", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/discord/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "error": "bundled (disabled by default)" }, { "id": "feishu", "name": "@openclaw/feishu", "description": "OpenClaw Feishu/Lark channel plugin (community maintained by @m1heng)", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/feishu/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "error": "bundled (disabled by default)" }, { "id": "google-gemini-cli-auth", "name": "@openclaw/google-gemini-cli-auth", "description": "OpenClaw Gemini CLI OAuth provider plugin", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/google-gemini-cli-auth/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "error": "bundled (disabled by default)" }, { "id": "googlechat", "name": "@openclaw/googlechat", "description": "OpenClaw Google Chat channel plugin", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/googlechat/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "error": "bundled (disabled by default)" }, { "id": "imessage", "name": "@openclaw/imessage", "description": "OpenClaw iMessage channel plugin", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/imessage/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "error": "bundled (disabled by default)" }, { "id": "irc", "name": "@openclaw/irc", "description": "OpenClaw IRC channel plugin", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/irc/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "error": "bundled (disabled by default)" }, { "id": "line", "name": "@openclaw/line", "description": "OpenClaw LINE channel plugin", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/line/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "error": "bundled (disabled by default)" }, { "id": "llm-task", "name": "LLM Task", "description": "Generic JSON-only LLM tool for structured tasks callable from workflows.", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/llm-task/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": { "defaultProvider": { "type": "string" }, "defaultModel": { "type": "string" }, "defaultAuthProfileId": { "type": "string" }, "allowedModels": { "type": "array", "items": { "type": "string" }, "description": "Allowlist of provider/model keys like openai-codex/gpt-5.2." }, "maxTokens": { "type": "number" }, "timeoutMs": { "type": "number" } } }, "error": "bundled (disabled by default)" }, { "id": "lobster", "name": "Lobster", "description": "Typed workflow tool with resumable approvals.", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/lobster/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "error": "bundled (disabled by default)" }, { "id": "matrix", "name": "@openclaw/matrix", "description": "OpenClaw Matrix channel plugin", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/matrix/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "error": "bundled (disabled by default)" }, { "id": "mattermost", "name": "@openclaw/mattermost", "description": "OpenClaw Mattermost channel plugin", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/mattermost/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "error": "bundled (disabled by default)" }, { "id": "memory-core", "name": "Memory (Core)", "description": "File-backed memory search tools and CLI", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/memory-core/index.ts", "origin": "bundled", "enabled": true, "status": "loaded", "toolNames": [ "memory_search", "memory_get" ], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [ "memory" ], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "kind": "memory" }, { "id": "memory-lancedb", "name": "@openclaw/memory-lancedb", "description": "OpenClaw LanceDB-backed long-term memory plugin with auto-recall/capture", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/memory-lancedb/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configUiHints": { "embedding.apiKey": { "label": "OpenAI API Key", "sensitive": true, "placeholder": "sk-proj-...", "help": "API key for OpenAI embeddings (or use ${OPENAI_API_KEY})" }, "embedding.model": { "label": "Embedding Model", "placeholder": "text-embedding-3-small", "help": "OpenAI embedding model to use" }, "embedding.baseUrl": { "label": "Base URL", "placeholder": "https://api.openai.com/v1", "help": "Base URL for compatible providers (e.g. http://localhost:11434/v1)", "advanced": true }, "embedding.dimensions": { "label": "Dimensions", "placeholder": "1536", "help": "Vector dimensions for custom models (required for non-standard models)", "advanced": true }, "dbPath": { "label": "Database Path", "placeholder": "~/.openclaw/memory/lancedb", "advanced": true }, "autoCapture": { "label": "Auto-Capture", "help": "Automatically capture important information from conversations" }, "autoRecall": { "label": "Auto-Recall", "help": "Automatically inject relevant memories into context" }, "captureMaxChars": { "label": "Capture Max Chars", "help": "Maximum message length eligible for auto-capture", "advanced": true, "placeholder": "500" } }, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": { "embedding": { "type": "object", "additionalProperties": false, "properties": { "apiKey": { "type": "string" }, "model": { "type": "string" }, "baseUrl": { "type": "string" }, "dimensions": { "type": "number" } }, "required": [ "apiKey" ] }, "dbPath": { "type": "string" }, "autoCapture": { "type": "boolean" }, "autoRecall": { "type": "boolean" }, "captureMaxChars": { "type": "number", "minimum": 100, "maximum": 10000 } }, "required": [ "embedding" ] }, "kind": "memory", "error": "bundled (disabled by default)" }, { "id": "minimax-portal-auth", "name": "@openclaw/minimax-portal-auth", "description": "OpenClaw MiniMax Portal OAuth provider plugin", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/minimax-portal-auth/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "error": "bundled (disabled by default)" }, { "id": "msteams", "name": "@openclaw/msteams", "description": "OpenClaw Microsoft Teams channel plugin", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/msteams/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "error": "bundled (disabled by default)" }, { "id": "nextcloud-talk", "name": "@openclaw/nextcloud-talk", "description": "OpenClaw Nextcloud Talk channel plugin", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/nextcloud-talk/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "error": "bundled (disabled by default)" }, { "id": "nostr", "name": "@openclaw/nostr", "description": "OpenClaw Nostr channel plugin for NIP-04 encrypted DMs", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/nostr/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "error": "bundled (disabled by default)" }, { "id": "open-prose", "name": "OpenProse", "description": "OpenProse VM skill pack with a /prose slash command.", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/open-prose/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "error": "bundled (disabled by default)" }, { "id": "phone-control", "name": "Phone Control", "description": "Arm/disarm high-risk phone node commands (camera/screen/writes) with an optional auto-expiry.", "source": "/usr/local/lib/node_modules/openclaw/extensions/phone-control/index.ts", "origin": "bundled", "enabled": true, "status": "loaded", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [ "phone-control-expiry" ], "commands": [ "phone" ], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} } }, { "id": "qwen-portal-auth", "name": "qwen-portal-auth", "source": "/usr/local/lib/node_modules/openclaw/extensions/qwen-portal-auth/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "error": "bundled (disabled by default)" }, { "id": "signal", "name": "@openclaw/signal", "description": "OpenClaw Signal channel plugin", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/signal/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "error": "bundled (disabled by default)" }, { "id": "slack", "name": "@openclaw/slack", "description": "OpenClaw Slack channel plugin", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/slack/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "error": "bundled (disabled by default)" }, { "id": "synology-chat", "name": "@openclaw/synology-chat", "description": "Synology Chat channel plugin for OpenClaw", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/synology-chat/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "error": "bundled (disabled by default)" }, { "id": "talk-voice", "name": "Talk Voice", "description": "Manage Talk voice selection (list/set).", "source": "/usr/local/lib/node_modules/openclaw/extensions/talk-voice/index.ts", "origin": "bundled", "enabled": true, "status": "loaded", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [ "voice" ], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} } }, { "id": "telegram", "name": "@openclaw/telegram", "description": "OpenClaw Telegram channel plugin", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/telegram/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "error": "bundled (disabled by default)" }, { "id": "thread-ownership", "name": "Thread Ownership", "description": "Prevents multiple agents from responding in the same Slack thread. Uses HTTP calls to the slack-forwarder ownership API.", "source": "/usr/local/lib/node_modules/openclaw/extensions/thread-ownership/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configUiHints": { "forwarderUrl": { "label": "Forwarder URL", "help": "Base URL of the slack-forwarder ownership API (default: http://slack-forwarder:8750)" }, "abTestChannels": { "label": "A/B Test Channels", "help": "Slack channel IDs where thread ownership is enforced" } }, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": { "forwarderUrl": { "type": "string" }, "abTestChannels": { "type": "array", "items": { "type": "string" } } } }, "error": "bundled (disabled by default)" }, { "id": "tlon", "name": "@openclaw/tlon", "description": "OpenClaw Tlon/Urbit channel plugin", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/tlon/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "error": "bundled (disabled by default)" }, { "id": "twitch", "name": "@openclaw/twitch", "description": "OpenClaw Twitch channel plugin", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/twitch/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "error": "bundled (disabled by default)" }, { "id": "voice-call", "name": "@openclaw/voice-call", "description": "OpenClaw voice-call plugin", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/voice-call/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configUiHints": { "provider": { "label": "Provider", "help": "Use twilio, telnyx, or mock for dev/no-network." }, "fromNumber": { "label": "From Number", "placeholder": "+15550001234" }, "toNumber": { "label": "Default To Number", "placeholder": "+15550001234" }, "inboundPolicy": { "label": "Inbound Policy" }, "allowFrom": { "label": "Inbound Allowlist" }, "inboundGreeting": { "label": "Inbound Greeting", "advanced": true }, "telnyx.apiKey": { "label": "Telnyx API Key", "sensitive": true }, "telnyx.connectionId": { "label": "Telnyx Connection ID" }, "telnyx.publicKey": { "label": "Telnyx Public Key", "sensitive": true }, "twilio.accountSid": { "label": "Twilio Account SID" }, "twilio.authToken": { "label": "Twilio Auth Token", "sensitive": true }, "outbound.defaultMode": { "label": "Default Call Mode" }, "outbound.notifyHangupDelaySec": { "label": "Notify Hangup Delay (sec)", "advanced": true }, "serve.port": { "label": "Webhook Port" }, "serve.bind": { "label": "Webhook Bind" }, "serve.path": { "label": "Webhook Path" }, "tailscale.mode": { "label": "Tailscale Mode", "advanced": true }, "tailscale.path": { "label": "Tailscale Path", "advanced": true }, "tunnel.provider": { "label": "Tunnel Provider", "advanced": true }, "tunnel.ngrokAuthToken": { "label": "ngrok Auth Token", "sensitive": true, "advanced": true }, "tunnel.ngrokDomain": { "label": "ngrok Domain", "advanced": true }, "tunnel.allowNgrokFreeTierLoopbackBypass": { "label": "Allow ngrok Free Tier (Loopback Bypass)", "advanced": true }, "streaming.enabled": { "label": "Enable Streaming", "advanced": true }, "streaming.openaiApiKey": { "label": "OpenAI Realtime API Key", "sensitive": true, "advanced": true }, "streaming.sttModel": { "label": "Realtime STT Model", "advanced": true }, "streaming.streamPath": { "label": "Media Stream Path", "advanced": true }, "tts.provider": { "label": "TTS Provider Override", "help": "Deep-merges with messages.tts (Edge is ignored for calls).", "advanced": true }, "tts.openai.model": { "label": "OpenAI TTS Model", "advanced": true }, "tts.openai.voice": { "label": "OpenAI TTS Voice", "advanced": true }, "tts.openai.apiKey": { "label": "OpenAI API Key", "sensitive": true, "advanced": true }, "tts.elevenlabs.modelId": { "label": "ElevenLabs Model ID", "advanced": true }, "tts.elevenlabs.voiceId": { "label": "ElevenLabs Voice ID", "advanced": true }, "tts.elevenlabs.apiKey": { "label": "ElevenLabs API Key", "sensitive": true, "advanced": true }, "tts.elevenlabs.baseUrl": { "label": "ElevenLabs Base URL", "advanced": true }, "publicUrl": { "label": "Public Webhook URL", "advanced": true }, "skipSignatureVerification": { "label": "Skip Signature Verification", "advanced": true }, "store": { "label": "Call Log Store Path", "advanced": true }, "responseModel": { "label": "Response Model", "advanced": true }, "responseSystemPrompt": { "label": "Response System Prompt", "advanced": true }, "responseTimeoutMs": { "label": "Response Timeout (ms)", "advanced": true } }, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": { "enabled": { "type": "boolean" }, "provider": { "type": "string", "enum": [ "telnyx", "twilio", "plivo", "mock" ] }, "telnyx": { "type": "object", "additionalProperties": false, "properties": { "apiKey": { "type": "string" }, "connectionId": { "type": "string" }, "publicKey": { "type": "string" } } }, "twilio": { "type": "object", "additionalProperties": false, "properties": { "accountSid": { "type": "string" }, "authToken": { "type": "string" } } }, "plivo": { "type": "object", "additionalProperties": false, "properties": { "authId": { "type": "string" }, "authToken": { "type": "string" } } }, "fromNumber": { "type": "string", "pattern": "^\\+[1-9]\\d{1,14}$" }, "toNumber": { "type": "string", "pattern": "^\\+[1-9]\\d{1,14}$" }, "inboundPolicy": { "type": "string", "enum": [ "disabled", "allowlist", "pairing", "open" ] }, "allowFrom": { "type": "array", "items": { "type": "string", "pattern": "^\\+[1-9]\\d{1,14}$" } }, "inboundGreeting": { "type": "string" }, "outbound": { "type": "object", "additionalProperties": false, "properties": { "defaultMode": { "type": "string", "enum": [ "notify", "conversation" ] }, "notifyHangupDelaySec": { "type": "integer", "minimum": 0 } } }, "maxDurationSeconds": { "type": "integer", "minimum": 1 }, "staleCallReaperSeconds": { "type": "integer", "minimum": 0 }, "silenceTimeoutMs": { "type": "integer", "minimum": 1 }, "transcriptTimeoutMs": { "type": "integer", "minimum": 1 }, "ringTimeoutMs": { "type": "integer", "minimum": 1 }, "maxConcurrentCalls": { "type": "integer", "minimum": 1 }, "serve": { "type": "object", "additionalProperties": false, "properties": { "port": { "type": "integer", "minimum": 1 }, "bind": { "type": "string" }, "path": { "type": "string" } } }, "tailscale": { "type": "object", "additionalProperties": false, "properties": { "mode": { "type": "string", "enum": [ "off", "serve", "funnel" ] }, "path": { "type": "string" } } }, "tunnel": { "type": "object", "additionalProperties": false, "properties": { "provider": { "type": "string", "enum": [ "none", "ngrok", "tailscale-serve", "tailscale-funnel" ] }, "ngrokAuthToken": { "type": "string" }, "ngrokDomain": { "type": "string" }, "allowNgrokFreeTierLoopbackBypass": { "type": "boolean" } } }, "webhookSecurity": { "type": "object", "additionalProperties": false, "properties": { "allowedHosts": { "type": "array", "items": { "type": "string" } }, "trustForwardingHeaders": { "type": "boolean" }, "trustedProxyIPs": { "type": "array", "items": { "type": "string" } } } }, "streaming": { "type": "object", "additionalProperties": false, "properties": { "enabled": { "type": "boolean" }, "sttProvider": { "type": "string", "enum": [ "openai-realtime" ] }, "openaiApiKey": { "type": "string" }, "sttModel": { "type": "string" }, "silenceDurationMs": { "type": "integer", "minimum": 1 }, "vadThreshold": { "type": "number", "minimum": 0, "maximum": 1 }, "streamPath": { "type": "string" }, "preStartTimeoutMs": { "type": "integer", "minimum": 1 }, "maxPendingConnections": { "type": "integer", "minimum": 1 }, "maxPendingConnectionsPerIp": { "type": "integer", "minimum": 1 }, "maxConnections": { "type": "integer", "minimum": 1 } } }, "publicUrl": { "type": "string" }, "skipSignatureVerification": { "type": "boolean" }, "stt": { "type": "object", "additionalProperties": false, "properties": { "provider": { "type": "string", "enum": [ "openai" ] }, "model": { "type": "string" } } }, "tts": { "type": "object", "additionalProperties": false, "properties": { "auto": { "type": "string", "enum": [ "off", "always", "inbound", "tagged" ] }, "enabled": { "type": "boolean" }, "mode": { "type": "string", "enum": [ "final", "all" ] }, "provider": { "type": "string", "enum": [ "openai", "elevenlabs", "edge" ] }, "summaryModel": { "type": "string" }, "modelOverrides": { "type": "object", "additionalProperties": false, "properties": { "enabled": { "type": "boolean" }, "allowText": { "type": "boolean" }, "allowProvider": { "type": "boolean" }, "allowVoice": { "type": "boolean" }, "allowModelId": { "type": "boolean" }, "allowVoiceSettings": { "type": "boolean" }, "allowNormalization": { "type": "boolean" }, "allowSeed": { "type": "boolean" } } }, "elevenlabs": { "type": "object", "additionalProperties": false, "properties": { "apiKey": { "type": "string" }, "baseUrl": { "type": "string" }, "voiceId": { "type": "string" }, "modelId": { "type": "string" }, "seed": { "type": "integer", "minimum": 0, "maximum": 4294967295 }, "applyTextNormalization": { "type": "string", "enum": [ "auto", "on", "off" ] }, "languageCode": { "type": "string" }, "voiceSettings": { "type": "object", "additionalProperties": false, "properties": { "stability": { "type": "number", "minimum": 0, "maximum": 1 }, "similarityBoost": { "type": "number", "minimum": 0, "maximum": 1 }, "style": { "type": "number", "minimum": 0, "maximum": 1 }, "useSpeakerBoost": { "type": "boolean" }, "speed": { "type": "number", "minimum": 0.5, "maximum": 2 } } } } }, "openai": { "type": "object", "additionalProperties": false, "properties": { "apiKey": { "type": "string" }, "model": { "type": "string" }, "voice": { "type": "string" } } }, "edge": { "type": "object", "additionalProperties": false, "properties": { "enabled": { "type": "boolean" }, "voice": { "type": "string" }, "lang": { "type": "string" }, "outputFormat": { "type": "string" }, "pitch": { "type": "string" }, "rate": { "type": "string" }, "volume": { "type": "string" }, "saveSubtitles": { "type": "boolean" }, "proxy": { "type": "string" }, "timeoutMs": { "type": "integer", "minimum": 1000, "maximum": 120000 } } }, "prefsPath": { "type": "string" }, "maxTextLength": { "type": "integer", "minimum": 1 }, "timeoutMs": { "type": "integer", "minimum": 1000, "maximum": 120000 } } }, "store": { "type": "string" }, "responseModel": { "type": "string" }, "responseSystemPrompt": { "type": "string" }, "responseTimeoutMs": { "type": "integer", "minimum": 1 } } }, "error": "bundled (disabled by default)" }, { "id": "whatsapp", "name": "@openclaw/whatsapp", "description": "OpenClaw WhatsApp channel plugin", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/whatsapp/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "error": "bundled (disabled by default)" }, { "id": "zalo", "name": "@openclaw/zalo", "description": "OpenClaw Zalo channel plugin", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/zalo/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "error": "bundled (disabled by default)" }, { "id": "zalouser", "name": "@openclaw/zalouser", "description": "OpenClaw Zalo Personal Account plugin via native zca-js integration", "version": "2026.3.8-beta.1", "source": "/usr/local/lib/node_modules/openclaw/extensions/zalouser/index.ts", "origin": "bundled", "enabled": false, "status": "disabled", "toolNames": [], "hookNames": [], "channelIds": [], "providerIds": [], "gatewayMethods": [], "cliCommands": [], "services": [], "commands": [], "httpRoutes": 0, "hookCount": 0, "configSchema": true, "configJsonSchema": { "type": "object", "additionalProperties": false, "properties": {} }, "error": "bundled (disabled by default)" } ], "diagnostics": [] }