Files
hack/tools/scripts/llm-key-hunter/results/_cache/content/charleshoskinson_danceswithclaws.json
T

1 line
127 KiB
JSON

{"repo": "charleshoskinson/danceswithclaws", "files": {"extensions/opencode-go/provider-catalog.ts": {"f1ae41d2f8401c06df6281ef666831ea7d832f7b": {"t": 1785596376.1241195, "n": 12236, "h": "04b37698c84153b9", "c": "// Opencode Go provider module implements model/runtime integration.\nimport type { ModelCatalogEntry } from \"openclaw/plugin-sdk/agent-runtime\";\nimport type { ProviderRuntimeModel } from \"openclaw/plugin-sdk/plugin-entry\";\nimport {\n buildLiveModelProviderConfig,\n type LiveModelCatalogFetchGuard,\n} from \"openclaw/plugin-sdk/provider-catalog-live-runtime\";\nimport { normalizeModelCompat } from \"openclaw/plugin-sdk/provider-model-shared\";\nimport type {\n ModelDefinitionConfig,\n ModelProviderConfig,\n} from \"openclaw/plugin-sdk/provider-model-shared\";\n\nconst PROVIDER_ID = \"opencode-go\";\n\nconst OPENCODE_GO_OPENAI_BASE_URL = \"https://opencode.ai/zen/go/v1\";\nconst OPENCODE_GO_ANTHROPIC_BASE_URL = \"https://opencode.ai/zen/go\";\nconst OPENCODE_GO_KIMI_NO_REASONING_MODEL_IDS = new Set([\n \"kimi-k2.5\",\n \"kimi-k2.6\",\n \"kimi-k2.7-code\",\n]);\nconst OPENCODE_GO_MODELS_ENDPOINT = \"https://opencode.ai/zen/go/v1/models\";\nconst OPENCODE_GO_MODELS_TIMEOUT_MS = 5_000;\nconst OPENCODE_GO_MODELS_CACHE_TTL_MS = 60_000;\n\ntype OpencodeGoModelDefinition = ModelDefinitionConfig & {\n provider: typeof PROVIDER_ID;\n api: NonNullable<ModelDefinitionConfig[\"api\"]>;\n baseUrl: string;\n input: Array<\"text\" | \"image\">;\n};\n\nconst OPENCODE_GO_MODELS = (\n [\n {\n id: \"deepseek-v4-pro\",\n name: \"DeepSeek V4 Pro\",\n api: \"openai-completions\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_OPENAI_BASE_URL,\n reasoning: true,\n input: [\"text\"],\n cost: {\n input: 1.74,\n output: 3.48,\n cacheRead: 0.145,\n cacheWrite: 0,\n },\n contextWindow: 1_000_000,\n maxTokens: 384_000,\n compat: {\n supportsUsageInStreaming: true,\n supportsReasoningEffort: true,\n maxTokensField: \"max_tokens\",\n },\n },\n {\n id: \"deepseek-v4-flash\",\n name: \"DeepSeek V4 Flash\",\n api: \"openai-completions\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_OPENAI_BASE_URL,\n reasoning: true,\n input: [\"text\"],\n cost: {\n input: 0.14,\n output: 0.28,\n cacheRead: 0.028,\n cacheWrite: 0,\n },\n contextWindow: 1_000_000,\n maxTokens: 384_000,\n compat: {\n supportsUsageInStreaming: true,\n supportsReasoningEffort: true,\n maxTokensField: \"max_tokens\",\n },\n },\n {\n id: \"glm-5\",\n name: \"GLM-5\",\n api: \"openai-completions\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_OPENAI_BASE_URL,\n reasoning: true,\n input: [\"text\"],\n cost: {\n input: 1,\n output: 3.2,\n cacheRead: 0.2,\n cacheWrite: 0,\n },\n contextWindow: 202_752,\n maxTokens: 32_768,\n },\n {\n id: \"glm-5.1\",\n name: \"GLM-5.1\",\n api: \"openai-completions\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_OPENAI_BASE_URL,\n reasoning: true,\n input: [\"text\"],\n cost: {\n input: 1.4,\n output: 4.4,\n cacheRead: 0.26,\n cacheWrite: 0,\n },\n contextWindow: 202_752,\n maxTokens: 32_768,\n },\n {\n id: \"glm-5.2\",\n name: \"GLM-5.2\",\n api: \"openai-completions\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_OPENAI_BASE_URL,\n reasoning: true,\n input: [\"text\"],\n cost: {\n input: 1.4,\n output: 4.4,\n cacheRead: 0.26,\n cacheWrite: 0,\n },\n contextWindow: 1_000_000,\n maxTokens: 131_072,\n },\n {\n id: \"hy3-preview\",\n name: \"HY3 Preview\",\n api: \"openai-completions\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_OPENAI_BASE_URL,\n reasoning: true,\n input: [\"text\"],\n cost: {\n input: 0,\n output: 0,\n cacheRead: 0,\n cacheWrite: 0,\n },\n contextWindow: 262_144,\n maxTokens: 32_768,\n },\n {\n id: \"kimi-k2.5\",\n name: \"Kimi K2.5\",\n api: \"openai-completions\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_OPENAI_BASE_URL,\n reasoning: true,\n input: [\"text\", \"image\"],\n cost: {\n input: 0.6,\n output: 3,\n cacheRead: 0.1,\n cacheWrite: 0,\n },\n contextWindow: 262_144,\n maxTokens: 65_536,\n },\n {\n id: \"kimi-k2.6\",\n name: \"Kimi K2.6\",\n api: \"openai-completions\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_OPENAI_BASE_URL,\n reasoning: true,\n input: [\"text\", \"image\"],\n cost: {\n input: 0.95,\n output: 4,\n cacheRead: 0.16,\n cacheWrite: 0,\n },\n contextWindow: 262_144,\n maxTokens: 65_536,\n },\n {\n id: \"kimi-k2.7-code\",\n name: \"Kimi K2.7 Code\",\n api: \"openai-completions\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_OPENAI_BASE_URL,\n reasoning: true,\n input: [\"text\", \"image\"],\n cost: {\n input: 0.95,\n output: 4,\n cacheRead: 0.19,\n cacheWrite: 0,\n },\n contextWindow: 262_144,\n maxTokens: 262_144,\n },\n {\n id: \"mimo-v2.5\",\n name: \"MiMo V2.5\",\n api: \"openai-completions\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_OPENAI_BASE_URL,\n reasoning: true,\n input: [\"text\", \"image\"],\n cost: {\n input: 0.4,\n output: 2,\n cacheRead: 0.08,\n cacheWrite: 0,\n },\n contextWindow: 1_000_000,\n maxTokens: 128_000,\n },\n {\n id: \"mimo-v2.5-pro\",\n name: \"MiMo V2.5 Pro\",\n api: \"openai-completions\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_OPENAI_BASE_URL,\n reasoning: true,\n input: [\"text\"],\n cost: {\n input: 1,\n output: 3,\n cacheRead: 0.2,\n cacheWrite: 0,\n },\n contextWindow: 1_048_576,\n maxTokens: 128_000,\n },\n {\n id: \"minimax-m2.5\",\n name: \"MiniMax M2.5\",\n api: \"anthropic-messages\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_ANTHROPIC_BASE_URL,\n reasoning: true,\n input: [\"text\"],\n cost: {\n input: 0.3,\n output: 1.2,\n cacheRead: 0.03,\n cacheWrite: 0.375,\n },\n contextWindow: 204_800,\n maxTokens: 65_536,\n },\n {\n id: \"minimax-m2.7\",\n name: \"MiniMax M2.7\",\n api: \"anthropic-messages\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_ANTHROPIC_BASE_URL,\n reasoning: true,\n input: [\"text\"],\n cost: {\n input: 0.3,\n output: 1.2,\n cacheRead: 0.06,\n cacheWrite: 0.375,\n },\n contextWindow: 204_800,\n maxTokens: 131_072,\n },\n {\n id: \"minimax-m3\",\n name: \"MiniMax M3\",\n api: \"anthropic-messages\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_ANTHROPIC_BASE_URL,\n reasoning: true,\n input: [\"text\"],\n cost: {\n input: 0.6,\n output: 2.4,\n cacheRead: 0.12,\n cacheWrite: 0.75,\n },\n contextWindow: 204_800,\n maxTokens: 131_072,\n },\n {\n id: \"qwen3.5-plus\",\n name: \"Qwen3.5 Plus\",\n api: \"openai-completions\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_OPENAI_BASE_URL,\n compat: { thinkingFormat: \"qwen\" },\n reasoning: true,\n input: [\"text\", \"image\"],\n cost: {\n input: 0.2,\n output: 1.2,\n cacheRead: 0.02,\n cacheWrite: 0.25,\n },\n contextWindow: 262_144,\n maxTokens: 65_536,\n },\n {\n id: \"qwen3.7-max\",\n name: \"Qwen3.7 Max\",\n api: \"anthropic-messages\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_ANTHROPIC_BASE_URL,\n compat: { thinkingFormat: \"qwen\" },\n reasoning: true,\n input: [\"text\"],\n cost: {\n input: 2.5,\n output: 7.5,\n cacheRead: 0.5,\n cacheWrite: 3.125,\n },\n contextWindow: 1_000_000,\n maxTokens: 65_536,\n },\n {\n id: \"qwen3.7-plus\",\n name: \"Qwen3.7 Plus\",\n api: \"anthropic-messages\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_ANTHROPIC_BASE_URL,\n compat: { thinkingFormat: \"qwen\" },\n reasoning: true,\n input: [\"text\", \"image\"],\n cost: {\n input: 0.4,\n output: 1.6,\n cacheRead: 0.04,\n cacheWrite: 0.5,\n },\n contextWindow: 1_000_000,\n maxTokens: 65_536,\n },\n {\n id: \"qwen3.6-plus\",\n name: \"Qwen3.6 Plus\",\n api: \"anthropic-messages\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_ANTHROPIC_BASE_URL,\n compat: { thinkingFormat: \"qwen\" },\n reasoning: true,\n input: [\"text\", \"image\"],\n cost: {\n input: 0.5,\n output: 3,\n cacheRead: 0.05,\n cacheWrite: 0.625,\n },\n contextWindow: 262_144,\n maxTokens: 65_536,\n },\n ] satisfies OpencodeGoModelDefinition[]\n).map((model) => normalizeModelCompat(model) as OpencodeGoModelDefinition);\n\ntype FetchOpencodeGoLiveModelIdsParams = {\n apiKey?: string;\n discoveryApiKey?: string;\n fetchGuard?: LiveModelCatalogFetchGuard;\n signal?: AbortSignal;\n};\n\nfunction buildOpencodeGoProviderConfig(\n models: OpencodeGoModelDefinition[],\n apiKey?: string,\n): ModelProviderConfig {\n return {\n api: \"openai-completions\",\n baseUrl: OPENCODE_GO_OPENAI_BASE_URL,\n ...(apiKey ? { apiKey } : {}),\n models,\n };\n}\n\nexport function buildStaticOpencodeGoProviderConfig(apiKey?: string): ModelProviderConfig {\n return buildOpencodeGoProviderConfig(OPENCODE_GO_MODELS, apiKey);\n}\n\nexport async function buildOpencodeGoLiveProviderConfig(\n params: FetchOpencodeGoLiveModelIdsParams = {},\n): Promise<ModelProviderConfig> {\n return await buildLiveModelProviderConfig({\n providerId: PROVIDER_ID,\n endpoint: OPENCODE_GO_MODELS_ENDPOINT,\n providerConfig: {\n api: \"openai-completions\",\n baseUrl: OPENCODE_GO_OPENAI_BASE_URL,\n },\n models: OPENCODE_GO_MODELS,\n apiKey: params.apiKey,\n discoveryApiKey: params.discoveryApiKey,\n fetchGuard: params.fetchGuard,\n signal: params.signal,\n timeoutMs: OPENCODE_GO_MODELS_TIMEOUT_MS,\n ttlMs: OPENCODE_GO_MODELS_CACHE_TTL_MS,\n auditContext: \"opencode-go-model-discovery\",\n });\n}\n\nexport function listOpencodeGoModelCatalogEntries(): ModelCatalogEntry[] {\n return OPENCODE_GO_MODELS.map((model) => ({\n provider: model.provider,\n id: model.id,\n name: model.name,\n reasoning: model.reasoning,\n input: model.input,\n contextWindow: model.contextWindow,\n }));\n}\n\nexport function resolveOpencodeGoModel(modelId: string): ProviderRuntimeModel | undefined {\n const normalizedModelId = modelId.trim().toLowerCase();\n return OPENCODE_GO_MODELS.find((model) => model.id === normalizedModelId);\n}\n\nexport function isOpencodeGoKimiNoReasoningModelId(modelId: unknown): boolean {\n return (\n typeof modelId === \"string\" &&\n OPENCODE_GO_KIMI_NO_REASONING_MODEL_IDS.has(modelId.trim().toLowerCase())\n );\n}\n\nexport function normalizeOpencodeGoResolvedModel(\n model: ProviderRuntimeModel,\n): ProviderRuntimeModel | undefined {\n if (!isOpencodeGoKimiNoReasoningModelId(model.id)) {\n return undefined;\n }\n const compat =\n model.compat && typeof model.compat === \"object\" && !Array.isArray(model.compat)\n ? model.compat\n : undefined;\n if (!model.reasoning && !compat?.supportsReasoningEffort) {\n return undefined;\n }\n return {\n ...model,\n reasoning: false,\n compat: {\n ...compat,\n supportsReasoningEffort: false,\n },\n };\n}\n\nfunction normalizeBaseUrl(baseUrl: string | undefined): string {\n return (baseUrl ?? \"\").trim().replace(/\\/+$/, \"\");\n}\n\nexport function normalizeOpencodeGoBaseUrl(params: {\n api?: string | null;\n baseUrl?: string;\n}): string | undefined {\n const normalized = normalizeBaseUrl(params.baseUrl);\n if (!normalized) {\n return undefined;\n }\n if (normalized === OPENCODE_GO_OPENAI_BASE_URL) {\n return OPENCODE_GO_OPENAI_BASE_URL;\n }\n if (normalized === OPENCODE_GO_ANTHROPIC_BASE_URL) {\n return OPENCODE_GO_ANTHROPIC_BASE_URL;\n }\n if (normalized === \"https://opencode.ai/go\") {\n return OPENCODE_GO_ANTHROPIC_BASE_URL;\n }\n if (normalized === \"https://opencode.ai/go/v1\") {\n return params.api === \"anthropic-messages\"\n ? OPENCODE_GO_ANTHROPIC_BASE_URL\n : OPENCODE_GO_OPENAI_BASE_URL;\n }\n return undefined;\n}\n"}}, "extensions/minimax/src/minimax-web-search-provider.ts": {"f1ae41d2f8401c06df6281ef666831ea7d832f7b": {"t": 1785674018.3104918, "n": 2267, "h": "54e8c44758a99dfa", "c": "import { createLazyRuntimeModule } from \"openclaw/plugin-sdk/lazy-runtime\";\n// Minimax provider module implements model/runtime integration.\nimport {\n createWebSearchProviderContractFields,\n type WebSearchProviderPlugin,\n} from \"openclaw/plugin-sdk/provider-web-search-config-contract\";\n\nconst MINIMAX_CREDENTIAL_PATH = \"plugins.entries.minimax.config.webSearch.apiKey\";\nconst MINIMAX_TOKEN_PLAN_ENV_VARS = [\n \"MINIMAX_CODE_PLAN_KEY\",\n \"MINIMAX_CODING_API_KEY\",\n \"MINIMAX_OAUTH_TOKEN\",\n] as const;\nconst MINIMAX_WEB_SEARCH_ENV_VARS = [...MINIMAX_TOKEN_PLAN_ENV_VARS, \"MINIMAX_API_KEY\"] as const;\n\nconst loadMiniMaxWebSearchRuntime = createLazyRuntimeModule(\n () => import(\"./minimax-web-search-provider.runtime.js\"),\n);\n\nconst MiniMaxSearchSchema = {\n type: \"object\",\n properties: {\n query: { type: \"string\", description: \"Search query string.\" },\n count: {\n type: \"integer\",\n description: \"Number of results to return (1-10).\",\n minimum: 1,\n maximum: 10,\n },\n },\n} satisfies Record<string, unknown>;\n\nexport function createMiniMaxWebSearchProvider(): WebSearchProviderPlugin {\n return {\n id: \"minimax\",\n label: \"MiniMax Search\",\n hint: \"Structured results via MiniMax Token Plan search API\",\n onboardingScopes: [\"text-inference\"],\n credentialLabel: \"MiniMax Token Plan key or OAuth token\",\n envVars: [...MINIMAX_WEB_SEARCH_ENV_VARS],\n placeholder: \"sk-cp-...\",\n signupUrl: \"https://platform.minimax.io/user-center/basic-information/interface-key\",\n docsUrl: \"https://docs.openclaw.ai/tools/minimax-search\",\n autoDetectOrder: 15,\n credentialPath: MINIMAX_CREDENTIAL_PATH,\n ...createWebSearchProviderContractFields({\n credentialPath: MINIMAX_CREDENTIAL_PATH,\n searchCredential: { type: \"top-level\" },\n configuredCredential: { pluginId: \"minimax\" },\n }),\n createTool: (ctx) => ({\n description:\n \"Search the web using MiniMax Search API. Returns titles, URLs, snippets, and related search suggestions.\",\n parameters: MiniMaxSearchSchema,\n execute: async (args) => {\n const { executeMiniMaxWebSearchProviderTool } = await loadMiniMaxWebSearchRuntime();\n return await executeMiniMaxWebSearchProviderTool(ctx, args);\n },\n }),\n };\n}\n"}}, "docs/providers/zai.md": {"f1ae41d2f8401c06df6281ef666831ea7d832f7b": {"t": 1785674143.8071864, "n": 8857, "h": "fc3fcf810d0af761", "c": "---\nsummary: \"Use Z.AI (GLM models) with OpenClaw\"\nread_when:\n - You want Z.AI / GLM models in OpenClaw\n - You need a simple ZAI_API_KEY setup\ntitle: \"Z.AI\"\n---\n\nZ.AI is the API platform for **GLM** models. It provides REST APIs for GLM and\nuses API keys for authentication. Create your API key in the Z.AI console.\nOpenClaw uses the `zai` provider with a Z.AI API key.\n\n| Property | Value |\n| -------- | -------------------------------------------- |\n| Provider | `zai` |\n| Package | `@openclaw/zai-provider` |\n| Auth | `ZAI_API_KEY` (legacy alias: `Z_AI_API_KEY`) |\n| API | Z.AI Chat Completions (Bearer auth) |\n\n## GLM models\n\nGLM is a model family, not a separate provider. In OpenClaw, GLM models use\nrefs such as `zai/glm-5.2`: provider `zai`, model id `glm-5.2`.\n\n## Getting started\n\nInstall the provider plugin first:\n\n```bash\nopenclaw plugins install @openclaw/zai-provider\n```\n\n<Tabs>\n <Tab title=\"Auto-detect endpoint\">\n **Best for:** most users. OpenClaw probes supported Z.AI endpoints with your API key and applies the correct base URL automatically.\n\n <Steps>\n <Step title=\"Run onboarding\">\n ```bash\n openclaw onboard --auth-choice zai-api-key\n ```\n </Step>\n <Step title=\"Verify the model is listed\">\n ```bash\n openclaw models list --all --provider zai\n ```\n </Step>\n </Steps>\n\n </Tab>\n\n <Tab title=\"Explicit regional endpoint\">\n **Best for:** users who want to force a specific Coding Plan or general API surface.\n\n <Steps>\n <Step title=\"Pick the right onboarding choice\">\n ```bash\n # Coding Plan Global (recommended for Coding Plan users)\n openclaw onboard --auth-choice zai-coding-global\n\n # Coding Plan CN (China region)\n openclaw onboard --auth-choice zai-coding-cn\n\n # General API\n openclaw onboard --auth-choice zai-global\n\n # General API CN (China region)\n openclaw onboard --auth-choice zai-cn\n ```\n </Step>\n <Step title=\"Verify the model is listed\">\n ```bash\n openclaw models list --all --provider zai\n ```\n </Step>\n </Steps>\n\n </Tab>\n</Tabs>\n\n### Endpoints\n\n| Onboarding choice | Base URL | Default model |\n| ------------------- | --------------------------------------------- | ------------- |\n| `zai-global` | `https://api.z.ai/api/paas/v4` | `glm-5.1` |\n| `zai-cn` | `https://open.bigmodel.cn/api/paas/v4` | `glm-5.1` |\n| `zai-coding-global` | `https://api.z.ai/api/coding/paas/v4` | `glm-5.2` |\n| `zai-coding-cn` | `https://open.bigmodel.cn/api/coding/paas/v4` | `glm-5.2` |\n\n`zai-api-key` auto-detects one of these four by probing your key against each\nendpoint's chat-completions API, checking general endpoints (`zai-global`,\nthen `zai-cn`) before Coding Plan endpoints (`zai-coding-global`, then\n`zai-coding-cn`), and stopping at the first endpoint that accepts a request.\nUse an explicit `--auth-choice` to force a Coding Plan endpoint if your key\nworks on both.\n\n## Config example\n\n<Tip>\n`zai-api-key` lets OpenClaw detect the matching Z.AI endpoint from the key and\napply the correct base URL automatically. Use the explicit regional choices when\nyou want to force a specific Coding Plan or general API surface.\n</Tip>\n\n```json5\n{\n env: { ZAI_API_KEY: \"sk-...\" },\n models: {\n providers: {\n zai: {\n // GLM-5.2 uses the Coding Plan endpoint.\n baseUrl: \"https://api.z.ai/api/coding/paas/v4\",\n },\n },\n },\n agents: { defaults: { model: { primary: \"zai/glm-5.2\" } } },\n}\n```\n\n## Built-in catalog\n\nThe `zai` provider plugin ships its catalog in the plugin manifest, so read-only\nlisting can show known GLM rows without loading provider runtime:\n\n```bash\nopenclaw models list --all --provider zai\n```\n\nThe manifest-backed catalog currently includes:\n\n| Model ref | Notes |\n| -------------------- | ------------------------------- |\n| `zai/glm-5.2` | Coding Plan default; 1M context |\n| `zai/glm-5.1` | General API default |\n| `zai/glm-5` | |\n| `zai/glm-5-turbo` | |\n| `zai/glm-5v-turbo` | |\n| `zai/glm-4.7` | |\n| `zai/glm-4.7-flash` | |\n| `zai/glm-4.7-flashx` | |\n| `zai/glm-4.6` | |\n| `zai/glm-4.6v` | |\n| `zai/glm-4.5` | |\n| `zai/glm-4.5-air` | |\n| `zai/glm-4.5-flash` | |\n| `zai/glm-4.5v` | |\n\n<Tip>\nGLM models are available as `zai/<model>` (example: `zai/glm-5`).\n</Tip>\n\n<Note>\nCoding Plan setup defaults to `zai/glm-5.2`; general API setup keeps\n`zai/glm-5.1`. On the Coding Plan endpoints, auto-detection falls back to\n`glm-5.1` and then `glm-4.7` when the key/plan does not expose GLM-5.2. GLM\nversions and availability can change; run `openclaw models list --all --provider zai`\nto see the catalog known to your installed version.\n</Note>\n\n## Thinking levels\n\n<Tabs>\n <Tab title=\"GLM-5.2\">\n Full range: `off`, `low`, `high`, `max` (default `off`). OpenClaw maps\n `low` and `high` to Z.AI's `high` reasoning effort, and `max` to Z.AI's\n `max` effort, via `reasoning_effort` on the request payload.\n </Tab>\n <Tab title=\"Other GLM models\">\n Binary toggle only: `off` and `low` (shown as `on` in pickers), default\n `off`. Setting thinking to `off` sends `thinking: { type: \"disabled\" }`;\n any other level leaves the request payload untouched (Z.AI's own default\n reasoning behavior applies).\n </Tab>\n</Tabs>\n\nSetting thinking to `off` avoids responses that spend the output budget on\n`reasoning_content` before visible text.\n\n## Advanced configuration\n\n<AccordionGroup>\n <Accordion title=\"Forward-resolving unknown GLM-5 models\">\n Unknown `glm-5*` ids still forward-resolve on the provider path by\n synthesizing provider-owned metadata from the `glm-4.7` template when the id\n matches the current GLM-5 family shape.\n </Accordion>\n\n <Accordion title=\"Tool-call streaming\">\n `tool_stream` is enabled by default for Z.AI tool-call streaming. To disable it:\n\n ```json5\n {\n agents: {\n defaults: {\n models: {\n \"zai/<model>\": {\n params: { tool_stream: false },\n },\n },\n },\n },\n }\n ```\n\n </Accordion>\n\n <Accordion title=\"Preserved thinking\">\n Preserved thinking is opt-in because Z.AI requires the full historical\n `reasoning_content` to be replayed, which increases prompt tokens. Enable it\n per model:\n\n ```json5\n {\n agents: {\n defaults: {\n models: {\n \"zai/glm-5.2\": {\n params: { preserveThinking: true },\n },\n },\n },\n },\n }\n ```\n\n When enabled and thinking is on, OpenClaw sends\n `thinking: { type: \"enabled\", clear_thinking: false }` and replays prior\n `reasoning_content` for the same OpenAI-compatible transcript. The snake_case\n `preserve_thinking` param key works as an alias.\n\n Advanced users can still override the exact provider payload with\n `params.extra_body.thinking`.\n\n </Accordion>\n\n <Accordion title=\"Image understanding\">\n The Z.AI plugin registers image understanding.\n\n | Property | Value |\n | ------------- | ----------- |\n | Model | `glm-4.6v` |\n\n Image understanding is auto-resolved from the configured Z.AI auth — no\n additional config is needed.\n\n </Accordion>\n\n <Accordion title=\"Auth details\">\n - Z.AI uses Bearer auth with your API key.\n - The `zai-api-key` onboarding choice auto-detects the matching Z.AI endpoint by probing supported endpoints with your key.\n - Use the explicit regional choices (`zai-coding-global`, `zai-coding-cn`, `zai-global`, `zai-cn`) when you want to force a specific API surface.\n - The legacy env var `Z_AI_API_KEY` is still accepted; OpenClaw copies it to `ZAI_API_KEY` at startup if `ZAI_API_KEY` is unset.\n\n </Accordion>\n</AccordionGroup>\n\n## Related\n\n<CardGroup cols={2}>\n <Card title=\"Model selection\" href=\"/concepts/model-providers\" icon=\"layers\">\n Choosing providers, model refs, and failover behavior.\n </Card>\n <Card title=\"Configuration reference\" href=\"/gateway/configuration-reference\" icon=\"gear\">\n Full OpenClaw config schema, including provider and model settings.\n </Card>\n</CardGroup>\n"}}, "docs/providers/qwen.md": {"f1ae41d2f8401c06df6281ef666831ea7d832f7b": {"t": 1785674219.7377741, "n": 17798, "h": "ccafbc58258c018b", "c": "---\nsummary: \"Use Qwen Cloud through its OpenClaw plugin\"\nread_when:\n - You want to use Qwen with OpenClaw\n - You have an Alibaba Cloud Token Plan subscription\n - You previously used Qwen OAuth\ntitle: \"Qwen\"\n---\n\nQwen Cloud is an official external OpenClaw provider plugin with canonical id `qwen`. It targets Qwen Cloud / Alibaba DashScope Standard and Coding Plan endpoints, exposes Token Plan as `qwen-token-plan`, keeps `modelstudio` as a compatibility alias, independently owns Alibaba's documented `bailian-token-plan` custom-provider id, and exposes the Qwen Portal token flow as [`qwen-oauth`](/providers/qwen-oauth).\n\n| Property | Value |\n| ---------------------- | ------------------------------------------ |\n| Provider | `qwen` |\n| Token Plan provider | `qwen-token-plan` |\n| Portal provider | [`qwen-oauth`](/providers/qwen-oauth) |\n| Preferred env var | `QWEN_API_KEY` |\n| Token Plan env var | `QWEN_TOKEN_PLAN_API_KEY` |\n| Also accepted (compat) | `MODELSTUDIO_API_KEY`, `DASHSCOPE_API_KEY` |\n| API style | OpenAI-compatible |\n\n<Tip>\n`qwen3.7-plus` and `qwen3.6-plus` work with Coding Plan and Standard endpoints.\nFor `qwen3.7-max` or `qwen3.6-flash`, use a **Standard (pay-as-you-go)** endpoint.\n</Tip>\n\n## Install plugin\n\n`qwen` ships as an official external plugin, not bundled with core. Install it and restart Gateway:\n\n```bash\nopenclaw plugins install @openclaw/qwen-provider\nopenclaw gateway restart\n```\n\n## Getting started\n\nChoose your plan type and follow the setup steps.\n\n<Tabs>\n <Tab title=\"Coding Plan (subscription)\">\n **Best for:** subscription-based access through the Qwen Coding Plan.\n\n <Steps>\n <Step title=\"Get your API key\">\n Create or copy an API key from [home.qwencloud.com/api-keys](https://home.qwencloud.com/api-keys).\n </Step>\n <Step title=\"Run onboarding\">\n For the **Global** endpoint:\n\n ```bash\n openclaw onboard --auth-choice qwen-api-key\n ```\n\n For the **China** endpoint:\n\n ```bash\n openclaw onboard --auth-choice qwen-api-key-cn\n ```\n </Step>\n <Step title=\"Set a default model\">\n ```json5\n {\n agents: {\n defaults: {\n model: { primary: \"qwen/qwen3.5-plus\" },\n },\n },\n }\n ```\n </Step>\n <Step title=\"Verify the model is available\">\n ```bash\n openclaw models list --provider qwen\n ```\n </Step>\n </Steps>\n\n <Note>\n Legacy `modelstudio-*` auth-choice ids and `modelstudio/...` model refs still\n work as compatibility aliases, but new setup flows should prefer the canonical\n `qwen-*` auth-choice ids and `qwen/...` model refs. If you define an exact\n custom `models.providers.modelstudio` entry with another `api` value, that\n custom provider owns `modelstudio/...` refs instead of the Qwen compatibility\n alias.\n </Note>\n\n </Tab>\n\n <Tab title=\"Standard (pay-as-you-go)\">\n **Best for:** pay-as-you-go access through the Standard Model Studio endpoint, including `qwen3.7-max` and `qwen3.6-flash`, which are not available on the Coding Plan.\n\n <Steps>\n <Step title=\"Get your API key\">\n Create or copy an API key from [home.qwencloud.com/api-keys](https://home.qwencloud.com/api-keys).\n </Step>\n <Step title=\"Run onboarding\">\n For the **Global** endpoint:\n\n ```bash\n openclaw onboard --auth-choice qwen-standard-api-key\n ```\n\n For the **China** endpoint:\n\n ```bash\n openclaw onboard --auth-choice qwen-standard-api-key-cn\n ```\n </Step>\n <Step title=\"Set a default model\">\n ```json5\n {\n agents: {\n defaults: {\n model: { primary: \"qwen/qwen3.5-plus\" },\n },\n },\n }\n ```\n </Step>\n <Step title=\"Verify the model is available\">\n ```bash\n openclaw models list --provider qwen\n ```\n </Step>\n </Steps>\n\n <Note>\n Legacy `modelstudio-*` auth-choice ids and `modelstudio/...` model refs still\n work as compatibility aliases, but new setup flows should prefer the canonical\n `qwen-*` auth-choice ids and `qwen/...` model refs. If you define an exact\n custom `models.providers.modelstudio` entry with another `api` value, that\n custom provider owns `modelstudio/...` refs instead of the Qwen compatibility\n alias.\n </Note>\n\n </Tab>\n\n <Tab title=\"Token Plan (Team Edition)\">\n **Best for:** credit-based team subscription access to Qwen and supported third-party models through Alibaba Cloud Model Studio.\n\n <Steps>\n <Step title=\"Get your dedicated key\">\n Assign a Token Plan seat and create its dedicated `sk-sp-...` key. Token Plan, Coding Plan, and pay-as-you-go keys are not interchangeable. See the [Global Token Plan overview](https://www.alibabacloud.com/help/en/model-studio/token-plan-overview) or [China Token Plan overview](https://help.aliyun.com/zh/model-studio/token-plan-overview).\n </Step>\n <Step title=\"Run onboarding\">\n For the **Global / International** endpoint in Singapore:\n\n ```bash\n openclaw onboard --auth-choice qwen-token-plan\n ```\n\n For the **China** endpoint in Beijing:\n\n ```bash\n openclaw onboard --auth-choice qwen-token-plan-cn\n ```\n </Step>\n <Step title=\"Verify the provider\">\n ```bash\n openclaw models list --provider qwen-token-plan\n openclaw agent --model qwen-token-plan/qwen3.7-plus --message \"Reply with: token plan ready\"\n ```\n </Step>\n </Steps>\n\n <Note>\n Alibaba's OpenClaw guide uses `bailian-token-plan` for a manual custom\n provider. The plugin registers that id as a compatibility owner, but new\n configs should use `qwen-token-plan`. An exact custom\n `models.providers.bailian-token-plan` entry keeps ownership of its configured\n transport and catalog; it is never merged into the canonical OpenAI catalog.\n </Note>\n\n <Warning>\n Use Token Plan only for interactive OpenClaw sessions. Do not select it for\n cron jobs, unattended scripts, or application backends. Alibaba states that\n non-interactive use can suspend the subscription or revoke its API key.\n </Warning>\n\n </Tab>\n\n <Tab title=\"Qwen OAuth / Portal\">\n **Best for:** a Qwen Portal token against `https://portal.qwen.ai/v1`.\n\n See [Qwen OAuth / Portal](/providers/qwen-oauth) for the dedicated provider\n page and migration notes.\n\n <Steps>\n <Step title=\"Provide your portal token\">\n ```bash\n openclaw onboard --auth-choice qwen-oauth\n ```\n </Step>\n <Step title=\"Set a default model\">\n ```json5\n {\n agents: {\n defaults: {\n model: { primary: \"qwen-oauth/qwen3.5-plus\" },\n },\n },\n }\n ```\n </Step>\n <Step title=\"Verify the model is available\">\n ```bash\n openclaw models list --provider qwen-oauth\n ```\n </Step>\n </Steps>\n\n <Note>\n `qwen-oauth` uses the same `QWEN_API_KEY` env var name as the Qwen Cloud\n provider, but stores auth under the `qwen-oauth` provider id when configured\n through OpenClaw onboarding.\n </Note>\n\n </Tab>\n</Tabs>\n\n## Plan types and endpoints\n\n| Plan | Region | Auth choice | Endpoint |\n| -------------------------- | ------ | -------------------------- | ---------------------------------------------------------------- |\n| Coding Plan (subscription) | China | `qwen-api-key-cn` | `coding.dashscope.aliyuncs.com/v1` |\n| Coding Plan (subscription) | Global | `qwen-api-key` | `coding-intl.dashscope.aliyuncs.com/v1` |\n| Qwen Portal | Global | `qwen-oauth` | `portal.qwen.ai/v1` |\n| Standard (pay-as-you-go) | China | `qwen-standard-api-key-cn` | `dashscope.aliyuncs.com/compatible-mode/v1` |\n| Standard (pay-as-you-go) | Global | `qwen-standard-api-key` | `dashscope-intl.aliyuncs.com/compatible-mode/v1` |\n| Token Plan (Team Edition) | China | `qwen-token-plan-cn` | `token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1` |\n| Token Plan (Team Edition) | Global | `qwen-token-plan` | `token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1` |\n\nThe provider auto-selects the endpoint based on your auth choice. Canonical\nchoices use the `qwen-*` family; `modelstudio-*` remains compatibility-only.\nOverride with a custom `baseUrl` in config.\n\n<Tip>\n**Manage keys:** [home.qwencloud.com/api-keys](https://home.qwencloud.com/api-keys) |\n**Docs:** [docs.qwencloud.com](https://docs.qwencloud.com/developer-guides/getting-started/introduction)\n</Tip>\n\n## Built-in catalog\n\nOpenClaw ships this Qwen static catalog. The catalog is endpoint-aware: Coding\nPlan configs omit models that only work on the Standard endpoint.\n\n| Model ref | Input | Context | Notes |\n| --------------------------- | ----------- | --------- | ----------------------- |\n| `qwen/qwen3.5-plus` | text, image | 1,000,000 | Default model |\n| `qwen/qwen3.6-flash` | text, image | 1,000,000 | Standard endpoints only |\n| `qwen/qwen3.6-plus` | text, image | 1,000,000 | Coding Plan + Standard |\n| `qwen/qwen3.7-max` | text | 1,000,000 | Standard endpoints only |\n| `qwen/qwen3.7-plus` | text, image | 1,000,000 | Coding Plan + Standard |\n| `qwen/qwen3-max-2026-01-23` | text | 262,144 | Qwen Max line |\n| `qwen/qwen3-coder-next` | text | 262,144 | Coding |\n| `qwen/qwen3-coder-plus` | text | 1,000,000 | Coding |\n| `qwen/MiniMax-M2.5` | text | 1,000,000 | Reasoning enabled |\n| `qwen/glm-5` | text | 202,752 | GLM |\n| `qwen/glm-4.7` | text | 202,752 | GLM |\n| `qwen/kimi-k2.5` | text, image | 262,144 | Moonshot AI via Alibaba |\n| `qwen-oauth/qwen3.5-plus` | text, image | 1,000,000 | Qwen Portal default |\n\n<Note>\nAvailability can still vary by endpoint and billing plan even when a model is\npresent in the static catalog.\n</Note>\n\n### Token Plan catalog\n\nToken Plan uses a separate exact-string allowlist. Image-generation-only plan\nmodels are not included here because they use different APIs.\n\n| Model ref | Input | Context |\n| ----------------------------------- | ----------- | --------- |\n| `qwen-token-plan/qwen3.7-max` | text | 1,000,000 |\n| `qwen-token-plan/qwen3.7-plus` | text, image | 1,000,000 |\n| `qwen-token-plan/qwen3.6-plus` | text, image | 1,000,000 |\n| `qwen-token-plan/qwen3.6-flash` | text, image | 1,000,000 |\n| `qwen-token-plan/deepseek-v4-pro` | text | 1,000,000 |\n| `qwen-token-plan/deepseek-v4-flash` | text | 1,000,000 |\n| `qwen-token-plan/deepseek-v3.2` | text | 131,072 |\n| `qwen-token-plan/kimi-k2.7-code` | text, image | 262,144 |\n| `qwen-token-plan/kimi-k2.6` | text, image | 262,144 |\n| `qwen-token-plan/kimi-k2.5` | text, image | 262,144 |\n| `qwen-token-plan/glm-5.2` | text | 1,000,000 |\n| `qwen-token-plan/glm-5.1` | text | 202,752 |\n| `qwen-token-plan/glm-5` | text | 202,752 |\n| `qwen-token-plan/MiniMax-M2.5` | text | 196,608 |\n\n## Thinking controls\n\n`qwen3.7-max`, `qwen3.7-plus`, `qwen3.6-flash`, and `qwen3.6-plus` are\nreasoning-enabled in the built-in catalog. For reasoning models on the `qwen`\nfamily, the provider maps OpenClaw thinking levels to DashScope's top-level\n`enable_thinking` request flag: disabled thinking sends `enable_thinking: false`,\nany other level sends `enable_thinking: true`. Custom models can opt into an\nalternate chat-template thinking payload by setting\n`compat.thinkingFormat: \"qwen-chat-template\"` on the model entry.\n\nToken Plan models are also marked reasoning-capable. `kimi-k2.7-code` and\n`MiniMax-M2.5` are thinking-only, so OpenClaw keeps thinking enabled even when\nthe session requests `/think off`. DeepSeek V4 maps `minimal` through `high` to\nthe service's `high` effort and maps `xhigh` or `max` to `max`. GLM 5.2 accepts\nthe full `minimal` through `max` range; GLM 5.1 and GLM 5 accept through\n`xhigh`, and all three default to `high`. Other hybrid models follow the\nrequested on/off state.\n\n## Multimodal add-ons\n\nThe `qwen` plugin exposes multimodal capabilities on the **Standard** DashScope\nendpoints only, not the Coding Plan endpoints:\n\n- **Image and video understanding** via `qwen-vl-max-latest`\n- **Wan video generation** via `wan2.6-t2v` (default), `wan2.6-i2v`, `wan2.6-r2v`, `wan2.6-r2v-flash`, `wan2.7-r2v`\n\nMedia understanding is auto-resolved from the configured Qwen auth; no extra\nconfig is needed. Make sure you are on a Standard (pay-as-you-go) endpoint for\nmedia understanding to work.\n\nTo make Qwen the default video provider:\n\n```json5\n{\n agents: {\n defaults: {\n videoGenerationModel: { primary: \"qwen/wan2.6-t2v\" },\n },\n },\n}\n```\n\nVideo-generation limits: 1 output video per request, up to 1 input image\n(image-to-video), up to 4 input videos (video-to-video), max 10 seconds\nduration. Supports `size`, `aspectRatio`, `resolution`, `audio`, and\n`watermark`. Reference image/video inputs require remote http(s) URLs; local\nfile paths are rejected up front because the DashScope video endpoint does not\naccept uploaded local buffers for those references.\n\n<Note>\nSee [Video generation](/tools/video-generation) for shared tool parameters, provider selection, and failover behavior.\n</Note>\n\n## Advanced configuration\n\n<AccordionGroup>\n <Accordion title=\"Qwen 3.6 and 3.7 availability\">\n `qwen3.7-plus` and `qwen3.6-plus` are available on Coding Plan and Standard endpoints. `qwen3.7-max` and `qwen3.6-flash` are Standard-only. The Standard (pay-as-you-go) endpoints are:\n\n - China: `dashscope.aliyuncs.com/compatible-mode/v1`\n - Global: `dashscope-intl.aliyuncs.com/compatible-mode/v1`\n\n OpenClaw omits `qwen3.7-max` and `qwen3.6-flash` from Coding Plan catalogs.\n If a Coding Plan endpoint returns an \"unsupported model\" error for either,\n switch to the matching Standard endpoint and key.\n\n </Accordion>\n\n <Accordion title=\"Video generation region routing\">\n OpenClaw maps the configured Qwen region to the matching DashScope AIGC host\n before submitting a video job:\n\n - Global/Intl: `https://dashscope-intl.aliyuncs.com`\n - China: `https://dashscope.aliyuncs.com`\n\n A normal `models.providers.qwen.baseUrl` pointing at either the Coding Plan\n or Standard Qwen hosts still routes video generation to the matching\n regional DashScope video endpoint.\n\n </Accordion>\n\n <Accordion title=\"Streaming usage compatibility\">\n Native Qwen endpoints advertise streaming usage compatibility on the shared\n `openai-completions` transport, so DashScope-compatible custom provider ids\n targeting the same native hosts inherit the same behavior without requiring\n the built-in `qwen` provider id specifically. This applies to Coding Plan,\n Standard, and Token Plan endpoints:\n\n - `https://coding.dashscope.aliyuncs.com/v1`\n - `https://coding-intl.dashscope.aliyuncs.com/v1`\n - `https://dashscope.aliyuncs.com/compatible-mode/v1`\n - `https://dashscope-intl.aliyuncs.com/compatible-mode/v1`\n - `https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1`\n - `https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1`\n\n </Accordion>\n\n <Accordion title=\"Capability plan\">\n The `qwen` plugin is being positioned as the vendor home for the full Qwen\n Cloud surface, not just coding/text models.\n\n - **Text/chat models:** available through the plugin\n - **Tool calling, structured output, thinking:** inherited from the OpenAI-compatible transport\n - **Image generation:** planned at the provider-plugin layer\n - **Image/video understanding:** available through the plugin on the Standard endpoint\n - **Speech/audio:** planned at the provider-plugin layer\n - **Memory embeddings/reranking:** planned through the embedding adapter surface\n - **Video generation:** available through the plugin through the shared video-generation capability\n\n </Accordion>\n\n <Accordion title=\"Environment and daemon setup\">\n If the Gateway runs as a daemon (launchd/systemd), make sure `QWEN_API_KEY`\n or `QWEN_TOKEN_PLAN_API_KEY` is available to that process (for example, in\n `~/.openclaw/.env` or via `env.shellEnv`).\n </Accordion>\n</AccordionGroup>\n\n## Related\n\n<CardGroup cols={2}>\n <Card title=\"Model selection\" href=\"/concepts/model-providers\" icon=\"layers\">\n Choosing providers, model refs, and failover behavior.\n </Card>\n <Card title=\"Video generation\" href=\"/tools/video-generation\" icon=\"video\">\n Shared video tool parameters and provider selection.\n </Card>\n <Card title=\"Alibaba Model Studio\" href=\"/providers/alibaba\" icon=\"cloud\">\n Bundled Wan video generation provider on the same DashScope platform.\n </Card>\n <Card title=\"Troubleshooting\" href=\"/help/troubleshooting\" icon=\"wrench\">\n General troubleshooting and FAQ.\n </Card>\n</CardGroup>\n"}}, "extensions/longcat/openclaw.plugin.json": {"f1ae41d2f8401c06df6281ef666831ea7d832f7b": {"t": 1785674287.6375544, "n": 2017, "h": "c953155b8c9a7aa6", "c": "{\n \"id\": \"longcat\",\n \"name\": \"LongCat\",\n \"description\": \"OpenClaw LongCat provider plugin.\",\n \"activation\": {\n \"onStartup\": false\n },\n \"enabledByDefault\": true,\n \"providers\": [\"longcat\"],\n \"providerRequest\": {\n \"providers\": {\n \"longcat\": {\n \"family\": \"longcat\"\n }\n }\n },\n \"modelCatalog\": {\n \"providers\": {\n \"longcat\": {\n \"baseUrl\": \"https://api.longcat.chat/openai\",\n \"api\": \"openai-completions\",\n \"models\": [\n {\n \"id\": \"LongCat-2.0\",\n \"name\": \"LongCat 2.0\",\n \"reasoning\": true,\n \"input\": [\"text\"],\n \"contextWindow\": 1048576,\n \"maxTokens\": 131072,\n \"cost\": {\n \"input\": 0.75,\n \"output\": 2.95,\n \"cacheRead\": 0.015,\n \"cacheWrite\": 0.75\n },\n \"compat\": {\n \"supportsStore\": false,\n \"supportsDeveloperRole\": false,\n \"supportsReasoningEffort\": false,\n \"supportsUsageInStreaming\": false,\n \"supportsStrictMode\": false,\n \"maxTokensField\": \"max_tokens\",\n \"requiresReasoningContentOnAssistantMessages\": true,\n \"thinkingFormat\": \"deepseek\"\n }\n }\n ]\n }\n },\n \"discovery\": {\n \"longcat\": \"static\"\n }\n },\n \"setup\": {\n \"providers\": [\n {\n \"id\": \"longcat\",\n \"envVars\": [\"LONGCAT_API_KEY\"]\n }\n ]\n },\n \"providerAuthChoices\": [\n {\n \"provider\": \"longcat\",\n \"method\": \"api-key\",\n \"choiceId\": \"longcat-api-key\",\n \"choiceLabel\": \"LongCat API key\",\n \"groupId\": \"longcat\",\n \"groupLabel\": \"LongCat\",\n \"groupHint\": \"API key\",\n \"optionKey\": \"longcatApiKey\",\n \"cliFlag\": \"--longcat-api-key\",\n \"cliOption\": \"--longcat-api-key <key>\",\n \"cliDescription\": \"LongCat API key\"\n }\n ],\n \"configSchema\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {}\n }\n}\n"}}, "scripts/lib/official-external-provider-catalog.json": {"f1ae41d2f8401c06df6281ef666831ea7d832f7b": {"t": 1785674289.034942, "n": 58304, "h": "6619f3188fb0422a", "c": "{\n \"entries\": [\n {\n \"name\": \"@openclaw/amazon-bedrock-provider\",\n \"description\": \"OpenClaw Amazon Bedrock provider plugin\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"amazon-bedrock\",\n \"label\": \"Amazon Bedrock\"\n },\n \"providers\": [\n {\n \"id\": \"amazon-bedrock\",\n \"name\": \"Amazon Bedrock\",\n \"docs\": \"/providers/bedrock\",\n \"categories\": [\"cloud\", \"llm\"]\n }\n ],\n \"install\": {\n \"npmSpec\": \"@openclaw/amazon-bedrock-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.5.12-beta.1\"\n }\n }\n },\n {\n \"name\": \"@openclaw/amazon-bedrock-mantle-provider\",\n \"description\": \"OpenClaw Amazon Bedrock Mantle provider plugin\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"amazon-bedrock-mantle\",\n \"label\": \"Amazon Bedrock Mantle\"\n },\n \"providers\": [\n {\n \"id\": \"amazon-bedrock-mantle\",\n \"name\": \"Amazon Bedrock Mantle\",\n \"docs\": \"/providers/bedrock-mantle\",\n \"categories\": [\"cloud\", \"llm\"]\n }\n ],\n \"install\": {\n \"npmSpec\": \"@openclaw/amazon-bedrock-mantle-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.5.12-beta.1\"\n }\n }\n },\n {\n \"name\": \"@openclaw/anthropic-vertex-provider\",\n \"description\": \"OpenClaw Anthropic Vertex provider plugin\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"anthropic-vertex\",\n \"label\": \"Anthropic Vertex\"\n },\n \"providers\": [\n {\n \"id\": \"anthropic-vertex\",\n \"name\": \"Anthropic Vertex\",\n \"docs\": \"/providers/models\",\n \"categories\": [\"cloud\", \"llm\"]\n }\n ],\n \"install\": {\n \"npmSpec\": \"@openclaw/anthropic-vertex-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.5.12-beta.1\"\n }\n }\n },\n {\n \"name\": \"@openclaw/arcee-provider\",\n \"description\": \"OpenClaw Arcee provider plugin.\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"arcee\",\n \"label\": \"Arcee AI\"\n },\n \"providers\": [\n {\n \"id\": \"arcee\",\n \"name\": \"Arcee AI\",\n \"docs\": \"/providers/arcee\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"ARCEEAI_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"arcee-platform\",\n \"choiceId\": \"arceeai-api-key\",\n \"choiceLabel\": \"Arcee AI API key\",\n \"choiceHint\": \"Direct (chat.arcee.ai)\",\n \"groupId\": \"arcee\",\n \"groupLabel\": \"Arcee AI\",\n \"groupHint\": \"Direct API or OpenRouter\",\n \"optionKey\": \"arceeaiApiKey\",\n \"cliFlag\": \"--arceeai-api-key\",\n \"cliOption\": \"--arceeai-api-key <key>\",\n \"cliDescription\": \"Arcee AI API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n },\n {\n \"method\": \"openrouter\",\n \"choiceId\": \"arceeai-openrouter\",\n \"choiceLabel\": \"OpenRouter API key\",\n \"choiceHint\": \"Via OpenRouter (openrouter.ai)\",\n \"groupId\": \"arcee\",\n \"groupLabel\": \"Arcee AI\",\n \"groupHint\": \"Direct API or OpenRouter\",\n \"optionKey\": \"openrouterApiKey\",\n \"cliFlag\": \"--openrouter-api-key\",\n \"cliOption\": \"--openrouter-api-key <key>\",\n \"cliDescription\": \"OpenRouter API key for Arcee AI models\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/arcee-provider\",\n \"npmSpec\": \"@openclaw/arcee-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.8\"\n }\n }\n },\n {\n \"name\": \"@openclaw/cerebras-provider\",\n \"description\": \"OpenClaw Cerebras provider plugin.\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"cerebras\",\n \"label\": \"Cerebras\"\n },\n \"providerEndpoints\": [\n {\n \"endpointClass\": \"cerebras-native\",\n \"hosts\": [\n \"api.cerebras.ai\"\n ]\n }\n ],\n \"providers\": [\n {\n \"id\": \"cerebras\",\n \"name\": \"Cerebras\",\n \"docs\": \"/providers/cerebras\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"CEREBRAS_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"cerebras-api-key\",\n \"choiceLabel\": \"Cerebras API key\",\n \"groupId\": \"cerebras\",\n \"groupLabel\": \"Cerebras\",\n \"groupHint\": \"Fast OpenAI-compatible inference\",\n \"optionKey\": \"cerebrasApiKey\",\n \"cliFlag\": \"--cerebras-api-key\",\n \"cliOption\": \"--cerebras-api-key <key>\",\n \"cliDescription\": \"Cerebras API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/cerebras-provider\",\n \"npmSpec\": \"@openclaw/cerebras-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.8\"\n }\n }\n },\n {\n \"name\": \"@openclaw/chutes-provider\",\n \"description\": \"OpenClaw Chutes.ai provider plugin.\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"chutes\",\n \"label\": \"Chutes\"\n },\n \"providerEndpoints\": [\n {\n \"endpointClass\": \"chutes-native\",\n \"hosts\": [\n \"llm.chutes.ai\"\n ]\n }\n ],\n \"providers\": [\n {\n \"id\": \"chutes\",\n \"name\": \"Chutes\",\n \"docs\": \"/providers/chutes\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"CHUTES_API_KEY\",\n \"CHUTES_OAUTH_TOKEN\"\n ],\n \"authChoices\": [\n {\n \"method\": \"oauth\",\n \"choiceId\": \"chutes\",\n \"choiceLabel\": \"Chutes (OAuth)\",\n \"choiceHint\": \"Browser sign-in\",\n \"groupId\": \"chutes\",\n \"groupLabel\": \"Chutes\",\n \"groupHint\": \"OAuth + API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n },\n {\n \"method\": \"api-key\",\n \"choiceId\": \"chutes-api-key\",\n \"choiceLabel\": \"Chutes API key\",\n \"choiceHint\": \"Open-source models including Llama, DeepSeek, and more\",\n \"groupId\": \"chutes\",\n \"groupLabel\": \"Chutes\",\n \"groupHint\": \"OAuth + API key\",\n \"optionKey\": \"chutesApiKey\",\n \"cliFlag\": \"--chutes-api-key\",\n \"cliOption\": \"--chutes-api-key <key>\",\n \"cliDescription\": \"Chutes API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/chutes-provider\",\n \"npmSpec\": \"@openclaw/chutes-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.8\"\n }\n }\n },\n {\n \"name\": \"@openclaw/cohere-provider\",\n \"description\": \"OpenClaw Cohere provider plugin\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"cohere\",\n \"label\": \"Cohere\"\n },\n \"providers\": [\n {\n \"id\": \"cohere\",\n \"name\": \"Cohere\",\n \"docs\": \"/providers/cohere\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"cohere-api-key\",\n \"choiceLabel\": \"Cohere API key\",\n \"groupId\": \"cohere\",\n \"groupLabel\": \"Cohere\",\n \"groupHint\": \"OpenAI-compatible inference\",\n \"optionKey\": \"cohereApiKey\",\n \"cliFlag\": \"--cohere-api-key\",\n \"cliOption\": \"--cohere-api-key <key>\",\n \"cliDescription\": \"Cohere API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/cohere-provider\",\n \"npmSpec\": \"@openclaw/cohere-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.8\"\n }\n }\n },\n {\n \"name\": \"@openclaw/cloudflare-ai-gateway-provider\",\n \"description\": \"OpenClaw Cloudflare AI Gateway provider plugin.\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"cloudflare-ai-gateway\",\n \"label\": \"Cloudflare AI Gateway\"\n },\n \"providers\": [\n {\n \"id\": \"cloudflare-ai-gateway\",\n \"name\": \"Cloudflare AI Gateway\",\n \"docs\": \"/providers/cloudflare-ai-gateway\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"CLOUDFLARE_AI_GATEWAY_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"cloudflare-ai-gateway-api-key\",\n \"choiceLabel\": \"Cloudflare AI Gateway\",\n \"choiceHint\": \"Account ID + Gateway ID + API key\",\n \"groupId\": \"cloudflare-ai-gateway\",\n \"groupLabel\": \"Cloudflare AI Gateway\",\n \"groupHint\": \"Account ID + Gateway ID + API key\",\n \"optionKey\": \"cloudflareAiGatewayApiKey\",\n \"cliFlag\": \"--cloudflare-ai-gateway-api-key\",\n \"cliOption\": \"--cloudflare-ai-gateway-api-key <key>\",\n \"cliDescription\": \"Cloudflare AI Gateway API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/cloudflare-ai-gateway-provider\",\n \"npmSpec\": \"@openclaw/cloudflare-ai-gateway-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.8\"\n }\n }\n },\n {\n \"name\": \"@openclaw/codex\",\n \"description\": \"OpenClaw Codex harness and model provider plugin\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"codex\",\n \"label\": \"Codex\"\n },\n \"contracts\": {\n \"migrationProviders\": [\"codex\"]\n },\n \"providers\": [\n {\n \"id\": \"codex\",\n \"name\": \"Codex\",\n \"docs\": \"/providers/models\",\n \"categories\": [\"cloud\", \"llm\"],\n \"authChoices\": [\n {\n \"method\": \"app-server\",\n \"choiceId\": \"codex\",\n \"choiceLabel\": \"Codex app-server\",\n \"choiceHint\": \"Use the Codex app-server runtime and managed model catalog.\",\n \"assistantPriority\": -40,\n \"groupId\": \"codex\",\n \"groupLabel\": \"Codex\",\n \"groupHint\": \"Codex app-server model provider\",\n \"onboardingScopes\": [\"text-inference\"]\n }\n ]\n }\n ],\n \"install\": {\n \"npmSpec\": \"@openclaw/codex\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.5.1-beta.1\"\n }\n }\n },\n {\n \"name\": \"@openclaw/deepinfra-provider\",\n \"description\": \"OpenClaw DeepInfra provider plugin.\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"deepinfra\",\n \"label\": \"DeepInfra\"\n },\n \"providerEndpoints\": [\n {\n \"endpointClass\": \"deepinfra-native\",\n \"hosts\": [\n \"api.deepinfra.com\"\n ]\n }\n ],\n \"providers\": [\n {\n \"id\": \"deepinfra\",\n \"name\": \"DeepInfra\",\n \"docs\": \"/providers/deepinfra\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"DEEPINFRA_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"deepinfra-api-key\",\n \"choiceLabel\": \"DeepInfra API key\",\n \"choiceHint\": \"Unified API for open source models\",\n \"groupId\": \"deepinfra\",\n \"groupLabel\": \"DeepInfra\",\n \"groupHint\": \"Unified API for open source models\",\n \"optionKey\": \"deepinfraApiKey\",\n \"cliFlag\": \"--deepinfra-api-key\",\n \"cliOption\": \"--deepinfra-api-key <key>\",\n \"cliDescription\": \"DeepInfra API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"contracts\": {\n \"mediaUnderstandingProviders\": [\n \"deepinfra\"\n ],\n \"memoryEmbeddingProviders\": [\n \"deepinfra\"\n ],\n \"imageGenerationProviders\": [\n \"deepinfra\"\n ],\n \"speechProviders\": [\n \"deepinfra\"\n ],\n \"videoGenerationProviders\": [\n \"deepinfra\"\n ]\n },\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/deepinfra-provider\",\n \"npmSpec\": \"@openclaw/deepinfra-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.8\"\n }\n }\n },\n {\n \"name\": \"@openclaw/deepseek-provider\",\n \"description\": \"OpenClaw DeepSeek provider plugin.\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"deepseek\",\n \"label\": \"DeepSeek\"\n },\n \"providerEndpoints\": [\n {\n \"endpointClass\": \"deepseek-native\",\n \"hosts\": [\n \"api.deepseek.com\"\n ]\n }\n ],\n \"providers\": [\n {\n \"id\": \"deepseek\",\n \"name\": \"DeepSeek\",\n \"docs\": \"/providers/deepseek\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"DEEPSEEK_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"deepseek-api-key\",\n \"choiceLabel\": \"DeepSeek API key\",\n \"groupId\": \"deepseek\",\n \"groupLabel\": \"DeepSeek\",\n \"groupHint\": \"API key\",\n \"optionKey\": \"deepseekApiKey\",\n \"cliFlag\": \"--deepseek-api-key\",\n \"cliOption\": \"--deepseek-api-key <key>\",\n \"cliDescription\": \"DeepSeek API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/deepseek-provider\",\n \"npmSpec\": \"@openclaw/deepseek-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.8\"\n }\n }\n },\n {\n \"name\": \"@openclaw/featherless-provider\",\n \"description\": \"OpenClaw Featherless AI provider plugin.\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"featherless\",\n \"label\": \"Featherless AI\"\n },\n \"providers\": [\n {\n \"id\": \"featherless\",\n \"name\": \"Featherless AI\",\n \"docs\": \"/providers/featherless\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"FEATHERLESS_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"featherless-api-key\",\n \"choiceLabel\": \"Featherless AI API key\",\n \"choiceHint\": \"OpenAI-compatible access to open models\",\n \"groupId\": \"featherless\",\n \"groupLabel\": \"Featherless AI\",\n \"groupHint\": \"OpenAI-compatible access to open models\",\n \"optionKey\": \"featherlessApiKey\",\n \"cliFlag\": \"--featherless-api-key\",\n \"cliOption\": \"--featherless-api-key <key>\",\n \"cliDescription\": \"Featherless AI API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/featherless-provider\",\n \"npmSpec\": \"@openclaw/featherless-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.11\"\n }\n }\n },\n {\n \"name\": \"@openclaw/gmi-provider\",\n \"description\": \"OpenClaw GMI Cloud provider plugin\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"gmi\",\n \"label\": \"GMI Cloud\"\n },\n \"providerEndpoints\": [\n {\n \"endpointClass\": \"gmi-native\",\n \"hosts\": [\n \"api.gmi-serving.com\"\n ]\n }\n ],\n \"providers\": [\n {\n \"id\": \"gmi\",\n \"aliases\": [\"gmi-cloud\", \"gmicloud\"],\n \"name\": \"GMI Cloud\",\n \"docs\": \"/providers/gmi\",\n \"categories\": [\"cloud\", \"llm\"],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"gmi-api-key\",\n \"choiceLabel\": \"GMI Cloud API key\",\n \"choiceHint\": \"OpenAI-compatible GMI Cloud endpoint.\",\n \"groupId\": \"gmi\",\n \"groupLabel\": \"GMI Cloud\",\n \"groupHint\": \"OpenAI-compatible GMI Cloud endpoint\",\n \"optionKey\": \"gmiApiKey\",\n \"cliFlag\": \"--gmi-api-key\",\n \"cliOption\": \"--gmi-api-key <key>\",\n \"cliDescription\": \"GMI Cloud API key\",\n \"onboardingScopes\": [\"text-inference\"]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/gmi-provider\",\n \"npmSpec\": \"@openclaw/gmi-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.8\"\n }\n }\n },\n {\n \"name\": \"@openclaw/longcat-provider\",\n \"description\": \"OpenClaw LongCat provider plugin\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"longcat\",\n \"label\": \"LongCat\"\n },\n \"providers\": [\n {\n \"id\": \"longcat\",\n \"aliases\": [\"meituan-longcat\"],\n \"name\": \"LongCat\",\n \"docs\": \"/providers/longcat\",\n \"categories\": [\"cloud\", \"llm\"],\n \"envVars\": [\"LONGCAT_API_KEY\"],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"longcat-api-key\",\n \"choiceLabel\": \"LongCat API key\",\n \"groupId\": \"longcat\",\n \"groupLabel\": \"LongCat\",\n \"groupHint\": \"OpenAI-compatible LongCat API\",\n \"optionKey\": \"longcatApiKey\",\n \"cliFlag\": \"--longcat-api-key\",\n \"cliOption\": \"--longcat-api-key <key>\",\n \"cliDescription\": \"LongCat API key\",\n \"onboardingScopes\": [\"text-inference\"]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/longcat-provider\",\n \"npmSpec\": \"@openclaw/longcat-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.8\"\n }\n }\n },\n {\n \"name\": \"@openclaw/meta-provider\",\n \"description\": \"OpenClaw Meta provider plugin.\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"meta\",\n \"label\": \"Meta\"\n },\n \"providerEndpoints\": [\n {\n \"endpointClass\": \"meta-native\",\n \"hosts\": [\"api.meta.ai\"]\n }\n ],\n \"providers\": [\n {\n \"id\": \"meta\",\n \"name\": \"Meta\",\n \"docs\": \"/providers/meta\",\n \"categories\": [\"cloud\", \"llm\"],\n \"envVars\": [\"MODEL_API_KEY\"],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"meta-api-key\",\n \"choiceLabel\": \"Meta API key\",\n \"choiceHint\": \"Meta (Responses API)\",\n \"groupId\": \"meta\",\n \"groupLabel\": \"Meta\",\n \"groupHint\": \"Meta (Responses API)\",\n \"optionKey\": \"metaApiKey\",\n \"cliFlag\": \"--meta-api-key\",\n \"cliOption\": \"--meta-api-key <key>\",\n \"cliDescription\": \"Meta API key\",\n \"onboardingScopes\": [\"text-inference\"]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/meta-provider\",\n \"npmSpec\": \"@openclaw/meta-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.11\"\n }\n }\n },\n {\n \"name\": \"@openclaw/groq-provider\",\n \"description\": \"OpenClaw Groq media-understanding provider.\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"groq\",\n \"label\": \"Groq\"\n },\n \"providerEndpoints\": [\n {\n \"endpointClass\": \"groq-native\",\n \"hosts\": [\n \"api.groq.com\"\n ]\n }\n ],\n \"providers\": [\n {\n \"id\": \"groq\",\n \"name\": \"Groq\",\n \"docs\": \"/providers/groq\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"GROQ_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"groq-api-key\",\n \"choiceLabel\": \"Groq API key\",\n \"groupId\": \"groq\",\n \"groupLabel\": \"Groq\",\n \"groupHint\": \"Fast OpenAI-compatible inference\",\n \"optionKey\": \"groqApiKey\",\n \"cliFlag\": \"--groq-api-key\",\n \"cliOption\": \"--groq-api-key <key>\",\n \"cliDescription\": \"Groq API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"contracts\": {\n \"mediaUnderstandingProviders\": [\n \"groq\"\n ]\n },\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/groq-provider\",\n \"npmSpec\": \"@openclaw/groq-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.8\"\n }\n }\n },\n {\n \"name\": \"@openclaw/kilocode-provider\",\n \"description\": \"OpenClaw Kilo Gateway provider plugin.\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"kilocode\",\n \"label\": \"Kilo Gateway\"\n },\n \"providers\": [\n {\n \"id\": \"kilocode\",\n \"name\": \"Kilo Gateway\",\n \"docs\": \"/providers/kilocode\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"KILOCODE_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"kilocode-api-key\",\n \"choiceLabel\": \"Kilo Gateway API key\",\n \"choiceHint\": \"API key (OpenRouter-compatible)\",\n \"groupId\": \"kilocode\",\n \"groupLabel\": \"Kilo Gateway\",\n \"groupHint\": \"API key (OpenRouter-compatible)\",\n \"optionKey\": \"kilocodeApiKey\",\n \"cliFlag\": \"--kilocode-api-key\",\n \"cliOption\": \"--kilocode-api-key <key>\",\n \"cliDescription\": \"Kilo Gateway API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/kilocode-provider\",\n \"npmSpec\": \"@openclaw/kilocode-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.8\"\n }\n }\n },\n {\n \"name\": \"@openclaw/kimi-provider\",\n \"description\": \"OpenClaw Kimi provider plugin.\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"kimi\",\n \"label\": \"Kimi Coding\"\n },\n \"providers\": [\n {\n \"id\": \"kimi\",\n \"aliases\": [\n \"kimi-coding\"\n ],\n \"name\": \"Kimi Coding\",\n \"docs\": \"/providers/moonshot\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"KIMI_API_KEY\",\n \"KIMICODE_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"kimi-code-api-key\",\n \"choiceLabel\": \"Kimi Code API key (subscription)\",\n \"groupId\": \"moonshot\",\n \"groupLabel\": \"Moonshot AI (Kimi K2.6)\",\n \"groupHint\": \"Kimi K2.6\",\n \"optionKey\": \"kimiCodeApiKey\",\n \"cliFlag\": \"--kimi-code-api-key\",\n \"cliOption\": \"--kimi-code-api-key <key>\",\n \"cliDescription\": \"Kimi Code API key (subscription)\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/kimi-provider\",\n \"npmSpec\": \"@openclaw/kimi-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.8\"\n }\n }\n },\n {\n \"name\": \"@openclaw/pixverse-provider\",\n \"description\": \"OpenClaw PixVerse video provider plugin\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"pixverse\",\n \"label\": \"PixVerse\"\n },\n \"providers\": [\n {\n \"id\": \"pixverse\",\n \"name\": \"PixVerse\",\n \"docs\": \"/providers/pixverse\",\n \"categories\": [\"cloud\", \"video\"],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"pixverse-api-key\",\n \"choiceLabel\": \"PixVerse API key\",\n \"choiceHint\": \"Wizard prompts for International or CN endpoint.\",\n \"groupId\": \"pixverse\",\n \"groupLabel\": \"PixVerse\",\n \"groupHint\": \"Video generation\",\n \"optionKey\": \"pixverseApiKey\",\n \"cliFlag\": \"--pixverse-api-key\",\n \"cliOption\": \"--pixverse-api-key <key>\",\n \"cliDescription\": \"PixVerse API key\",\n \"onboardingScopes\": [\"image-generation\"]\n }\n ]\n }\n ],\n \"install\": {\n \"npmSpec\": \"@openclaw/pixverse-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.5.26\"\n }\n }\n },\n {\n \"name\": \"@openclaw/qianfan-provider\",\n \"description\": \"OpenClaw Qianfan provider plugin.\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"qianfan\",\n \"label\": \"Qianfan\"\n },\n \"providers\": [\n {\n \"id\": \"qianfan\",\n \"name\": \"Qianfan\",\n \"docs\": \"/providers/qianfan\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"QIANFAN_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"qianfan-api-key\",\n \"choiceLabel\": \"Qianfan API key\",\n \"groupId\": \"qianfan\",\n \"groupLabel\": \"Qianfan\",\n \"groupHint\": \"API key\",\n \"optionKey\": \"qianfanApiKey\",\n \"cliFlag\": \"--qianfan-api-key\",\n \"cliOption\": \"--qianfan-api-key <key>\",\n \"cliDescription\": \"QIANFAN API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/qianfan-provider\",\n \"npmSpec\": \"@openclaw/qianfan-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.8\"\n }\n }\n },\n {\n \"name\": \"@openclaw/qwen-provider\",\n \"description\": \"OpenClaw Qwen Cloud provider plugin.\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"qwen\",\n \"label\": \"Qwen Cloud\"\n },\n \"providerEndpoints\": [\n {\n \"endpointClass\": \"modelstudio-native\",\n \"baseUrls\": [\n \"https://coding-intl.dashscope.aliyuncs.com/v1\",\n \"https://coding.dashscope.aliyuncs.com/v1\",\n \"https://dashscope.aliyuncs.com/compatible-mode/v1\",\n \"https://dashscope-intl.aliyuncs.com/compatible-mode/v1\",\n \"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1\",\n \"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1\"\n ]\n },\n {\n \"endpointClass\": \"qwen-portal-native\",\n \"baseUrls\": [\n \"https://portal.qwen.ai/v1\"\n ]\n }\n ],\n \"providers\": [\n {\n \"id\": \"qwen\",\n \"aliases\": [\n \"qwencloud\",\n \"modelstudio\",\n \"dashscope\"\n ],\n \"name\": \"Qwen Cloud\",\n \"docs\": \"/providers/qwen\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"QWEN_API_KEY\",\n \"MODELSTUDIO_API_KEY\",\n \"DASHSCOPE_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"standard-api-key-cn\",\n \"choiceId\": \"qwen-standard-api-key-cn\",\n \"deprecatedChoiceIds\": [\n \"modelstudio-standard-api-key-cn\"\n ],\n \"choiceLabel\": \"Standard API Key for China (pay-as-you-go)\",\n \"choiceHint\": \"Endpoint: dashscope.aliyuncs.com\",\n \"groupId\": \"qwen\",\n \"groupLabel\": \"Qwen Cloud\",\n \"groupHint\": \"Standard / Coding Plan (CN / Global) + multimodal roadmap\",\n \"optionKey\": \"modelstudioStandardApiKeyCn\",\n \"cliFlag\": \"--modelstudio-standard-api-key-cn\",\n \"cliOption\": \"--modelstudio-standard-api-key-cn <key>\",\n \"cliDescription\": \"Qwen Cloud standard API key (China)\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n },\n {\n \"method\": \"standard-api-key\",\n \"choiceId\": \"qwen-standard-api-key\",\n \"deprecatedChoiceIds\": [\n \"modelstudio-standard-api-key\"\n ],\n \"choiceLabel\": \"Standard API Key for Global/Intl (pay-as-you-go)\",\n \"choiceHint\": \"Endpoint: dashscope-intl.aliyuncs.com\",\n \"groupId\": \"qwen\",\n \"groupLabel\": \"Qwen Cloud\",\n \"groupHint\": \"Standard / Coding Plan (CN / Global) + multimodal roadmap\",\n \"optionKey\": \"modelstudioStandardApiKey\",\n \"cliFlag\": \"--modelstudio-standard-api-key\",\n \"cliOption\": \"--modelstudio-standard-api-key <key>\",\n \"cliDescription\": \"Qwen Cloud standard API key (Global/Intl)\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n },\n {\n \"method\": \"api-key-cn\",\n \"choiceId\": \"qwen-api-key-cn\",\n \"deprecatedChoiceIds\": [\n \"modelstudio-api-key-cn\"\n ],\n \"choiceLabel\": \"Coding Plan API Key for China (subscription)\",\n \"choiceHint\": \"Endpoint: coding.dashscope.aliyuncs.com\",\n \"groupId\": \"qwen\",\n \"groupLabel\": \"Qwen Cloud\",\n \"groupHint\": \"Standard / Coding Plan (CN / Global) + multimodal roadmap\",\n \"optionKey\": \"modelstudioApiKeyCn\",\n \"cliFlag\": \"--modelstudio-api-key-cn\",\n \"cliOption\": \"--modelstudio-api-key-cn <key>\",\n \"cliDescription\": \"Qwen Cloud Coding Plan API key (China)\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n },\n {\n \"method\": \"api-key\",\n \"choiceId\": \"qwen-api-key\",\n \"deprecatedChoiceIds\": [\n \"modelstudio-api-key\"\n ],\n \"choiceLabel\": \"Coding Plan API Key for Global/Intl (subscription)\",\n \"choiceHint\": \"Endpoint: coding-intl.dashscope.aliyuncs.com\",\n \"groupId\": \"qwen\",\n \"groupLabel\": \"Qwen Cloud\",\n \"groupHint\": \"Standard / Coding Plan (CN / Global) + multimodal roadmap\",\n \"optionKey\": \"modelstudioApiKey\",\n \"cliFlag\": \"--modelstudio-api-key\",\n \"cliOption\": \"--modelstudio-api-key <key>\",\n \"cliDescription\": \"Qwen Cloud Coding Plan API key (Global/Intl)\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n },\n {\n \"id\": \"qwen-oauth\",\n \"aliases\": [\n \"qwen-portal\",\n \"qwen-cli\"\n ],\n \"name\": \"Qwen Cloud qwen oauth\",\n \"docs\": \"/providers/qwen\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"QWEN_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"qwen-oauth\",\n \"choiceLabel\": \"Qwen OAuth\",\n \"choiceHint\": \"Portal token for portal.qwen.ai\",\n \"groupId\": \"qwen\",\n \"groupLabel\": \"Qwen Cloud\",\n \"groupHint\": \"Standard / Coding Plan / OAuth\",\n \"optionKey\": \"qwenOauthToken\",\n \"cliFlag\": \"--qwen-oauth-token\",\n \"cliOption\": \"--qwen-oauth-token <token>\",\n \"cliDescription\": \"Qwen OAuth token\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n },\n {\n \"id\": \"qwen-token-plan\",\n \"name\": \"Qwen Token Plan\",\n \"docs\": \"/providers/qwen\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"QWEN_TOKEN_PLAN_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"qwen-token-plan\",\n \"choiceLabel\": \"Qwen Token Plan (Global/Intl)\",\n \"choiceHint\": \"Endpoint: token-plan.ap-southeast-1.maas.aliyuncs.com\",\n \"groupId\": \"qwen\",\n \"groupLabel\": \"Qwen Cloud\",\n \"groupHint\": \"Standard / Coding Plan / Token Plan / OAuth\",\n \"optionKey\": \"qwenTokenPlanApiKey\",\n \"cliFlag\": \"--qwen-token-plan-api-key\",\n \"cliOption\": \"--qwen-token-plan-api-key <key>\",\n \"cliDescription\": \"Qwen Token Plan API key (Global/Intl)\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n },\n {\n \"method\": \"api-key-cn\",\n \"choiceId\": \"qwen-token-plan-cn\",\n \"choiceLabel\": \"Qwen Token Plan (China)\",\n \"choiceHint\": \"Endpoint: token-plan.cn-beijing.maas.aliyuncs.com\",\n \"groupId\": \"qwen\",\n \"groupLabel\": \"Qwen Cloud\",\n \"groupHint\": \"Standard / Coding Plan / Token Plan / OAuth\",\n \"optionKey\": \"qwenTokenPlanApiKeyCn\",\n \"cliFlag\": \"--qwen-token-plan-api-key-cn\",\n \"cliOption\": \"--qwen-token-plan-api-key-cn <key>\",\n \"cliDescription\": \"Qwen Token Plan API key (China)\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n },\n {\n \"id\": \"bailian-token-plan\",\n \"name\": \"Alibaba Token Plan (legacy custom config)\",\n \"docs\": \"/providers/qwen\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ]\n }\n ],\n \"contracts\": {\n \"mediaUnderstandingProviders\": [\n \"qwen\"\n ],\n \"videoGenerationProviders\": [\n \"qwen\"\n ]\n },\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/qwen-provider\",\n \"npmSpec\": \"@openclaw/qwen-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.8\"\n }\n }\n },\n {\n \"name\": \"@openclaw/fireworks-provider\",\n \"description\": \"OpenClaw Fireworks provider plugin\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"fireworks\",\n \"label\": \"Fireworks\"\n },\n \"providers\": [\n {\n \"id\": \"fireworks\",\n \"aliases\": [\n \"fireworks-ai\"\n ],\n \"name\": \"Fireworks\",\n \"docs\": \"/providers/fireworks\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"FIREWORKS_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"fireworks-api-key\",\n \"choiceLabel\": \"Fireworks API key\",\n \"choiceHint\": \"API key\",\n \"groupId\": \"fireworks\",\n \"groupLabel\": \"Fireworks\",\n \"groupHint\": \"API key\",\n \"optionKey\": \"fireworksApiKey\",\n \"cliFlag\": \"--fireworks-api-key\",\n \"cliOption\": \"--fireworks-api-key <key>\",\n \"cliDescription\": \"Fireworks API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/fireworks-provider\",\n \"npmSpec\": \"@openclaw/fireworks-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.9\"\n }\n }\n },\n {\n \"name\": \"@openclaw/moonshot-provider\",\n \"description\": \"OpenClaw Moonshot provider plugin\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"moonshot\",\n \"label\": \"Moonshot\"\n },\n \"providerEndpoints\": [\n {\n \"endpointClass\": \"moonshot-native\",\n \"baseUrls\": [\n \"https://api.moonshot.ai/v1\",\n \"https://api.moonshot.cn/v1\"\n ]\n }\n ],\n \"providers\": [\n {\n \"id\": \"moonshot\",\n \"aliases\": [\n \"moonshotai\",\n \"moonshot-ai\"\n ],\n \"name\": \"Moonshot\",\n \"docs\": \"/providers/moonshot\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"MOONSHOT_API_KEY\",\n \"KIMI_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"moonshot-api-key\",\n \"choiceLabel\": \"Moonshot API key (.ai)\",\n \"choiceHint\": \"Kimi K2.6 + Kimi\",\n \"groupId\": \"moonshot\",\n \"groupLabel\": \"Moonshot AI (Kimi K2.6)\",\n \"groupHint\": \"Kimi K2.6\",\n \"optionKey\": \"moonshotApiKey\",\n \"cliFlag\": \"--moonshot-api-key\",\n \"cliOption\": \"--moonshot-api-key <key>\",\n \"cliDescription\": \"Moonshot API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n },\n {\n \"method\": \"api-key-cn\",\n \"choiceId\": \"moonshot-api-key-cn\",\n \"choiceLabel\": \"Moonshot API key (.cn)\",\n \"choiceHint\": \"Kimi K2.6 + Kimi\",\n \"groupId\": \"moonshot\",\n \"groupLabel\": \"Moonshot AI (Kimi K2.6)\",\n \"groupHint\": \"Kimi K2.6\",\n \"optionKey\": \"moonshotApiKey\",\n \"cliFlag\": \"--moonshot-api-key\",\n \"cliOption\": \"--moonshot-api-key <key>\",\n \"cliDescription\": \"Moonshot API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"contracts\": {\n \"mediaUnderstandingProviders\": [\n \"moonshot\"\n ],\n \"webSearchProviders\": [\n \"kimi\"\n ]\n },\n \"webSearchProviders\": [\n {\n \"id\": \"kimi\",\n \"label\": \"Kimi (Moonshot)\",\n \"hint\": \"Requires Moonshot / Kimi API key · Moonshot web search\",\n \"onboardingScopes\": [\n \"text-inference\"\n ],\n \"credentialLabel\": \"Moonshot / Kimi API key\",\n \"envVars\": [\n \"KIMI_API_KEY\",\n \"MOONSHOT_API_KEY\"\n ],\n \"placeholder\": \"sk-...\",\n \"signupUrl\": \"https://platform.moonshot.cn/\",\n \"docsUrl\": \"https://docs.openclaw.ai/tools/web\",\n \"credentialPath\": \"plugins.entries.moonshot.config.webSearch.apiKey\",\n \"autoDetectOrder\": 40\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/moonshot-provider\",\n \"npmSpec\": \"@openclaw/moonshot-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.9\"\n }\n }\n },\n {\n \"name\": \"@openclaw/tencent-provider\",\n \"description\": \"OpenClaw Tencent Cloud provider plugin (TokenHub + Token Plan)\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"tencent\",\n \"label\": \"Tencent Cloud\"\n },\n \"providers\": [\n {\n \"id\": \"tencent-tokenhub\",\n \"name\": \"Tencent TokenHub\",\n \"docs\": \"/providers/tencent\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"TOKENHUB_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"tokenhub-api-key\",\n \"choiceLabel\": \"Tencent TokenHub\",\n \"choiceHint\": \"Hy via Tencent TokenHub Gateway\",\n \"groupId\": \"tencent\",\n \"groupLabel\": \"Tencent Cloud\",\n \"groupHint\": \"Tencent TokenHub\",\n \"optionKey\": \"tokenhubApiKey\",\n \"cliFlag\": \"--tokenhub-api-key\",\n \"cliOption\": \"--tokenhub-api-key <key>\",\n \"cliDescription\": \"Tencent TokenHub API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n },\n {\n \"id\": \"tencent-tokenplan\",\n \"name\": \"Tencent TokenPlan\",\n \"docs\": \"/providers/tencent\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"TOKENPLAN_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"tokenplan-api-key\",\n \"choiceLabel\": \"Tencent TokenPlan\",\n \"choiceHint\": \"Hy via Tencent TokenPlan Gateway\",\n \"groupId\": \"tencent\",\n \"groupLabel\": \"Tencent Cloud\",\n \"groupHint\": \"Tencent TokenPlan\",\n \"optionKey\": \"tokenplanApiKey\",\n \"cliFlag\": \"--tokenplan-api-key\",\n \"cliOption\": \"--tokenplan-api-key <key>\",\n \"cliDescription\": \"Tencent TokenPlan API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/tencent-provider\",\n \"npmSpec\": \"@openclaw/tencent-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.9\"\n }\n }\n },\n {\n \"name\": \"@openclaw/venice-provider\",\n \"description\": \"OpenClaw Venice provider plugin\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"venice\",\n \"label\": \"Venice\"\n },\n \"providers\": [\n {\n \"id\": \"venice\",\n \"name\": \"Venice\",\n \"docs\": \"/providers/venice\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"VENICE_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"venice-api-key\",\n \"choiceLabel\": \"Venice AI API key\",\n \"choiceHint\": \"Privacy-focused (uncensored models)\",\n \"groupId\": \"venice\",\n \"groupLabel\": \"Venice AI\",\n \"groupHint\": \"Privacy-focused (uncensored models)\",\n \"optionKey\": \"veniceApiKey\",\n \"cliFlag\": \"--venice-api-key\",\n \"cliOption\": \"--venice-api-key <key>\",\n \"cliDescription\": \"Venice API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/venice-provider\",\n \"npmSpec\": \"@openclaw/venice-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.9\"\n }\n }\n },\n {\n \"name\": \"@openclaw/vercel-ai-gateway-provider\",\n \"description\": \"OpenClaw Vercel AI Gateway provider plugin\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"vercel-ai-gateway\",\n \"label\": \"Vercel AI Gateway\"\n },\n \"providers\": [\n {\n \"id\": \"vercel-ai-gateway\",\n \"name\": \"Vercel AI Gateway\",\n \"docs\": \"/providers/vercel-ai-gateway\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"AI_GATEWAY_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"ai-gateway-api-key\",\n \"choiceLabel\": \"Vercel AI Gateway API key\",\n \"choiceHint\": \"API key\",\n \"groupId\": \"ai-gateway\",\n \"groupLabel\": \"Vercel AI Gateway\",\n \"groupHint\": \"API key\",\n \"optionKey\": \"aiGatewayApiKey\",\n \"cliFlag\": \"--ai-gateway-api-key\",\n \"cliOption\": \"--ai-gateway-api-key <key>\",\n \"cliDescription\": \"Vercel AI Gateway API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/vercel-ai-gateway-provider\",\n \"npmSpec\": \"@openclaw/vercel-ai-gateway-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.9\"\n }\n }\n },\n {\n \"name\": \"@openclaw/zai-provider\",\n \"description\": \"OpenClaw Z.AI provider plugin\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"zai\",\n \"label\": \"Z.AI\"\n },\n \"providerEndpoints\": [\n {\n \"endpointClass\": \"zai-native\",\n \"hosts\": [\n \"api.z.ai\"\n ]\n }\n ],\n \"providers\": [\n {\n \"id\": \"zai\",\n \"aliases\": [\n \"z-ai\",\n \"z.ai\"\n ],\n \"name\": \"Z.AI\",\n \"docs\": \"/providers/zai\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"ZAI_API_KEY\",\n \"Z_AI_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"zai-api-key\",\n \"choiceLabel\": \"Z.AI API key\",\n \"groupId\": \"zai\",\n \"groupLabel\": \"Z.AI\",\n \"groupHint\": \"GLM Coding Plan / Global / CN\",\n \"optionKey\": \"zaiApiKey\",\n \"cliFlag\": \"--zai-api-key\",\n \"cliOption\": \"--zai-api-key <key>\",\n \"cliDescription\": \"Z.AI API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n },\n {\n \"method\": \"coding-global\",\n \"choiceId\": \"zai-coding-global\",\n \"choiceLabel\": \"Coding-Plan-Global\",\n \"choiceHint\": \"GLM Coding Plan Global (api.z.ai)\",\n \"groupId\": \"zai\",\n \"groupLabel\": \"Z.AI\",\n \"groupHint\": \"GLM Coding Plan / Global / CN\",\n \"optionKey\": \"zaiApiKey\",\n \"cliFlag\": \"--zai-api-key\",\n \"cliOption\": \"--zai-api-key <key>\",\n \"cliDescription\": \"Z.AI API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n },\n {\n \"method\": \"coding-cn\",\n \"choiceId\": \"zai-coding-cn\",\n \"choiceLabel\": \"Coding-Plan-CN\",\n \"choiceHint\": \"GLM Coding Plan CN (open.bigmodel.cn)\",\n \"groupId\": \"zai\",\n \"groupLabel\": \"Z.AI\",\n \"groupHint\": \"GLM Coding Plan / Global / CN\",\n \"optionKey\": \"zaiApiKey\",\n \"cliFlag\": \"--zai-api-key\",\n \"cliOption\": \"--zai-api-key <key>\",\n \"cliDescription\": \"Z.AI API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n },\n {\n \"method\": \"global\",\n \"choiceId\": \"zai-global\",\n \"choiceLabel\": \"Global\",\n \"choiceHint\": \"Z.AI Global (api.z.ai)\",\n \"groupId\": \"zai\",\n \"groupLabel\": \"Z.AI\",\n \"groupHint\": \"GLM Coding Plan / Global / CN\",\n \"optionKey\": \"zaiApiKey\",\n \"cliFlag\": \"--zai-api-key\",\n \"cliOption\": \"--zai-api-key <key>\",\n \"cliDescription\": \"Z.AI API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n },\n {\n \"method\": \"cn\",\n \"choiceId\": \"zai-cn\",\n \"choiceLabel\": \"CN\",\n \"choiceHint\": \"Z.AI CN (open.bigmodel.cn)\",\n \"groupId\": \"zai\",\n \"groupLabel\": \"Z.AI\",\n \"groupHint\": \"GLM Coding Plan / Global / CN\",\n \"optionKey\": \"zaiApiKey\",\n \"cliFlag\": \"--zai-api-key\",\n \"cliOption\": \"--zai-api-key <key>\",\n \"cliDescription\": \"Z.AI API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"contracts\": {\n \"mediaUnderstandingProviders\": [\n \"zai\"\n ]\n },\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/zai-provider\",\n \"npmSpec\": \"@openclaw/zai-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.9\"\n }\n }\n },\n {\n \"name\": \"@openclaw/stepfun-provider\",\n \"description\": \"OpenClaw StepFun provider plugin.\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"stepfun\",\n \"label\": \"StepFun\"\n },\n \"providers\": [\n {\n \"id\": \"stepfun\",\n \"name\": \"StepFun\",\n \"docs\": \"/providers/stepfun\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"STEPFUN_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"standard-api-key-cn\",\n \"choiceId\": \"stepfun-standard-api-key-cn\",\n \"choiceLabel\": \"StepFun Standard API key (China)\",\n \"choiceHint\": \"Endpoint: api.stepfun.com/v1\",\n \"groupId\": \"stepfun\",\n \"groupLabel\": \"StepFun\",\n \"groupHint\": \"Standard / Step Plan (China / Global)\",\n \"optionKey\": \"stepfunApiKey\",\n \"cliFlag\": \"--stepfun-api-key\",\n \"cliOption\": \"--stepfun-api-key <key>\",\n \"cliDescription\": \"StepFun API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n },\n {\n \"method\": \"standard-api-key-intl\",\n \"choiceId\": \"stepfun-standard-api-key-intl\",\n \"choiceLabel\": \"StepFun Standard API key (Global/Intl)\",\n \"choiceHint\": \"Endpoint: api.stepfun.ai/v1\",\n \"groupId\": \"stepfun\",\n \"groupLabel\": \"StepFun\",\n \"groupHint\": \"Standard / Step Plan (China / Global)\",\n \"optionKey\": \"stepfunApiKey\",\n \"cliFlag\": \"--stepfun-api-key\",\n \"cliOption\": \"--stepfun-api-key <key>\",\n \"cliDescription\": \"StepFun API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n },\n {\n \"id\": \"stepfun-plan\",\n \"name\": \"StepFun stepfun plan\",\n \"docs\": \"/providers/stepfun\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"STEPFUN_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"plan-api-key-cn\",\n \"choiceId\": \"stepfun-plan-api-key-cn\",\n \"choiceLabel\": \"StepFun Step Plan API key (China)\",\n \"choiceHint\": \"Endpoint: api.stepfun.com/step_plan/v1\",\n \"groupId\": \"stepfun\",\n \"groupLabel\": \"StepFun\",\n \"groupHint\": \"Standard / Step Plan (China / Global)\",\n \"optionKey\": \"stepfunApiKey\",\n \"cliFlag\": \"--stepfun-api-key\",\n \"cliOption\": \"--stepfun-api-key <key>\",\n \"cliDescription\": \"StepFun API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n },\n {\n \"method\": \"plan-api-key-intl\",\n \"choiceId\": \"stepfun-plan-api-key-intl\",\n \"choiceLabel\": \"StepFun Step Plan API key (Global/Intl)\",\n \"choiceHint\": \"Endpoint: api.stepfun.ai/step_plan/v1\",\n \"groupId\": \"stepfun\",\n \"groupLabel\": \"StepFun\",\n \"groupHint\": \"Standard / Step Plan (China / Global)\",\n \"optionKey\": \"stepfunApiKey\",\n \"cliFlag\": \"--stepfun-api-key\",\n \"cliOption\": \"--stepfun-api-key <key>\",\n \"cliDescription\": \"StepFun API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/stepfun-provider\",\n \"npmSpec\": \"@openclaw/stepfun-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.9\"\n }\n }\n }\n ]\n}\n"}}, "docs/providers/longcat.md": {"f1ae41d2f8401c06df6281ef666831ea7d832f7b": {"t": 1785674294.5793698, "n": 4674, "h": "5061102a49c723f1", "c": "---\nsummary: \"LongCat API setup for LongCat-2.0\"\ntitle: \"LongCat\"\nread_when:\n - You want to use LongCat-2.0 with OpenClaw\n - You need the LongCat API key or model limits\n---\n\n[LongCat](https://longcat.ai) provides a hosted API for LongCat-2.0, a\nreasoning model built for coding and agentic workloads. OpenClaw provides the\nofficial `longcat` plugin for LongCat's OpenAI-compatible endpoint.\n\n| Property | Value |\n| ---------- | ---------------------------------- |\n| Provider | `longcat` |\n| Auth | `LONGCAT_API_KEY` |\n| API | OpenAI-compatible Chat Completions |\n| Base URL | `https://api.longcat.chat/openai` |\n| Model | `longcat/LongCat-2.0` |\n| Context | 1,048,576 tokens |\n| Max output | 131,072 tokens |\n| Input | Text |\n\n## Install plugin\n\nInstall the official package, then restart Gateway:\n\n```bash\nopenclaw plugins install @openclaw/longcat-provider\nopenclaw gateway restart\n```\n\n## Getting started\n\n<Steps>\n <Step title=\"Create an API key\">\n Sign in to the [LongCat API Platform](https://longcat.chat/platform/) and\n create a key on the [API Keys](https://longcat.chat/platform/api_keys)\n page.\n </Step>\n <Step title=\"Run onboarding\">\n ```bash\n openclaw onboard --auth-choice longcat-api-key\n ```\n </Step>\n <Step title=\"Verify the model\">\n ```bash\n openclaw models list --provider longcat\n ```\n </Step>\n</Steps>\n\nOnboarding adds the hosted catalog and selects `longcat/LongCat-2.0` when no\nprimary model is already configured.\n\n### Non-interactive setup\n\n```bash\nopenclaw onboard --non-interactive \\\n --mode local \\\n --auth-choice longcat-api-key \\\n --longcat-api-key \"$LONGCAT_API_KEY\"\n```\n\n## Reasoning behavior\n\nLongCat exposes binary thinking control. OpenClaw maps enabled thinking levels\nto `thinking: { type: \"enabled\" }` and `/think off` to\n`thinking: { type: \"disabled\" }`. LongCat does not currently document\n`reasoning_effort`, so OpenClaw does not send it.\n\nLongCat returns reasoning in `reasoning_content`. OpenClaw preserves that field\nwhen replaying assistant tool-call turns so multi-turn agent sessions retain\nthe provider's expected message shape.\n\n## Pricing\n\nThe built-in catalog uses LongCat's pay-as-you-go list prices in USD per million\ntokens: $0.75 uncached input, $0.015 cached input, and $2.95 output. LongCat may\noffer temporary discounts; the [pricing page](https://longcat.chat/platform/docs/Pricing/LongCat-2.0.html)\nand your billing records are authoritative.\n\n## Self-hosted LongCat-2.0\n\nThe `longcat` provider targets LongCat's hosted API. For the open weights on\n[Hugging Face](https://huggingface.co/meituan-longcat/LongCat-2.0), serve the\nmodel through an OpenAI-compatible runtime and use OpenClaw's existing\n[vLLM](/providers/vllm) or [SGLang](/providers/sglang) provider instead.\n\nKeep the runtime's exact model identifier in the self-hosted provider catalog;\ndo not route a local deployment through `longcat/LongCat-2.0`.\n\n## Troubleshooting\n\n<AccordionGroup>\n <Accordion title=\"The key works in a shell but not in the Gateway\">\n Daemon-managed Gateway processes do not inherit every interactive shell\n variable. Put `LONGCAT_API_KEY` in `~/.openclaw/.env`, configure it through\n onboarding, or use an approved secret reference.\n </Accordion>\n\n <Accordion title=\"Requests fail with 402 or 429\">\n `402` means the account has insufficient token quota. `429` means the API\n key hit a rate limit. Check [LongCat usage](https://longcat.chat/platform/usage)\n and retry rate-limited requests after the provider's backoff window.\n </Accordion>\n\n <Accordion title=\"The model does not appear\">\n Run `openclaw plugins list` and confirm the `longcat` plugin is\n enabled, then run `openclaw models list --provider longcat`.\n </Accordion>\n</AccordionGroup>\n\n## Related\n\n<CardGroup cols={2}>\n <Card title=\"Model providers\" href=\"/concepts/model-providers\" icon=\"layers\">\n Provider configuration, model refs, and failover behavior.\n </Card>\n <Card title=\"LongCat API docs\" href=\"https://longcat.chat/platform/docs/\" icon=\"arrow-up-right-from-square\">\n Hosted API endpoints, authentication, limits, and examples.\n </Card>\n <Card title=\"LongCat-2.0 model card\" href=\"https://huggingface.co/meituan-longcat/LongCat-2.0\" icon=\"arrow-up-right-from-square\">\n Architecture, deployment guidance, and model details.\n </Card>\n <Card title=\"Secrets\" href=\"/gateway/secrets\" icon=\"key\">\n Store provider credentials without embedding plaintext in config.\n </Card>\n</CardGroup>\n"}}, "extensions/longcat/README.md": {"f1ae41d2f8401c06df6281ef666831ea7d832f7b": {"t": 1785674295.4502325, "n": 306, "h": "8a09c7fefaaac9a7", "c": "# OpenClaw LongCat Provider\n\nOfficial OpenClaw provider plugin for LongCat-2.0 through LongCat's hosted\nOpenAI-compatible API.\n\nInstall from OpenClaw:\n\n```bash\nopenclaw plugins install @openclaw/longcat-provider\nopenclaw gateway restart\n```\n\nConfigure `LONGCAT_API_KEY`, then select `longcat/LongCat-2.0`.\n"}}, "extensions/fireworks/openclaw.plugin.json": {"f1ae41d2f8401c06df6281ef666831ea7d832f7b": {"t": 1785674624.0426517, "n": 2028, "h": "597800fb3673b5d4", "c": "{\n \"id\": \"fireworks\",\n \"activation\": {\n \"onStartup\": false\n },\n \"enabledByDefault\": true,\n \"providers\": [\"fireworks\"],\n \"setup\": {\n \"providers\": [\n {\n \"id\": \"fireworks\",\n \"envVars\": [\"FIREWORKS_API_KEY\"]\n }\n ]\n },\n \"providerAuthChoices\": [\n {\n \"provider\": \"fireworks\",\n \"method\": \"api-key\",\n \"choiceId\": \"fireworks-api-key\",\n \"appGuidedSecret\": true,\n \"choiceLabel\": \"Fireworks API key\",\n \"groupId\": \"fireworks\",\n \"groupLabel\": \"Fireworks\",\n \"groupHint\": \"API key\",\n \"optionKey\": \"fireworksApiKey\",\n \"cliFlag\": \"--fireworks-api-key\",\n \"cliOption\": \"--fireworks-api-key <key>\",\n \"cliDescription\": \"Fireworks API key\"\n }\n ],\n \"modelCatalog\": {\n \"providers\": {\n \"fireworks\": {\n \"baseUrl\": \"https://api.fireworks.ai/inference/v1\",\n \"api\": \"openai-completions\",\n \"models\": [\n {\n \"id\": \"accounts/fireworks/models/kimi-k2p6\",\n \"name\": \"Kimi K2.6\",\n \"reasoning\": false,\n \"input\": [\"text\", \"image\"],\n \"contextWindow\": 262144,\n \"maxTokens\": 262144,\n \"cost\": {\n \"input\": 0.95,\n \"output\": 4,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n }\n },\n {\n \"id\": \"accounts/fireworks/routers/kimi-k2p5-turbo\",\n \"name\": \"Kimi K2.5 Turbo (Fire Pass)\",\n \"reasoning\": false,\n \"input\": [\"text\", \"image\"],\n \"contextWindow\": 256000,\n \"maxTokens\": 256000,\n \"compat\": {\n \"unsupportedToolSchemaKeywords\": [\"not\"]\n },\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n }\n }\n ]\n }\n },\n \"discovery\": {\n \"fireworks\": \"static\"\n }\n },\n \"configSchema\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {}\n }\n}\n"}}, "extensions/tencent/openclaw.plugin.json": {"f1ae41d2f8401c06df6281ef666831ea7d832f7b": {"t": 1785809848.0242023, "n": 4335, "h": "800023ea124252d2", "c": "{\n \"id\": \"tencent\",\n \"activation\": {\n \"onStartup\": false\n },\n \"enabledByDefault\": true,\n \"providerCatalogEntry\": \"./provider-discovery.ts\",\n \"providers\": [\"tencent-tokenhub\", \"tencent-tokenplan\"],\n \"modelCatalog\": {\n \"providers\": {\n \"tencent-tokenhub\": {\n \"baseUrl\": \"https://tokenhub.tencentmaas.com/v1\",\n \"api\": \"openai-completions\",\n \"models\": [\n {\n \"id\": \"hy3-preview\",\n \"name\": \"Hy3 preview (TokenHub)\",\n \"reasoning\": true,\n \"input\": [\"text\"],\n \"contextWindow\": 256000,\n \"maxTokens\": 64000,\n \"cost\": {\n \"input\": 0.176,\n \"output\": 0.587,\n \"cacheRead\": 0.059,\n \"cacheWrite\": 0,\n \"tieredPricing\": [\n {\n \"input\": 0.176,\n \"output\": 0.587,\n \"cacheRead\": 0.059,\n \"cacheWrite\": 0,\n \"range\": [0, 16000]\n },\n {\n \"input\": 0.235,\n \"output\": 0.939,\n \"cacheRead\": 0.088,\n \"cacheWrite\": 0,\n \"range\": [16000, 32000]\n },\n {\n \"input\": 0.293,\n \"output\": 1.173,\n \"cacheRead\": 0.117,\n \"cacheWrite\": 0,\n \"range\": [32000]\n }\n ]\n },\n \"compat\": {\n \"supportsUsageInStreaming\": true,\n \"supportsReasoningEffort\": true,\n \"supportedReasoningEfforts\": [\"none\", \"low\", \"high\"]\n }\n },\n {\n \"id\": \"hy3\",\n \"name\": \"Hy3 (TokenHub)\",\n \"reasoning\": true,\n \"input\": [\"text\"],\n \"contextWindow\": 256000,\n \"maxTokens\": 64000,\n \"compat\": {\n \"supportsUsageInStreaming\": true,\n \"supportsReasoningEffort\": true,\n \"supportedReasoningEfforts\": [\"none\", \"high\"]\n }\n }\n ]\n },\n \"tencent-tokenplan\": {\n \"baseUrl\": \"https://api.lkeap.cloud.tencent.com/plan/v3\",\n \"api\": \"openai-completions\",\n \"models\": [\n {\n \"id\": \"hy3\",\n \"name\": \"Hy3 (TokenPlan)\",\n \"reasoning\": true,\n \"input\": [\"text\"],\n \"contextWindow\": 256000,\n \"maxTokens\": 64000,\n \"compat\": {\n \"supportsUsageInStreaming\": true,\n \"supportsReasoningEffort\": true,\n \"supportedReasoningEfforts\": [\"none\", \"high\"]\n }\n }\n ]\n }\n },\n \"discovery\": {\n \"tencent-tokenhub\": \"static\",\n \"tencent-tokenplan\": \"static\"\n }\n },\n \"setup\": {\n \"providers\": [\n {\n \"id\": \"tencent-tokenhub\",\n \"envVars\": [\"TOKENHUB_API_KEY\"]\n },\n {\n \"id\": \"tencent-tokenplan\",\n \"envVars\": [\"TOKENPLAN_API_KEY\"]\n }\n ]\n },\n \"configContracts\": {\n \"compatibilityMigrationPaths\": [\n \"models.providers.tencent-tokenhub\",\n \"agents.defaults.models.tencent-tokenhub/hy3\",\n \"agents.defaults.models.tencent-tokenhub/hy3-preview\"\n ]\n },\n \"providerAuthChoices\": [\n {\n \"provider\": \"tencent-tokenhub\",\n \"method\": \"api-key\",\n \"choiceId\": \"tokenhub-api-key\",\n \"appGuidedSecret\": true,\n \"choiceLabel\": \"Tencent TokenHub\",\n \"groupId\": \"tencent\",\n \"groupLabel\": \"Tencent Cloud\",\n \"groupHint\": \"Tencent TokenHub\",\n \"optionKey\": \"tokenhubApiKey\",\n \"cliFlag\": \"--tokenhub-api-key\",\n \"cliOption\": \"--tokenhub-api-key <key>\",\n \"cliDescription\": \"Tencent TokenHub API key\"\n },\n {\n \"provider\": \"tencent-tokenplan\",\n \"method\": \"api-key\",\n \"choiceId\": \"tokenplan-api-key\",\n \"appGuidedSecret\": true,\n \"choiceLabel\": \"Tencent TokenPlan\",\n \"groupId\": \"tencent\",\n \"groupLabel\": \"Tencent Cloud\",\n \"groupHint\": \"Tencent TokenPlan\",\n \"optionKey\": \"tokenplanApiKey\",\n \"cliFlag\": \"--tokenplan-api-key\",\n \"cliOption\": \"--tokenplan-api-key <key>\",\n \"cliDescription\": \"Tencent TokenPlan API key\"\n }\n ],\n \"configSchema\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {}\n }\n}\n"}}, "extensions/moonshot/openclaw.plugin.json": {"f1ae41d2f8401c06df6281ef666831ea7d832f7b": {"t": 1785846828.1745937, "n": 5835, "h": "17aca3646fd13f17", "c": "{\n \"id\": \"moonshot\",\n \"activation\": {\n \"onStartup\": false\n },\n \"enabledByDefault\": true,\n \"providerCatalogEntry\": \"./provider-discovery.ts\",\n \"providers\": [\"moonshot\"],\n \"providerAuthAliases\": {\n \"moonshotai\": \"moonshot\",\n \"moonshot-ai\": \"moonshot\"\n },\n \"providerEndpoints\": [\n {\n \"endpointClass\": \"moonshot-native\",\n \"baseUrls\": [\"https://api.moonshot.ai/v1\", \"https://api.moonshot.cn/v1\"]\n }\n ],\n \"providerRequest\": {\n \"providers\": {\n \"moonshot\": {\n \"family\": \"moonshot\",\n \"compatibilityFamily\": \"moonshot\"\n }\n }\n },\n \"modelPricing\": {\n \"providers\": {\n \"moonshot\": {\n \"openRouter\": {\n \"provider\": \"moonshotai\"\n },\n \"liteLLM\": {\n \"provider\": \"moonshot\"\n }\n }\n }\n },\n \"modelCatalog\": {\n \"aliases\": {\n \"moonshotai\": {\n \"provider\": \"moonshot\"\n },\n \"moonshot-ai\": {\n \"provider\": \"moonshot\"\n }\n },\n \"providers\": {\n \"moonshot\": {\n \"baseUrl\": \"https://api.moonshot.ai/v1\",\n \"api\": \"openai-completions\",\n \"models\": [\n {\n \"id\": \"kimi-k2.6\",\n \"name\": \"Kimi K2.6\",\n \"input\": [\"text\", \"image\"],\n \"contextWindow\": 262144,\n \"maxTokens\": 262144,\n \"cost\": {\n \"input\": 0.95,\n \"output\": 4,\n \"cacheRead\": 0.16,\n \"cacheWrite\": 0\n }\n },\n {\n \"id\": \"kimi-k2.7-code\",\n \"name\": \"Kimi K2.7 Code\",\n \"reasoning\": true,\n \"input\": [\"text\", \"image\"],\n \"contextWindow\": 262144,\n \"maxTokens\": 262144,\n \"cost\": {\n \"input\": 0.95,\n \"output\": 4,\n \"cacheRead\": 0.19,\n \"cacheWrite\": 0\n }\n },\n {\n \"id\": \"kimi-k2.5\",\n \"name\": \"Kimi K2.5\",\n \"input\": [\"text\", \"image\"],\n \"contextWindow\": 262144,\n \"maxTokens\": 262144,\n \"cost\": {\n \"input\": 0.6,\n \"output\": 3,\n \"cacheRead\": 0.1,\n \"cacheWrite\": 0\n }\n },\n {\n \"id\": \"kimi-k2-thinking\",\n \"name\": \"Kimi K2 Thinking\",\n \"reasoning\": true,\n \"input\": [\"text\"],\n \"contextWindow\": 262144,\n \"maxTokens\": 262144,\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n }\n },\n {\n \"id\": \"kimi-k2-thinking-turbo\",\n \"name\": \"Kimi K2 Thinking Turbo\",\n \"reasoning\": true,\n \"input\": [\"text\"],\n \"contextWindow\": 262144,\n \"maxTokens\": 262144,\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n }\n },\n {\n \"id\": \"kimi-k2-turbo\",\n \"name\": \"Kimi K2 Turbo\",\n \"input\": [\"text\"],\n \"contextWindow\": 256000,\n \"maxTokens\": 16384,\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n }\n }\n ]\n }\n },\n \"discovery\": {\n \"moonshot\": \"static\"\n }\n },\n \"setup\": {\n \"providers\": [\n {\n \"id\": \"moonshot\",\n \"envVars\": [\"MOONSHOT_API_KEY\", \"KIMI_API_KEY\"]\n }\n ]\n },\n \"providerAuthChoices\": [\n {\n \"provider\": \"moonshot\",\n \"method\": \"api-key\",\n \"choiceId\": \"moonshot-api-key\",\n \"appGuidedSecret\": true,\n \"choiceLabel\": \"Moonshot API key (.ai)\",\n \"groupId\": \"moonshot\",\n \"groupLabel\": \"Moonshot AI (Kimi K2.6)\",\n \"groupHint\": \"Kimi K2.6\",\n \"optionKey\": \"moonshotApiKey\",\n \"cliFlag\": \"--moonshot-api-key\",\n \"cliOption\": \"--moonshot-api-key <key>\",\n \"cliDescription\": \"Moonshot API key\"\n },\n {\n \"provider\": \"moonshot\",\n \"method\": \"api-key-cn\",\n \"choiceId\": \"moonshot-api-key-cn\",\n \"appGuidedSecret\": true,\n \"choiceLabel\": \"Moonshot API key (.cn)\",\n \"groupId\": \"moonshot\",\n \"groupLabel\": \"Moonshot AI (Kimi K2.6)\",\n \"groupHint\": \"Kimi K2.6\",\n \"optionKey\": \"moonshotApiKey\",\n \"cliFlag\": \"--moonshot-api-key\",\n \"cliOption\": \"--moonshot-api-key <key>\",\n \"cliDescription\": \"Moonshot API key\"\n }\n ],\n \"uiHints\": {\n \"webSearch.apiKey\": {\n \"label\": \"Kimi Search API Key\",\n \"help\": \"Moonshot/Kimi API key (fallback: KIMI_API_KEY or MOONSHOT_API_KEY env var).\",\n \"sensitive\": true\n },\n \"webSearch.baseUrl\": {\n \"label\": \"Kimi Search Base URL\",\n \"help\": \"Kimi base URL override.\"\n },\n \"webSearch.model\": {\n \"label\": \"Kimi Search Model\",\n \"help\": \"Kimi model override.\"\n }\n },\n \"contracts\": {\n \"mediaUnderstandingProviders\": [\"moonshot\"],\n \"webSearchProviders\": [\"kimi\"]\n },\n \"mediaUnderstandingProviderMetadata\": {\n \"moonshot\": {\n \"capabilities\": [\"image\", \"video\"],\n \"defaultModels\": {\n \"image\": \"kimi-k2.6\",\n \"video\": \"kimi-k2.6\"\n },\n \"autoPriority\": {\n \"video\": 20\n }\n }\n },\n \"configContracts\": {\n \"compatibilityRuntimePaths\": [\"tools.web.search.apiKey\"]\n },\n \"configSchema\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"webSearch\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"apiKey\": {\n \"type\": [\"string\", \"object\"]\n },\n \"baseUrl\": {\n \"type\": \"string\"\n },\n \"model\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n}\n"}}}}