mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-24 16:32:29 +00:00
Add Standard API Key auth methods for China (dashscope.aliyuncs.com) and Global/Intl (dashscope-intl.aliyuncs.com) pay-as-you-go endpoints alongside the existing Coding Plan (subscription) endpoints. Also updates group label to 'Qwen (Alibaba Cloud Model Studio)' and fixes glm-4.7 -> glm-5 in Coding Plan note messages. Co-authored-by: wenmeng zhou <wenmengzhou@users.noreply.github.com>
4222 lines
113 KiB
TypeScript
4222 lines
113 KiB
TypeScript
// Auto-generated by scripts/generate-bundled-plugin-metadata.mjs. Do not edit directly.
|
|
|
|
export const GENERATED_BUNDLED_PLUGIN_METADATA = [
|
|
{
|
|
dirName: "acpx",
|
|
idHint: "acpx",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/acpx",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw ACP runtime backend via acpx",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "acpx",
|
|
configSchema: {
|
|
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"],
|
|
},
|
|
},
|
|
},
|
|
},
|
|
skills: ["./skills"],
|
|
name: "ACPX Runtime",
|
|
description:
|
|
"ACP runtime backend powered by acpx with configurable command path and version policy.",
|
|
uiHints: {
|
|
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 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,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
dirName: "amazon-bedrock",
|
|
idHint: "amazon-bedrock",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/amazon-bedrock-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Amazon Bedrock provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "amazon-bedrock",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["amazon-bedrock"],
|
|
},
|
|
},
|
|
{
|
|
dirName: "anthropic",
|
|
idHint: "anthropic",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/anthropic-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Anthropic provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "anthropic",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["anthropic"],
|
|
providerAuthEnvVars: {
|
|
anthropic: ["ANTHROPIC_OAUTH_TOKEN", "ANTHROPIC_API_KEY"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "anthropic",
|
|
method: "setup-token",
|
|
choiceId: "token",
|
|
choiceLabel: "Anthropic token (paste setup-token)",
|
|
choiceHint: "Run `claude setup-token` elsewhere, then paste the token here",
|
|
groupId: "anthropic",
|
|
groupLabel: "Anthropic",
|
|
groupHint: "setup-token + API key",
|
|
},
|
|
{
|
|
provider: "anthropic",
|
|
method: "api-key",
|
|
choiceId: "apiKey",
|
|
choiceLabel: "Anthropic API key",
|
|
groupId: "anthropic",
|
|
groupLabel: "Anthropic",
|
|
groupHint: "setup-token + API key",
|
|
optionKey: "anthropicApiKey",
|
|
cliFlag: "--anthropic-api-key",
|
|
cliOption: "--anthropic-api-key <key>",
|
|
cliDescription: "Anthropic API key",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "bluebubbles",
|
|
idHint: "bluebubbles",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
setupSource: {
|
|
source: "./setup-entry.ts",
|
|
built: "setup-entry.js",
|
|
},
|
|
packageName: "@openclaw/bluebubbles",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw BlueBubbles channel plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
setupEntry: "./setup-entry.ts",
|
|
channel: {
|
|
id: "bluebubbles",
|
|
label: "BlueBubbles",
|
|
selectionLabel: "BlueBubbles (macOS app)",
|
|
detailLabel: "BlueBubbles",
|
|
docsPath: "/channels/bluebubbles",
|
|
docsLabel: "bluebubbles",
|
|
blurb: "iMessage via the BlueBubbles mac app + REST API.",
|
|
aliases: ["bb"],
|
|
preferOver: ["imessage"],
|
|
systemImage: "bubble.left.and.text.bubble.right",
|
|
order: 75,
|
|
},
|
|
install: {
|
|
npmSpec: "@openclaw/bluebubbles",
|
|
localPath: "extensions/bluebubbles",
|
|
defaultChoice: "npm",
|
|
minHostVersion: ">=2026.3.22",
|
|
},
|
|
},
|
|
manifest: {
|
|
id: "bluebubbles",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
channels: ["bluebubbles"],
|
|
},
|
|
},
|
|
{
|
|
dirName: "brave",
|
|
idHint: "brave-plugin",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/brave-plugin",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Brave plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "brave",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {
|
|
webSearch: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {
|
|
apiKey: {
|
|
type: ["string", "object"],
|
|
},
|
|
mode: {
|
|
type: "string",
|
|
enum: ["web", "llm-context"],
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
providerAuthEnvVars: {
|
|
brave: ["BRAVE_API_KEY"],
|
|
},
|
|
uiHints: {
|
|
"webSearch.apiKey": {
|
|
label: "Brave Search API Key",
|
|
help: "Brave Search API key (fallback: BRAVE_API_KEY env var).",
|
|
sensitive: true,
|
|
placeholder: "BSA...",
|
|
},
|
|
"webSearch.mode": {
|
|
label: "Brave Search Mode",
|
|
help: "Brave Search mode: web or llm-context.",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
dirName: "byteplus",
|
|
idHint: "byteplus",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/byteplus-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw BytePlus provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "byteplus",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["byteplus", "byteplus-plan"],
|
|
providerAuthEnvVars: {
|
|
byteplus: ["BYTEPLUS_API_KEY"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "byteplus",
|
|
method: "api-key",
|
|
choiceId: "byteplus-api-key",
|
|
choiceLabel: "BytePlus API key",
|
|
groupId: "byteplus",
|
|
groupLabel: "BytePlus",
|
|
groupHint: "API key",
|
|
optionKey: "byteplusApiKey",
|
|
cliFlag: "--byteplus-api-key",
|
|
cliOption: "--byteplus-api-key <key>",
|
|
cliDescription: "BytePlus API key",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "chutes",
|
|
idHint: "chutes",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/chutes-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Chutes.ai provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "chutes",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
enabledByDefault: true,
|
|
providers: ["chutes"],
|
|
providerAuthEnvVars: {
|
|
chutes: ["CHUTES_API_KEY", "CHUTES_OAUTH_TOKEN"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "chutes",
|
|
method: "oauth",
|
|
choiceId: "chutes",
|
|
choiceLabel: "Chutes (OAuth)",
|
|
choiceHint: "Browser sign-in",
|
|
groupId: "chutes",
|
|
groupLabel: "Chutes",
|
|
groupHint: "OAuth + API key",
|
|
},
|
|
{
|
|
provider: "chutes",
|
|
method: "api-key",
|
|
choiceId: "chutes-api-key",
|
|
choiceLabel: "Chutes API key",
|
|
choiceHint: "Open-source models including Llama, DeepSeek, and more",
|
|
groupId: "chutes",
|
|
groupLabel: "Chutes",
|
|
groupHint: "OAuth + API key",
|
|
optionKey: "chutesApiKey",
|
|
cliFlag: "--chutes-api-key",
|
|
cliOption: "--chutes-api-key <key>",
|
|
cliDescription: "Chutes API key",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "cloudflare-ai-gateway",
|
|
idHint: "cloudflare-ai-gateway",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/cloudflare-ai-gateway-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Cloudflare AI Gateway provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "cloudflare-ai-gateway",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["cloudflare-ai-gateway"],
|
|
providerAuthEnvVars: {
|
|
"cloudflare-ai-gateway": ["CLOUDFLARE_AI_GATEWAY_API_KEY"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "cloudflare-ai-gateway",
|
|
method: "api-key",
|
|
choiceId: "cloudflare-ai-gateway-api-key",
|
|
choiceLabel: "Cloudflare AI Gateway",
|
|
choiceHint: "Account ID + Gateway ID + API key",
|
|
groupId: "cloudflare-ai-gateway",
|
|
groupLabel: "Cloudflare AI Gateway",
|
|
groupHint: "Account ID + Gateway ID + API key",
|
|
optionKey: "cloudflareAiGatewayApiKey",
|
|
cliFlag: "--cloudflare-ai-gateway-api-key",
|
|
cliOption: "--cloudflare-ai-gateway-api-key <key>",
|
|
cliDescription: "Cloudflare AI Gateway API key",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "copilot-proxy",
|
|
idHint: "copilot-proxy",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/copilot-proxy",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Copilot Proxy provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "copilot-proxy",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["copilot-proxy"],
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "copilot-proxy",
|
|
method: "local",
|
|
choiceId: "copilot-proxy",
|
|
choiceLabel: "Copilot Proxy",
|
|
choiceHint: "Configure base URL + model ids",
|
|
groupId: "copilot",
|
|
groupLabel: "Copilot",
|
|
groupHint: "GitHub + local proxy",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "deepgram",
|
|
idHint: "deepgram",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/deepgram-provider",
|
|
packageVersion: "2026.3.14",
|
|
packageDescription: "OpenClaw Deepgram media-understanding provider",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "deepgram",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
dirName: "deepseek",
|
|
idHint: "deepseek",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/deepseek-provider",
|
|
packageVersion: "2026.3.14",
|
|
packageDescription: "OpenClaw DeepSeek provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "deepseek",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["deepseek"],
|
|
providerAuthEnvVars: {
|
|
deepseek: ["DEEPSEEK_API_KEY"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "deepseek",
|
|
method: "api-key",
|
|
choiceId: "deepseek-api-key",
|
|
choiceLabel: "DeepSeek API key",
|
|
groupId: "deepseek",
|
|
groupLabel: "DeepSeek",
|
|
groupHint: "API key",
|
|
optionKey: "deepseekApiKey",
|
|
cliFlag: "--deepseek-api-key",
|
|
cliOption: "--deepseek-api-key <key>",
|
|
cliDescription: "DeepSeek API key",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "diagnostics-otel",
|
|
idHint: "diagnostics-otel",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/diagnostics-otel",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw diagnostics OpenTelemetry exporter",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "diagnostics-otel",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
dirName: "diffs",
|
|
idHint: "diffs",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/diffs",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw diff viewer plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "diffs",
|
|
configSchema: {
|
|
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,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
skills: ["./skills"],
|
|
name: "Diffs",
|
|
description: "Read-only diff viewer and file renderer for agents.",
|
|
uiHints: {
|
|
"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.",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
dirName: "discord",
|
|
idHint: "discord",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
setupSource: {
|
|
source: "./setup-entry.ts",
|
|
built: "setup-entry.js",
|
|
},
|
|
packageName: "@openclaw/discord",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Discord channel plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
setupEntry: "./setup-entry.ts",
|
|
channel: {
|
|
id: "discord",
|
|
label: "Discord",
|
|
selectionLabel: "Discord (Bot API)",
|
|
detailLabel: "Discord Bot",
|
|
docsPath: "/channels/discord",
|
|
docsLabel: "discord",
|
|
blurb: "very well supported right now.",
|
|
systemImage: "bubble.left.and.bubble.right",
|
|
},
|
|
install: {
|
|
npmSpec: "@openclaw/discord",
|
|
localPath: "extensions/discord",
|
|
defaultChoice: "npm",
|
|
minHostVersion: ">=2026.3.22",
|
|
},
|
|
},
|
|
manifest: {
|
|
id: "discord",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
channels: ["discord"],
|
|
},
|
|
},
|
|
{
|
|
dirName: "duckduckgo",
|
|
idHint: "duckduckgo-plugin",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/duckduckgo-plugin",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw DuckDuckGo plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "duckduckgo",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {
|
|
webSearch: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {
|
|
region: {
|
|
type: "string",
|
|
},
|
|
safeSearch: {
|
|
type: "string",
|
|
enum: ["strict", "moderate", "off"],
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
uiHints: {
|
|
"webSearch.region": {
|
|
label: "DuckDuckGo Region",
|
|
help: "Optional DuckDuckGo region code such as us-en, uk-en, or de-de.",
|
|
},
|
|
"webSearch.safeSearch": {
|
|
label: "DuckDuckGo SafeSearch",
|
|
help: "SafeSearch level for DuckDuckGo results.",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
dirName: "elevenlabs",
|
|
idHint: "elevenlabs",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/elevenlabs-speech",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw ElevenLabs speech plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "elevenlabs",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
dirName: "exa",
|
|
idHint: "exa-plugin",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/exa-plugin",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Exa plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "exa",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {
|
|
webSearch: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {
|
|
apiKey: {
|
|
type: ["string", "object"],
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
providerAuthEnvVars: {
|
|
exa: ["EXA_API_KEY"],
|
|
},
|
|
uiHints: {
|
|
"webSearch.apiKey": {
|
|
label: "Exa API Key",
|
|
help: "Exa Search API key (fallback: EXA_API_KEY env var).",
|
|
sensitive: true,
|
|
placeholder: "exa-...",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
dirName: "fal",
|
|
idHint: "fal",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/fal-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw fal provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "fal",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["fal"],
|
|
providerAuthEnvVars: {
|
|
fal: ["FAL_KEY"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "fal",
|
|
method: "api-key",
|
|
choiceId: "fal-api-key",
|
|
choiceLabel: "fal API key",
|
|
groupId: "fal",
|
|
groupLabel: "fal",
|
|
groupHint: "Image generation",
|
|
onboardingScopes: ["image-generation"],
|
|
optionKey: "falApiKey",
|
|
cliFlag: "--fal-api-key",
|
|
cliOption: "--fal-api-key <key>",
|
|
cliDescription: "fal API key",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "feishu",
|
|
idHint: "feishu",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
setupSource: {
|
|
source: "./setup-entry.ts",
|
|
built: "setup-entry.js",
|
|
},
|
|
packageName: "@openclaw/feishu",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Feishu/Lark channel plugin (community maintained by @m1heng)",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
setupEntry: "./setup-entry.ts",
|
|
channel: {
|
|
id: "feishu",
|
|
label: "Feishu",
|
|
selectionLabel: "Feishu/Lark (飞书)",
|
|
docsPath: "/channels/feishu",
|
|
docsLabel: "feishu",
|
|
blurb: "飞书/Lark enterprise messaging with doc/wiki/drive tools.",
|
|
aliases: ["lark"],
|
|
order: 35,
|
|
quickstartAllowFrom: true,
|
|
},
|
|
install: {
|
|
npmSpec: "@openclaw/feishu",
|
|
localPath: "extensions/feishu",
|
|
defaultChoice: "npm",
|
|
minHostVersion: ">=2026.3.22",
|
|
},
|
|
},
|
|
manifest: {
|
|
id: "feishu",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
channels: ["feishu"],
|
|
skills: ["./skills"],
|
|
},
|
|
},
|
|
{
|
|
dirName: "firecrawl",
|
|
idHint: "firecrawl-plugin",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/firecrawl-plugin",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Firecrawl plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "firecrawl",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {
|
|
webSearch: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {
|
|
apiKey: {
|
|
type: ["string", "object"],
|
|
},
|
|
baseUrl: {
|
|
type: "string",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
providerAuthEnvVars: {
|
|
firecrawl: ["FIRECRAWL_API_KEY"],
|
|
},
|
|
uiHints: {
|
|
"webSearch.apiKey": {
|
|
label: "Firecrawl Search API Key",
|
|
help: "Firecrawl API key for web search (fallback: FIRECRAWL_API_KEY env var).",
|
|
sensitive: true,
|
|
placeholder: "fc-...",
|
|
},
|
|
"webSearch.baseUrl": {
|
|
label: "Firecrawl Search Base URL",
|
|
help: "Firecrawl Search base URL override.",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
dirName: "github-copilot",
|
|
idHint: "github-copilot",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/github-copilot-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw GitHub Copilot provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "github-copilot",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["github-copilot"],
|
|
providerAuthEnvVars: {
|
|
"github-copilot": ["COPILOT_GITHUB_TOKEN", "GH_TOKEN", "GITHUB_TOKEN"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "github-copilot",
|
|
method: "device",
|
|
choiceId: "github-copilot",
|
|
choiceLabel: "GitHub Copilot",
|
|
choiceHint: "Device login with your GitHub account",
|
|
groupId: "copilot",
|
|
groupLabel: "Copilot",
|
|
groupHint: "GitHub + local proxy",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "google",
|
|
idHint: "google-plugin",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/google-plugin",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Google plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "google",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {
|
|
webSearch: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {
|
|
apiKey: {
|
|
type: ["string", "object"],
|
|
},
|
|
model: {
|
|
type: "string",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
providers: ["google", "google-gemini-cli"],
|
|
providerAuthEnvVars: {
|
|
google: ["GEMINI_API_KEY", "GOOGLE_API_KEY"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "google",
|
|
method: "api-key",
|
|
choiceId: "gemini-api-key",
|
|
choiceLabel: "Google Gemini API key",
|
|
groupId: "google",
|
|
groupLabel: "Google",
|
|
groupHint: "Gemini API key + OAuth",
|
|
optionKey: "geminiApiKey",
|
|
cliFlag: "--gemini-api-key",
|
|
cliOption: "--gemini-api-key <key>",
|
|
cliDescription: "Gemini API key",
|
|
},
|
|
{
|
|
provider: "google-gemini-cli",
|
|
method: "oauth",
|
|
choiceId: "google-gemini-cli",
|
|
choiceLabel: "Gemini CLI OAuth",
|
|
choiceHint: "Google OAuth with project-aware token payload",
|
|
groupId: "google",
|
|
groupLabel: "Google",
|
|
groupHint: "Gemini API key + OAuth",
|
|
},
|
|
],
|
|
uiHints: {
|
|
"webSearch.apiKey": {
|
|
label: "Gemini Search API Key",
|
|
help: "Gemini API key for Google Search grounding (fallback: GEMINI_API_KEY env var).",
|
|
sensitive: true,
|
|
placeholder: "AIza...",
|
|
},
|
|
"webSearch.model": {
|
|
label: "Gemini Search Model",
|
|
help: "Gemini model override for web search grounding.",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
dirName: "googlechat",
|
|
idHint: "googlechat",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
setupSource: {
|
|
source: "./setup-entry.ts",
|
|
built: "setup-entry.js",
|
|
},
|
|
packageName: "@openclaw/googlechat",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Google Chat channel plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
setupEntry: "./setup-entry.ts",
|
|
channel: {
|
|
id: "googlechat",
|
|
label: "Google Chat",
|
|
selectionLabel: "Google Chat (Chat API)",
|
|
detailLabel: "Google Chat",
|
|
docsPath: "/channels/googlechat",
|
|
docsLabel: "googlechat",
|
|
blurb: "Google Workspace Chat app via HTTP webhooks.",
|
|
aliases: ["gchat", "google-chat"],
|
|
order: 55,
|
|
},
|
|
install: {
|
|
npmSpec: "@openclaw/googlechat",
|
|
localPath: "extensions/googlechat",
|
|
defaultChoice: "npm",
|
|
minHostVersion: ">=2026.3.22",
|
|
},
|
|
},
|
|
manifest: {
|
|
id: "googlechat",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
channels: ["googlechat"],
|
|
},
|
|
},
|
|
{
|
|
dirName: "groq",
|
|
idHint: "groq",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/groq-provider",
|
|
packageVersion: "2026.3.14",
|
|
packageDescription: "OpenClaw Groq media-understanding provider",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "groq",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
dirName: "huggingface",
|
|
idHint: "huggingface",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/huggingface-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Hugging Face provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "huggingface",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["huggingface"],
|
|
providerAuthEnvVars: {
|
|
huggingface: ["HUGGINGFACE_HUB_TOKEN", "HF_TOKEN"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "huggingface",
|
|
method: "api-key",
|
|
choiceId: "huggingface-api-key",
|
|
choiceLabel: "Hugging Face API key",
|
|
choiceHint: "Inference API (HF token)",
|
|
groupId: "huggingface",
|
|
groupLabel: "Hugging Face",
|
|
groupHint: "Inference API (HF token)",
|
|
optionKey: "huggingfaceApiKey",
|
|
cliFlag: "--huggingface-api-key",
|
|
cliOption: "--huggingface-api-key <key>",
|
|
cliDescription: "Hugging Face API key (HF token)",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "imessage",
|
|
idHint: "imessage",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
setupSource: {
|
|
source: "./setup-entry.ts",
|
|
built: "setup-entry.js",
|
|
},
|
|
packageName: "@openclaw/imessage",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw iMessage channel plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
setupEntry: "./setup-entry.ts",
|
|
channel: {
|
|
id: "imessage",
|
|
label: "iMessage",
|
|
selectionLabel: "iMessage (imsg)",
|
|
detailLabel: "iMessage",
|
|
docsPath: "/channels/imessage",
|
|
docsLabel: "imessage",
|
|
blurb: "this is still a work in progress.",
|
|
aliases: ["imsg"],
|
|
systemImage: "message.fill",
|
|
},
|
|
},
|
|
manifest: {
|
|
id: "imessage",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
channels: ["imessage"],
|
|
},
|
|
},
|
|
{
|
|
dirName: "irc",
|
|
idHint: "irc",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
setupSource: {
|
|
source: "./setup-entry.ts",
|
|
built: "setup-entry.js",
|
|
},
|
|
packageName: "@openclaw/irc",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw IRC channel plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
setupEntry: "./setup-entry.ts",
|
|
channel: {
|
|
id: "irc",
|
|
label: "IRC",
|
|
selectionLabel: "IRC (Server + Nick)",
|
|
detailLabel: "IRC",
|
|
docsPath: "/channels/irc",
|
|
docsLabel: "irc",
|
|
blurb: "classic IRC networks with DM/channel routing and pairing controls.",
|
|
systemImage: "network",
|
|
},
|
|
install: {
|
|
minHostVersion: ">=2026.3.22",
|
|
},
|
|
},
|
|
manifest: {
|
|
id: "irc",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
channels: ["irc"],
|
|
},
|
|
},
|
|
{
|
|
dirName: "kilocode",
|
|
idHint: "kilocode",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/kilocode-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Kilo Gateway provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "kilocode",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["kilocode"],
|
|
providerAuthEnvVars: {
|
|
kilocode: ["KILOCODE_API_KEY"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "kilocode",
|
|
method: "api-key",
|
|
choiceId: "kilocode-api-key",
|
|
choiceLabel: "Kilo Gateway API key",
|
|
choiceHint: "API key (OpenRouter-compatible)",
|
|
groupId: "kilocode",
|
|
groupLabel: "Kilo Gateway",
|
|
groupHint: "API key (OpenRouter-compatible)",
|
|
optionKey: "kilocodeApiKey",
|
|
cliFlag: "--kilocode-api-key",
|
|
cliOption: "--kilocode-api-key <key>",
|
|
cliDescription: "Kilo Gateway API key",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "kimi-coding",
|
|
idHint: "kimi",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/kimi-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Kimi provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "kimi",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["kimi", "kimi-coding"],
|
|
providerAuthEnvVars: {
|
|
kimi: ["KIMI_API_KEY", "KIMICODE_API_KEY"],
|
|
"kimi-coding": ["KIMI_API_KEY", "KIMICODE_API_KEY"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "kimi",
|
|
method: "api-key",
|
|
choiceId: "kimi-code-api-key",
|
|
choiceLabel: "Kimi Code API key",
|
|
groupId: "kimi-code",
|
|
groupLabel: "Kimi Code",
|
|
groupHint: "Dedicated coding endpoint",
|
|
optionKey: "kimiCodeApiKey",
|
|
cliFlag: "--kimi-code-api-key",
|
|
cliOption: "--kimi-code-api-key <key>",
|
|
cliDescription: "Kimi Code API key",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "line",
|
|
idHint: "line",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
setupSource: {
|
|
source: "./setup-entry.ts",
|
|
built: "setup-entry.js",
|
|
},
|
|
packageName: "@openclaw/line",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw LINE channel plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
setupEntry: "./setup-entry.ts",
|
|
channel: {
|
|
id: "line",
|
|
label: "LINE",
|
|
selectionLabel: "LINE (Messaging API)",
|
|
docsPath: "/channels/line",
|
|
docsLabel: "line",
|
|
blurb: "LINE Messaging API bot for Japan/Taiwan/Thailand markets.",
|
|
order: 75,
|
|
quickstartAllowFrom: true,
|
|
},
|
|
install: {
|
|
npmSpec: "@openclaw/line",
|
|
localPath: "extensions/line",
|
|
defaultChoice: "npm",
|
|
minHostVersion: ">=2026.3.22",
|
|
},
|
|
},
|
|
manifest: {
|
|
id: "line",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
channels: ["line"],
|
|
},
|
|
},
|
|
{
|
|
dirName: "llm-task",
|
|
idHint: "llm-task",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/llm-task",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw JSON-only LLM task plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "llm-task",
|
|
configSchema: {
|
|
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",
|
|
},
|
|
},
|
|
},
|
|
name: "LLM Task",
|
|
description: "Generic JSON-only LLM tool for structured tasks callable from workflows.",
|
|
},
|
|
},
|
|
{
|
|
dirName: "lobster",
|
|
idHint: "lobster",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/lobster",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "Lobster workflow tool plugin (typed pipelines + resumable approvals)",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "lobster",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
name: "Lobster",
|
|
description: "Typed workflow tool with resumable approvals.",
|
|
},
|
|
},
|
|
{
|
|
dirName: "matrix",
|
|
idHint: "matrix",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
setupSource: {
|
|
source: "./setup-entry.ts",
|
|
built: "setup-entry.js",
|
|
},
|
|
packageName: "@openclaw/matrix",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Matrix channel plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
setupEntry: "./setup-entry.ts",
|
|
channel: {
|
|
id: "matrix",
|
|
label: "Matrix",
|
|
selectionLabel: "Matrix (plugin)",
|
|
docsPath: "/channels/matrix",
|
|
docsLabel: "matrix",
|
|
blurb: "open protocol; install the plugin to enable.",
|
|
order: 70,
|
|
quickstartAllowFrom: true,
|
|
},
|
|
install: {
|
|
npmSpec: "@openclaw/matrix",
|
|
localPath: "extensions/matrix",
|
|
defaultChoice: "npm",
|
|
minHostVersion: ">=2026.3.22",
|
|
},
|
|
},
|
|
manifest: {
|
|
id: "matrix",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
channels: ["matrix"],
|
|
},
|
|
},
|
|
{
|
|
dirName: "mattermost",
|
|
idHint: "mattermost",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
setupSource: {
|
|
source: "./setup-entry.ts",
|
|
built: "setup-entry.js",
|
|
},
|
|
packageName: "@openclaw/mattermost",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Mattermost channel plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
setupEntry: "./setup-entry.ts",
|
|
channel: {
|
|
id: "mattermost",
|
|
label: "Mattermost",
|
|
selectionLabel: "Mattermost (plugin)",
|
|
docsPath: "/channels/mattermost",
|
|
docsLabel: "mattermost",
|
|
blurb: "self-hosted Slack-style chat; install the plugin to enable.",
|
|
order: 65,
|
|
},
|
|
install: {
|
|
npmSpec: "@openclaw/mattermost",
|
|
localPath: "extensions/mattermost",
|
|
defaultChoice: "npm",
|
|
minHostVersion: ">=2026.3.22",
|
|
},
|
|
},
|
|
manifest: {
|
|
id: "mattermost",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
channels: ["mattermost"],
|
|
},
|
|
},
|
|
{
|
|
dirName: "memory-core",
|
|
idHint: "memory-core",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/memory-core",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw core memory search plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "memory-core",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
kind: "memory",
|
|
},
|
|
},
|
|
{
|
|
dirName: "memory-lancedb",
|
|
idHint: "memory-lancedb",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/memory-lancedb",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw LanceDB-backed long-term memory plugin with auto-recall/capture",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
install: {
|
|
npmSpec: "@openclaw/memory-lancedb",
|
|
localPath: "extensions/memory-lancedb",
|
|
defaultChoice: "npm",
|
|
minHostVersion: ">=2026.3.22",
|
|
},
|
|
},
|
|
manifest: {
|
|
id: "memory-lancedb",
|
|
configSchema: {
|
|
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",
|
|
uiHints: {
|
|
"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",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
dirName: "microsoft",
|
|
idHint: "microsoft",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/microsoft-speech",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Microsoft speech plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "microsoft",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
dirName: "minimax",
|
|
idHint: "minimax",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/minimax-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw MiniMax provider and OAuth plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "minimax",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["minimax", "minimax-portal"],
|
|
providerAuthEnvVars: {
|
|
minimax: ["MINIMAX_API_KEY"],
|
|
"minimax-portal": ["MINIMAX_OAUTH_TOKEN", "MINIMAX_API_KEY"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "minimax-portal",
|
|
method: "oauth",
|
|
choiceId: "minimax-global-oauth",
|
|
choiceLabel: "MiniMax OAuth (Global)",
|
|
choiceHint: "Global endpoint - api.minimax.io",
|
|
groupId: "minimax",
|
|
groupLabel: "MiniMax",
|
|
groupHint: "M2.7 (recommended)",
|
|
},
|
|
{
|
|
provider: "minimax",
|
|
method: "api-global",
|
|
choiceId: "minimax-global-api",
|
|
choiceLabel: "MiniMax API key (Global)",
|
|
choiceHint: "Global endpoint - api.minimax.io",
|
|
groupId: "minimax",
|
|
groupLabel: "MiniMax",
|
|
groupHint: "M2.7 (recommended)",
|
|
optionKey: "minimaxApiKey",
|
|
cliFlag: "--minimax-api-key",
|
|
cliOption: "--minimax-api-key <key>",
|
|
cliDescription: "MiniMax API key",
|
|
},
|
|
{
|
|
provider: "minimax-portal",
|
|
method: "oauth-cn",
|
|
choiceId: "minimax-cn-oauth",
|
|
choiceLabel: "MiniMax OAuth (CN)",
|
|
choiceHint: "CN endpoint - api.minimaxi.com",
|
|
groupId: "minimax",
|
|
groupLabel: "MiniMax",
|
|
groupHint: "M2.7 (recommended)",
|
|
},
|
|
{
|
|
provider: "minimax",
|
|
method: "api-cn",
|
|
choiceId: "minimax-cn-api",
|
|
choiceLabel: "MiniMax API key (CN)",
|
|
choiceHint: "CN endpoint - api.minimaxi.com",
|
|
groupId: "minimax",
|
|
groupLabel: "MiniMax",
|
|
groupHint: "M2.7 (recommended)",
|
|
optionKey: "minimaxApiKey",
|
|
cliFlag: "--minimax-api-key",
|
|
cliOption: "--minimax-api-key <key>",
|
|
cliDescription: "MiniMax API key",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "mistral",
|
|
idHint: "mistral",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/mistral-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Mistral provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "mistral",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["mistral"],
|
|
providerAuthEnvVars: {
|
|
mistral: ["MISTRAL_API_KEY"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "mistral",
|
|
method: "api-key",
|
|
choiceId: "mistral-api-key",
|
|
choiceLabel: "Mistral API key",
|
|
groupId: "mistral",
|
|
groupLabel: "Mistral AI",
|
|
groupHint: "API key",
|
|
optionKey: "mistralApiKey",
|
|
cliFlag: "--mistral-api-key",
|
|
cliOption: "--mistral-api-key <key>",
|
|
cliDescription: "Mistral API key",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "modelstudio",
|
|
idHint: "modelstudio",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/modelstudio-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Model Studio provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "modelstudio",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["modelstudio"],
|
|
providerAuthEnvVars: {
|
|
modelstudio: ["MODELSTUDIO_API_KEY"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "modelstudio",
|
|
method: "standard-api-key-cn",
|
|
choiceId: "modelstudio-standard-api-key-cn",
|
|
choiceLabel: "Standard API Key for China (pay-as-you-go)",
|
|
choiceHint: "Endpoint: dashscope.aliyuncs.com",
|
|
groupId: "modelstudio",
|
|
groupLabel: "Qwen (Alibaba Cloud Model Studio)",
|
|
groupHint: "Standard / Coding Plan (CN / Global)",
|
|
optionKey: "modelstudioStandardApiKeyCn",
|
|
cliFlag: "--modelstudio-standard-api-key-cn",
|
|
cliOption: "--modelstudio-standard-api-key-cn <key>",
|
|
cliDescription: "Alibaba Cloud Model Studio Standard API key (China)",
|
|
},
|
|
{
|
|
provider: "modelstudio",
|
|
method: "standard-api-key",
|
|
choiceId: "modelstudio-standard-api-key",
|
|
choiceLabel: "Standard API Key for Global/Intl (pay-as-you-go)",
|
|
choiceHint: "Endpoint: dashscope-intl.aliyuncs.com",
|
|
groupId: "modelstudio",
|
|
groupLabel: "Qwen (Alibaba Cloud Model Studio)",
|
|
groupHint: "Standard / Coding Plan (CN / Global)",
|
|
optionKey: "modelstudioStandardApiKey",
|
|
cliFlag: "--modelstudio-standard-api-key",
|
|
cliOption: "--modelstudio-standard-api-key <key>",
|
|
cliDescription: "Alibaba Cloud Model Studio Standard API key (Global/Intl)",
|
|
},
|
|
{
|
|
provider: "modelstudio",
|
|
method: "api-key-cn",
|
|
choiceId: "modelstudio-api-key-cn",
|
|
choiceLabel: "Coding Plan API Key for China (subscription)",
|
|
choiceHint: "Endpoint: coding.dashscope.aliyuncs.com",
|
|
groupId: "modelstudio",
|
|
groupLabel: "Qwen (Alibaba Cloud Model Studio)",
|
|
groupHint: "Standard / Coding Plan (CN / Global)",
|
|
optionKey: "modelstudioApiKeyCn",
|
|
cliFlag: "--modelstudio-api-key-cn",
|
|
cliOption: "--modelstudio-api-key-cn <key>",
|
|
cliDescription: "Alibaba Cloud Model Studio Coding Plan API key (China)",
|
|
},
|
|
{
|
|
provider: "modelstudio",
|
|
method: "api-key",
|
|
choiceId: "modelstudio-api-key",
|
|
choiceLabel: "Coding Plan API Key for Global/Intl (subscription)",
|
|
choiceHint: "Endpoint: coding-intl.dashscope.aliyuncs.com",
|
|
groupId: "modelstudio",
|
|
groupLabel: "Qwen (Alibaba Cloud Model Studio)",
|
|
groupHint: "Standard / Coding Plan (CN / Global)",
|
|
optionKey: "modelstudioApiKey",
|
|
cliFlag: "--modelstudio-api-key",
|
|
cliOption: "--modelstudio-api-key <key>",
|
|
cliDescription: "Alibaba Cloud Model Studio Coding Plan API key (Global/Intl)",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "moonshot",
|
|
idHint: "moonshot",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/moonshot-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Moonshot provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "moonshot",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {
|
|
webSearch: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {
|
|
apiKey: {
|
|
type: ["string", "object"],
|
|
},
|
|
baseUrl: {
|
|
type: "string",
|
|
},
|
|
model: {
|
|
type: "string",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
providers: ["moonshot"],
|
|
providerAuthEnvVars: {
|
|
moonshot: ["MOONSHOT_API_KEY"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "moonshot",
|
|
method: "api-key",
|
|
choiceId: "moonshot-api-key",
|
|
choiceLabel: "Moonshot API key (.ai)",
|
|
groupId: "moonshot",
|
|
groupLabel: "Moonshot AI (Kimi K2.5)",
|
|
groupHint: "Kimi K2.5",
|
|
optionKey: "moonshotApiKey",
|
|
cliFlag: "--moonshot-api-key",
|
|
cliOption: "--moonshot-api-key <key>",
|
|
cliDescription: "Moonshot API key",
|
|
},
|
|
{
|
|
provider: "moonshot",
|
|
method: "api-key-cn",
|
|
choiceId: "moonshot-api-key-cn",
|
|
choiceLabel: "Moonshot API key (.cn)",
|
|
groupId: "moonshot",
|
|
groupLabel: "Moonshot AI (Kimi K2.5)",
|
|
groupHint: "Kimi K2.5",
|
|
optionKey: "moonshotApiKey",
|
|
cliFlag: "--moonshot-api-key",
|
|
cliOption: "--moonshot-api-key <key>",
|
|
cliDescription: "Moonshot API key",
|
|
},
|
|
],
|
|
uiHints: {
|
|
"webSearch.apiKey": {
|
|
label: "Kimi Search API Key",
|
|
help: "Moonshot/Kimi API key (fallback: KIMI_API_KEY or MOONSHOT_API_KEY env var).",
|
|
sensitive: true,
|
|
},
|
|
"webSearch.baseUrl": {
|
|
label: "Kimi Search Base URL",
|
|
help: "Kimi base URL override.",
|
|
},
|
|
"webSearch.model": {
|
|
label: "Kimi Search Model",
|
|
help: "Kimi model override.",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
dirName: "msteams",
|
|
idHint: "msteams",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
setupSource: {
|
|
source: "./setup-entry.ts",
|
|
built: "setup-entry.js",
|
|
},
|
|
packageName: "@openclaw/msteams",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Microsoft Teams channel plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
setupEntry: "./setup-entry.ts",
|
|
channel: {
|
|
id: "msteams",
|
|
label: "Microsoft Teams",
|
|
selectionLabel: "Microsoft Teams (Bot Framework)",
|
|
docsPath: "/channels/msteams",
|
|
docsLabel: "msteams",
|
|
blurb: "Bot Framework; enterprise support.",
|
|
aliases: ["teams"],
|
|
order: 60,
|
|
},
|
|
install: {
|
|
npmSpec: "@openclaw/msteams",
|
|
localPath: "extensions/msteams",
|
|
defaultChoice: "npm",
|
|
minHostVersion: ">=2026.3.22",
|
|
},
|
|
},
|
|
manifest: {
|
|
id: "msteams",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
channels: ["msteams"],
|
|
},
|
|
},
|
|
{
|
|
dirName: "nextcloud-talk",
|
|
idHint: "nextcloud-talk",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
setupSource: {
|
|
source: "./setup-entry.ts",
|
|
built: "setup-entry.js",
|
|
},
|
|
packageName: "@openclaw/nextcloud-talk",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Nextcloud Talk channel plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
setupEntry: "./setup-entry.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.",
|
|
aliases: ["nc-talk", "nc"],
|
|
order: 65,
|
|
quickstartAllowFrom: true,
|
|
},
|
|
install: {
|
|
npmSpec: "@openclaw/nextcloud-talk",
|
|
localPath: "extensions/nextcloud-talk",
|
|
defaultChoice: "npm",
|
|
minHostVersion: ">=2026.3.22",
|
|
},
|
|
},
|
|
manifest: {
|
|
id: "nextcloud-talk",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
channels: ["nextcloud-talk"],
|
|
},
|
|
},
|
|
{
|
|
dirName: "nostr",
|
|
idHint: "nostr",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
setupSource: {
|
|
source: "./setup-entry.ts",
|
|
built: "setup-entry.js",
|
|
},
|
|
packageName: "@openclaw/nostr",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Nostr channel plugin for NIP-04 encrypted DMs",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
setupEntry: "./setup-entry.ts",
|
|
channel: {
|
|
id: "nostr",
|
|
label: "Nostr",
|
|
selectionLabel: "Nostr (NIP-04 DMs)",
|
|
docsPath: "/channels/nostr",
|
|
docsLabel: "nostr",
|
|
blurb: "Decentralized protocol; encrypted DMs via NIP-04.",
|
|
order: 55,
|
|
quickstartAllowFrom: true,
|
|
},
|
|
install: {
|
|
npmSpec: "@openclaw/nostr",
|
|
localPath: "extensions/nostr",
|
|
defaultChoice: "npm",
|
|
minHostVersion: ">=2026.3.22",
|
|
},
|
|
},
|
|
manifest: {
|
|
id: "nostr",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
channels: ["nostr"],
|
|
},
|
|
},
|
|
{
|
|
dirName: "nvidia",
|
|
idHint: "nvidia",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/nvidia-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw NVIDIA provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "nvidia",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["nvidia"],
|
|
providerAuthEnvVars: {
|
|
nvidia: ["NVIDIA_API_KEY"],
|
|
},
|
|
},
|
|
},
|
|
{
|
|
dirName: "ollama",
|
|
idHint: "ollama",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/ollama-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Ollama provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "ollama",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["ollama"],
|
|
providerAuthEnvVars: {
|
|
ollama: ["OLLAMA_API_KEY"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "ollama",
|
|
method: "local",
|
|
choiceId: "ollama",
|
|
choiceLabel: "Ollama",
|
|
choiceHint: "Cloud and local open models",
|
|
groupId: "ollama",
|
|
groupLabel: "Ollama",
|
|
groupHint: "Cloud and local open models",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "open-prose",
|
|
idHint: "open-prose",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/open-prose",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenProse VM skill pack plugin (slash command + telemetry).",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "open-prose",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
skills: ["./skills"],
|
|
name: "OpenProse",
|
|
description: "OpenProse VM skill pack with a /prose slash command.",
|
|
},
|
|
},
|
|
{
|
|
dirName: "openai",
|
|
idHint: "openai",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/openai-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw OpenAI provider plugins",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "openai",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["openai", "openai-codex"],
|
|
providerAuthEnvVars: {
|
|
openai: ["OPENAI_API_KEY"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "openai-codex",
|
|
method: "oauth",
|
|
choiceId: "openai-codex",
|
|
choiceLabel: "OpenAI Codex (ChatGPT OAuth)",
|
|
choiceHint: "Browser sign-in",
|
|
groupId: "openai",
|
|
groupLabel: "OpenAI",
|
|
groupHint: "Codex OAuth + API key",
|
|
},
|
|
{
|
|
provider: "openai",
|
|
method: "api-key",
|
|
choiceId: "openai-api-key",
|
|
choiceLabel: "OpenAI API key",
|
|
groupId: "openai",
|
|
groupLabel: "OpenAI",
|
|
groupHint: "Codex OAuth + API key",
|
|
optionKey: "openaiApiKey",
|
|
cliFlag: "--openai-api-key",
|
|
cliOption: "--openai-api-key <key>",
|
|
cliDescription: "OpenAI API key",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "opencode",
|
|
idHint: "opencode",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/opencode-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw OpenCode Zen provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "opencode",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["opencode"],
|
|
providerAuthEnvVars: {
|
|
opencode: ["OPENCODE_API_KEY", "OPENCODE_ZEN_API_KEY"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "opencode",
|
|
method: "api-key",
|
|
choiceId: "opencode-zen",
|
|
choiceLabel: "OpenCode Zen catalog",
|
|
groupId: "opencode",
|
|
groupLabel: "OpenCode",
|
|
groupHint: "Shared API key for Zen + Go catalogs",
|
|
optionKey: "opencodeZenApiKey",
|
|
cliFlag: "--opencode-zen-api-key",
|
|
cliOption: "--opencode-zen-api-key <key>",
|
|
cliDescription: "OpenCode API key (Zen catalog)",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "opencode-go",
|
|
idHint: "opencode-go",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/opencode-go-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw OpenCode Go provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "opencode-go",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["opencode-go"],
|
|
providerAuthEnvVars: {
|
|
"opencode-go": ["OPENCODE_API_KEY", "OPENCODE_ZEN_API_KEY"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "opencode-go",
|
|
method: "api-key",
|
|
choiceId: "opencode-go",
|
|
choiceLabel: "OpenCode Go catalog",
|
|
groupId: "opencode",
|
|
groupLabel: "OpenCode",
|
|
groupHint: "Shared API key for Zen + Go catalogs",
|
|
optionKey: "opencodeGoApiKey",
|
|
cliFlag: "--opencode-go-api-key",
|
|
cliOption: "--opencode-go-api-key <key>",
|
|
cliDescription: "OpenCode API key (Go catalog)",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "openrouter",
|
|
idHint: "openrouter",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/openrouter-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw OpenRouter provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "openrouter",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["openrouter"],
|
|
providerAuthEnvVars: {
|
|
openrouter: ["OPENROUTER_API_KEY"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "openrouter",
|
|
method: "api-key",
|
|
choiceId: "openrouter-api-key",
|
|
choiceLabel: "OpenRouter API key",
|
|
groupId: "openrouter",
|
|
groupLabel: "OpenRouter",
|
|
groupHint: "API key",
|
|
optionKey: "openrouterApiKey",
|
|
cliFlag: "--openrouter-api-key",
|
|
cliOption: "--openrouter-api-key <key>",
|
|
cliDescription: "OpenRouter API key",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "openshell",
|
|
idHint: "openshell-sandbox",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/openshell-sandbox",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw OpenShell sandbox backend",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "openshell",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {
|
|
command: {
|
|
type: "string",
|
|
},
|
|
gateway: {
|
|
type: "string",
|
|
},
|
|
gatewayEndpoint: {
|
|
type: "string",
|
|
},
|
|
from: {
|
|
type: "string",
|
|
},
|
|
policy: {
|
|
type: "string",
|
|
},
|
|
providers: {
|
|
type: "array",
|
|
items: {
|
|
type: "string",
|
|
},
|
|
},
|
|
gpu: {
|
|
type: "boolean",
|
|
},
|
|
autoProviders: {
|
|
type: "boolean",
|
|
},
|
|
remoteWorkspaceDir: {
|
|
type: "string",
|
|
},
|
|
remoteAgentWorkspaceDir: {
|
|
type: "string",
|
|
},
|
|
timeoutSeconds: {
|
|
type: "number",
|
|
minimum: 1,
|
|
},
|
|
},
|
|
},
|
|
name: "OpenShell Sandbox",
|
|
description:
|
|
"Sandbox backend powered by OpenShell with mirrored local workspaces and SSH-based command execution.",
|
|
uiHints: {
|
|
command: {
|
|
label: "OpenShell Command",
|
|
help: "Path or command name for the openshell CLI.",
|
|
},
|
|
gateway: {
|
|
label: "Gateway Name",
|
|
help: "Optional OpenShell gateway name passed as --gateway.",
|
|
},
|
|
gatewayEndpoint: {
|
|
label: "Gateway Endpoint",
|
|
help: "Optional OpenShell gateway endpoint passed as --gateway-endpoint.",
|
|
},
|
|
from: {
|
|
label: "Sandbox Source",
|
|
help: "OpenShell sandbox source for first-time create. Defaults to openclaw.",
|
|
},
|
|
policy: {
|
|
label: "Policy File",
|
|
help: "Optional path to a custom OpenShell sandbox policy YAML.",
|
|
},
|
|
providers: {
|
|
label: "Providers",
|
|
help: "Provider names to attach when a sandbox is created.",
|
|
},
|
|
gpu: {
|
|
label: "GPU",
|
|
help: "Request GPU resources when creating the sandbox.",
|
|
advanced: true,
|
|
},
|
|
autoProviders: {
|
|
label: "Auto-create Providers",
|
|
help: "When enabled, pass --auto-providers during sandbox create.",
|
|
advanced: true,
|
|
},
|
|
remoteWorkspaceDir: {
|
|
label: "Remote Workspace Dir",
|
|
help: "Primary writable workspace inside the OpenShell sandbox.",
|
|
advanced: true,
|
|
},
|
|
remoteAgentWorkspaceDir: {
|
|
label: "Remote Agent Dir",
|
|
help: "Mirror path for the real agent workspace when workspaceAccess is read-only.",
|
|
advanced: true,
|
|
},
|
|
timeoutSeconds: {
|
|
label: "Command Timeout Seconds",
|
|
help: "Timeout for openshell CLI operations such as create/upload/download.",
|
|
advanced: true,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
dirName: "perplexity",
|
|
idHint: "perplexity-plugin",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/perplexity-plugin",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Perplexity plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "perplexity",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {
|
|
webSearch: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {
|
|
apiKey: {
|
|
type: ["string", "object"],
|
|
},
|
|
baseUrl: {
|
|
type: "string",
|
|
},
|
|
model: {
|
|
type: "string",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
providerAuthEnvVars: {
|
|
perplexity: ["PERPLEXITY_API_KEY", "OPENROUTER_API_KEY"],
|
|
},
|
|
uiHints: {
|
|
"webSearch.apiKey": {
|
|
label: "Perplexity API Key",
|
|
help: "Perplexity or OpenRouter API key for web search.",
|
|
sensitive: true,
|
|
placeholder: "pplx-...",
|
|
},
|
|
"webSearch.baseUrl": {
|
|
label: "Perplexity Base URL",
|
|
help: "Optional Perplexity/OpenRouter chat-completions base URL override.",
|
|
},
|
|
"webSearch.model": {
|
|
label: "Perplexity Model",
|
|
help: "Optional Sonar/OpenRouter model override.",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
dirName: "qianfan",
|
|
idHint: "qianfan",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/qianfan-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Qianfan provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "qianfan",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["qianfan"],
|
|
providerAuthEnvVars: {
|
|
qianfan: ["QIANFAN_API_KEY"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "qianfan",
|
|
method: "api-key",
|
|
choiceId: "qianfan-api-key",
|
|
choiceLabel: "Qianfan API key",
|
|
groupId: "qianfan",
|
|
groupLabel: "Qianfan",
|
|
groupHint: "API key",
|
|
optionKey: "qianfanApiKey",
|
|
cliFlag: "--qianfan-api-key",
|
|
cliOption: "--qianfan-api-key <key>",
|
|
cliDescription: "QIANFAN API key",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "sglang",
|
|
idHint: "sglang",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/sglang-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw SGLang provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "sglang",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["sglang"],
|
|
providerAuthEnvVars: {
|
|
sglang: ["SGLANG_API_KEY"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "sglang",
|
|
method: "custom",
|
|
choiceId: "sglang",
|
|
choiceLabel: "SGLang",
|
|
choiceHint: "Fast self-hosted OpenAI-compatible server",
|
|
groupId: "sglang",
|
|
groupLabel: "SGLang",
|
|
groupHint: "Fast self-hosted server",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "signal",
|
|
idHint: "signal",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
setupSource: {
|
|
source: "./setup-entry.ts",
|
|
built: "setup-entry.js",
|
|
},
|
|
packageName: "@openclaw/signal",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Signal channel plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
setupEntry: "./setup-entry.ts",
|
|
channel: {
|
|
id: "signal",
|
|
label: "Signal",
|
|
selectionLabel: "Signal (signal-cli)",
|
|
detailLabel: "Signal REST",
|
|
docsPath: "/channels/signal",
|
|
docsLabel: "signal",
|
|
blurb: 'signal-cli linked device; more setup (David Reagans: "Hop on Discord.").',
|
|
systemImage: "antenna.radiowaves.left.and.right",
|
|
},
|
|
},
|
|
manifest: {
|
|
id: "signal",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
channels: ["signal"],
|
|
},
|
|
},
|
|
{
|
|
dirName: "slack",
|
|
idHint: "slack",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
setupSource: {
|
|
source: "./setup-entry.ts",
|
|
built: "setup-entry.js",
|
|
},
|
|
packageName: "@openclaw/slack",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Slack channel plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
setupEntry: "./setup-entry.ts",
|
|
channel: {
|
|
id: "slack",
|
|
label: "Slack",
|
|
selectionLabel: "Slack (Socket Mode)",
|
|
detailLabel: "Slack Bot",
|
|
docsPath: "/channels/slack",
|
|
docsLabel: "slack",
|
|
blurb: "supported (Socket Mode).",
|
|
systemImage: "number",
|
|
},
|
|
},
|
|
manifest: {
|
|
id: "slack",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
channels: ["slack"],
|
|
},
|
|
},
|
|
{
|
|
dirName: "synology-chat",
|
|
idHint: "synology-chat",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
setupSource: {
|
|
source: "./setup-entry.ts",
|
|
built: "setup-entry.js",
|
|
},
|
|
packageName: "@openclaw/synology-chat",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "Synology Chat channel plugin for OpenClaw",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
setupEntry: "./setup-entry.ts",
|
|
channel: {
|
|
id: "synology-chat",
|
|
label: "Synology Chat",
|
|
selectionLabel: "Synology Chat (Webhook)",
|
|
docsPath: "/channels/synology-chat",
|
|
docsLabel: "synology-chat",
|
|
blurb: "Connect your Synology NAS Chat to OpenClaw with full agent capabilities.",
|
|
order: 90,
|
|
},
|
|
install: {
|
|
npmSpec: "@openclaw/synology-chat",
|
|
localPath: "extensions/synology-chat",
|
|
defaultChoice: "npm",
|
|
minHostVersion: ">=2026.3.22",
|
|
},
|
|
},
|
|
manifest: {
|
|
id: "synology-chat",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
channels: ["synology-chat"],
|
|
},
|
|
},
|
|
{
|
|
dirName: "synthetic",
|
|
idHint: "synthetic",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/synthetic-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Synthetic provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "synthetic",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["synthetic"],
|
|
providerAuthEnvVars: {
|
|
synthetic: ["SYNTHETIC_API_KEY"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "synthetic",
|
|
method: "api-key",
|
|
choiceId: "synthetic-api-key",
|
|
choiceLabel: "Synthetic API key",
|
|
groupId: "synthetic",
|
|
groupLabel: "Synthetic",
|
|
groupHint: "Anthropic-compatible (multi-model)",
|
|
optionKey: "syntheticApiKey",
|
|
cliFlag: "--synthetic-api-key",
|
|
cliOption: "--synthetic-api-key <key>",
|
|
cliDescription: "Synthetic API key",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "tavily",
|
|
idHint: "tavily-plugin",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/tavily-plugin",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Tavily plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "tavily",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {
|
|
webSearch: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {
|
|
apiKey: {
|
|
type: ["string", "object"],
|
|
},
|
|
baseUrl: {
|
|
type: "string",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
providerAuthEnvVars: {
|
|
tavily: ["TAVILY_API_KEY"],
|
|
},
|
|
skills: ["./skills"],
|
|
uiHints: {
|
|
"webSearch.apiKey": {
|
|
label: "Tavily API Key",
|
|
help: "Tavily API key for web search and extraction (fallback: TAVILY_API_KEY env var).",
|
|
sensitive: true,
|
|
placeholder: "tvly-...",
|
|
},
|
|
"webSearch.baseUrl": {
|
|
label: "Tavily Base URL",
|
|
help: "Tavily API base URL override.",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
dirName: "telegram",
|
|
idHint: "telegram",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
setupSource: {
|
|
source: "./setup-entry.ts",
|
|
built: "setup-entry.js",
|
|
},
|
|
packageName: "@openclaw/telegram",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Telegram channel plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
setupEntry: "./setup-entry.ts",
|
|
channel: {
|
|
id: "telegram",
|
|
label: "Telegram",
|
|
selectionLabel: "Telegram (Bot API)",
|
|
detailLabel: "Telegram Bot",
|
|
docsPath: "/channels/telegram",
|
|
docsLabel: "telegram",
|
|
blurb: "simplest way to get started — register a bot with @BotFather and get going.",
|
|
systemImage: "paperplane",
|
|
},
|
|
},
|
|
manifest: {
|
|
id: "telegram",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
channels: ["telegram"],
|
|
},
|
|
},
|
|
{
|
|
dirName: "tlon",
|
|
idHint: "tlon",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
setupSource: {
|
|
source: "./setup-entry.ts",
|
|
built: "setup-entry.js",
|
|
},
|
|
packageName: "@openclaw/tlon",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Tlon/Urbit channel plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
setupEntry: "./setup-entry.ts",
|
|
channel: {
|
|
id: "tlon",
|
|
label: "Tlon",
|
|
selectionLabel: "Tlon (Urbit)",
|
|
docsPath: "/channels/tlon",
|
|
docsLabel: "tlon",
|
|
blurb: "decentralized messaging on Urbit; install the plugin to enable.",
|
|
order: 90,
|
|
quickstartAllowFrom: true,
|
|
},
|
|
install: {
|
|
npmSpec: "@openclaw/tlon",
|
|
localPath: "extensions/tlon",
|
|
defaultChoice: "npm",
|
|
minHostVersion: ">=2026.3.22",
|
|
},
|
|
},
|
|
manifest: {
|
|
id: "tlon",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
channels: ["tlon"],
|
|
skills: ["node_modules/@tloncorp/tlon-skill"],
|
|
},
|
|
},
|
|
{
|
|
dirName: "together",
|
|
idHint: "together",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/together-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Together provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "together",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["together"],
|
|
providerAuthEnvVars: {
|
|
together: ["TOGETHER_API_KEY"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "together",
|
|
method: "api-key",
|
|
choiceId: "together-api-key",
|
|
choiceLabel: "Together AI API key",
|
|
groupId: "together",
|
|
groupLabel: "Together AI",
|
|
groupHint: "API key",
|
|
optionKey: "togetherApiKey",
|
|
cliFlag: "--together-api-key",
|
|
cliOption: "--together-api-key <key>",
|
|
cliDescription: "Together AI API key",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "twitch",
|
|
idHint: "twitch",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/twitch",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Twitch channel plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
channel: {
|
|
id: "twitch",
|
|
label: "Twitch",
|
|
selectionLabel: "Twitch (Chat)",
|
|
docsPath: "/channels/twitch",
|
|
blurb: "Twitch chat integration",
|
|
aliases: ["twitch-chat"],
|
|
},
|
|
install: {
|
|
minHostVersion: ">=2026.3.22",
|
|
},
|
|
},
|
|
manifest: {
|
|
id: "twitch",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
channels: ["twitch"],
|
|
},
|
|
},
|
|
{
|
|
dirName: "venice",
|
|
idHint: "venice",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/venice-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Venice provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "venice",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["venice"],
|
|
providerAuthEnvVars: {
|
|
venice: ["VENICE_API_KEY"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "venice",
|
|
method: "api-key",
|
|
choiceId: "venice-api-key",
|
|
choiceLabel: "Venice AI API key",
|
|
groupId: "venice",
|
|
groupLabel: "Venice AI",
|
|
groupHint: "Privacy-focused (uncensored models)",
|
|
optionKey: "veniceApiKey",
|
|
cliFlag: "--venice-api-key",
|
|
cliOption: "--venice-api-key <key>",
|
|
cliDescription: "Venice API key",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "vercel-ai-gateway",
|
|
idHint: "vercel-ai-gateway",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/vercel-ai-gateway-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Vercel AI Gateway provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "vercel-ai-gateway",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["vercel-ai-gateway"],
|
|
providerAuthEnvVars: {
|
|
"vercel-ai-gateway": ["AI_GATEWAY_API_KEY"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "vercel-ai-gateway",
|
|
method: "api-key",
|
|
choiceId: "ai-gateway-api-key",
|
|
choiceLabel: "Vercel AI Gateway API key",
|
|
groupId: "ai-gateway",
|
|
groupLabel: "Vercel AI Gateway",
|
|
groupHint: "API key",
|
|
optionKey: "aiGatewayApiKey",
|
|
cliFlag: "--ai-gateway-api-key",
|
|
cliOption: "--ai-gateway-api-key <key>",
|
|
cliDescription: "Vercel AI Gateway API key",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "vllm",
|
|
idHint: "vllm",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/vllm-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw vLLM provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "vllm",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["vllm"],
|
|
providerAuthEnvVars: {
|
|
vllm: ["VLLM_API_KEY"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "vllm",
|
|
method: "custom",
|
|
choiceId: "vllm",
|
|
choiceLabel: "vLLM",
|
|
choiceHint: "Local/self-hosted OpenAI-compatible server",
|
|
groupId: "vllm",
|
|
groupLabel: "vLLM",
|
|
groupHint: "Local/self-hosted OpenAI-compatible",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "voice-call",
|
|
idHint: "voice-call",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/voice-call",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw voice-call plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
install: {
|
|
minHostVersion: ">=2026.3.22",
|
|
},
|
|
},
|
|
manifest: {
|
|
id: "voice-call",
|
|
configSchema: {
|
|
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",
|
|
},
|
|
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",
|
|
},
|
|
baseUrl: {
|
|
type: "string",
|
|
},
|
|
model: {
|
|
type: "string",
|
|
},
|
|
voice: {
|
|
type: "string",
|
|
},
|
|
speed: {
|
|
type: "number",
|
|
minimum: 0.25,
|
|
maximum: 4,
|
|
},
|
|
instructions: {
|
|
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,
|
|
},
|
|
},
|
|
},
|
|
uiHints: {
|
|
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 (Microsoft 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,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
dirName: "volcengine",
|
|
idHint: "volcengine",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/volcengine-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Volcengine provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "volcengine",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["volcengine", "volcengine-plan"],
|
|
providerAuthEnvVars: {
|
|
volcengine: ["VOLCANO_ENGINE_API_KEY"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "volcengine",
|
|
method: "api-key",
|
|
choiceId: "volcengine-api-key",
|
|
choiceLabel: "Volcano Engine API key",
|
|
groupId: "volcengine",
|
|
groupLabel: "Volcano Engine",
|
|
groupHint: "API key",
|
|
optionKey: "volcengineApiKey",
|
|
cliFlag: "--volcengine-api-key",
|
|
cliOption: "--volcengine-api-key <key>",
|
|
cliDescription: "Volcano Engine API key",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "whatsapp",
|
|
idHint: "whatsapp",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
setupSource: {
|
|
source: "./setup-entry.ts",
|
|
built: "setup-entry.js",
|
|
},
|
|
packageName: "@openclaw/whatsapp",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw WhatsApp channel plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
setupEntry: "./setup-entry.ts",
|
|
channel: {
|
|
id: "whatsapp",
|
|
label: "WhatsApp",
|
|
selectionLabel: "WhatsApp (QR link)",
|
|
detailLabel: "WhatsApp Web",
|
|
docsPath: "/channels/whatsapp",
|
|
docsLabel: "whatsapp",
|
|
blurb: "works with your own number; recommend a separate phone + eSIM.",
|
|
systemImage: "message",
|
|
},
|
|
install: {
|
|
npmSpec: "@openclaw/whatsapp",
|
|
localPath: "extensions/whatsapp",
|
|
defaultChoice: "npm",
|
|
minHostVersion: ">=2026.3.22",
|
|
},
|
|
},
|
|
manifest: {
|
|
id: "whatsapp",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
channels: ["whatsapp"],
|
|
},
|
|
},
|
|
{
|
|
dirName: "xai",
|
|
idHint: "xai-plugin",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/xai-plugin",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw xAI plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "xai",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {
|
|
webSearch: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {
|
|
apiKey: {
|
|
type: ["string", "object"],
|
|
},
|
|
model: {
|
|
type: "string",
|
|
},
|
|
inlineCitations: {
|
|
type: "boolean",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
providers: ["xai"],
|
|
providerAuthEnvVars: {
|
|
xai: ["XAI_API_KEY"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "xai",
|
|
method: "api-key",
|
|
choiceId: "xai-api-key",
|
|
choiceLabel: "xAI API key",
|
|
groupId: "xai",
|
|
groupLabel: "xAI (Grok)",
|
|
groupHint: "API key",
|
|
optionKey: "xaiApiKey",
|
|
cliFlag: "--xai-api-key",
|
|
cliOption: "--xai-api-key <key>",
|
|
cliDescription: "xAI API key",
|
|
},
|
|
],
|
|
uiHints: {
|
|
"webSearch.apiKey": {
|
|
label: "Grok Search API Key",
|
|
help: "xAI API key for Grok web search (fallback: XAI_API_KEY env var).",
|
|
sensitive: true,
|
|
},
|
|
"webSearch.model": {
|
|
label: "Grok Search Model",
|
|
help: "Grok model override for web search.",
|
|
},
|
|
"webSearch.inlineCitations": {
|
|
label: "Inline Citations",
|
|
help: "Include inline markdown citations in Grok responses.",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
dirName: "xiaomi",
|
|
idHint: "xiaomi",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/xiaomi-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Xiaomi provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "xiaomi",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["xiaomi"],
|
|
providerAuthEnvVars: {
|
|
xiaomi: ["XIAOMI_API_KEY"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "xiaomi",
|
|
method: "api-key",
|
|
choiceId: "xiaomi-api-key",
|
|
choiceLabel: "Xiaomi API key",
|
|
groupId: "xiaomi",
|
|
groupLabel: "Xiaomi",
|
|
groupHint: "API key",
|
|
optionKey: "xiaomiApiKey",
|
|
cliFlag: "--xiaomi-api-key",
|
|
cliOption: "--xiaomi-api-key <key>",
|
|
cliDescription: "Xiaomi API key",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "zai",
|
|
idHint: "zai",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
packageName: "@openclaw/zai-provider",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Z.AI provider plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
},
|
|
manifest: {
|
|
id: "zai",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
providers: ["zai"],
|
|
providerAuthEnvVars: {
|
|
zai: ["ZAI_API_KEY", "Z_AI_API_KEY"],
|
|
},
|
|
providerAuthChoices: [
|
|
{
|
|
provider: "zai",
|
|
method: "api-key",
|
|
choiceId: "zai-api-key",
|
|
choiceLabel: "Z.AI API key",
|
|
groupId: "zai",
|
|
groupLabel: "Z.AI",
|
|
groupHint: "GLM Coding Plan / Global / CN",
|
|
optionKey: "zaiApiKey",
|
|
cliFlag: "--zai-api-key",
|
|
cliOption: "--zai-api-key <key>",
|
|
cliDescription: "Z.AI API key",
|
|
},
|
|
{
|
|
provider: "zai",
|
|
method: "coding-global",
|
|
choiceId: "zai-coding-global",
|
|
choiceLabel: "Coding-Plan-Global",
|
|
choiceHint: "GLM Coding Plan Global (api.z.ai)",
|
|
groupId: "zai",
|
|
groupLabel: "Z.AI",
|
|
groupHint: "GLM Coding Plan / Global / CN",
|
|
optionKey: "zaiApiKey",
|
|
cliFlag: "--zai-api-key",
|
|
cliOption: "--zai-api-key <key>",
|
|
cliDescription: "Z.AI API key",
|
|
},
|
|
{
|
|
provider: "zai",
|
|
method: "coding-cn",
|
|
choiceId: "zai-coding-cn",
|
|
choiceLabel: "Coding-Plan-CN",
|
|
choiceHint: "GLM Coding Plan CN (open.bigmodel.cn)",
|
|
groupId: "zai",
|
|
groupLabel: "Z.AI",
|
|
groupHint: "GLM Coding Plan / Global / CN",
|
|
optionKey: "zaiApiKey",
|
|
cliFlag: "--zai-api-key",
|
|
cliOption: "--zai-api-key <key>",
|
|
cliDescription: "Z.AI API key",
|
|
},
|
|
{
|
|
provider: "zai",
|
|
method: "global",
|
|
choiceId: "zai-global",
|
|
choiceLabel: "Global",
|
|
choiceHint: "Z.AI Global (api.z.ai)",
|
|
groupId: "zai",
|
|
groupLabel: "Z.AI",
|
|
groupHint: "GLM Coding Plan / Global / CN",
|
|
optionKey: "zaiApiKey",
|
|
cliFlag: "--zai-api-key",
|
|
cliOption: "--zai-api-key <key>",
|
|
cliDescription: "Z.AI API key",
|
|
},
|
|
{
|
|
provider: "zai",
|
|
method: "cn",
|
|
choiceId: "zai-cn",
|
|
choiceLabel: "CN",
|
|
choiceHint: "Z.AI CN (open.bigmodel.cn)",
|
|
groupId: "zai",
|
|
groupLabel: "Z.AI",
|
|
groupHint: "GLM Coding Plan / Global / CN",
|
|
optionKey: "zaiApiKey",
|
|
cliFlag: "--zai-api-key",
|
|
cliOption: "--zai-api-key <key>",
|
|
cliDescription: "Z.AI API key",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
dirName: "zalo",
|
|
idHint: "zalo",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
setupSource: {
|
|
source: "./setup-entry.ts",
|
|
built: "setup-entry.js",
|
|
},
|
|
packageName: "@openclaw/zalo",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Zalo channel plugin",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
setupEntry: "./setup-entry.ts",
|
|
channel: {
|
|
id: "zalo",
|
|
label: "Zalo",
|
|
selectionLabel: "Zalo (Bot API)",
|
|
docsPath: "/channels/zalo",
|
|
docsLabel: "zalo",
|
|
blurb: "Vietnam-focused messaging platform with Bot API.",
|
|
aliases: ["zl"],
|
|
order: 80,
|
|
quickstartAllowFrom: true,
|
|
},
|
|
install: {
|
|
npmSpec: "@openclaw/zalo",
|
|
localPath: "extensions/zalo",
|
|
defaultChoice: "npm",
|
|
minHostVersion: ">=2026.3.22",
|
|
},
|
|
},
|
|
manifest: {
|
|
id: "zalo",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
channels: ["zalo"],
|
|
},
|
|
},
|
|
{
|
|
dirName: "zalouser",
|
|
idHint: "zalouser",
|
|
source: {
|
|
source: "./index.ts",
|
|
built: "index.js",
|
|
},
|
|
setupSource: {
|
|
source: "./setup-entry.ts",
|
|
built: "setup-entry.js",
|
|
},
|
|
packageName: "@openclaw/zalouser",
|
|
packageVersion: "2026.3.22",
|
|
packageDescription: "OpenClaw Zalo Personal Account plugin via native zca-js integration",
|
|
packageManifest: {
|
|
extensions: ["./index.ts"],
|
|
setupEntry: "./setup-entry.ts",
|
|
channel: {
|
|
id: "zalouser",
|
|
label: "Zalo Personal",
|
|
selectionLabel: "Zalo (Personal Account)",
|
|
docsPath: "/channels/zalouser",
|
|
docsLabel: "zalouser",
|
|
blurb: "Zalo personal account via QR code login.",
|
|
aliases: ["zlu"],
|
|
order: 85,
|
|
quickstartAllowFrom: false,
|
|
},
|
|
install: {
|
|
npmSpec: "@openclaw/zalouser",
|
|
localPath: "extensions/zalouser",
|
|
defaultChoice: "npm",
|
|
minHostVersion: ">=2026.3.22",
|
|
},
|
|
},
|
|
manifest: {
|
|
id: "zalouser",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
channels: ["zalouser"],
|
|
},
|
|
},
|
|
] as const;
|