{"id":"f9798ffd-90fc-43c2-a5af-3393b922a790","entityType":"agent","slug":"clawhub-runapi-ai-runapi-glm","name":"glm","canonicalUrl":"https://www.xpersona.co/agent/clawhub-runapi-ai-runapi-glm","canonicalPath":"/agent/clawhub-runapi-ai-runapi-glm","generatedAt":"2026-10-11T14:13:01.959Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T11:15:33.490Z","emptyReason":null},"description":"Call the GLM API (GLM 5.3 and earlier GLM 5 and 4 series) through RunAPI using OpenAI-compatible Chat Completions. Use for GLM text chat, streaming, or an existing compatibility client that needs the conditional reference.","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.1K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s1771k6pjxksnjws51x2htfjvd876syh:runapi-glm","sourceUrl":"https://clawhub.ai/runapi-ai/runapi-glm","homepage":"https://clawhub.ai/runapi-ai/skills/runapi-glm","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/runapi-ai/runapi-glm","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/runapi-ai/skills/runapi-glm","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":61,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"glm technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T11:15:33.490Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T11:15:33.490Z","emptyReason":null},"stars":null,"forks":null,"downloads":1079,"packageName":null,"latestVersion":"0.3.3","tractionLabel":"1.1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T11:15:33.477Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T11:15:33.490Z","lastCrawledAt":"2026-10-11T11:15:33.477Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T11:15:33.477Z","lastVerifiedAt":null,"highlights":[{"version":"0.3.3","createdAt":"2026-09-07T11:01:35.909Z","changelog":"## Added - Document glm-5.3 text and streaming requests through OpenAI-compatible Chat Completions.","fileCount":4,"zipByteSize":3745},{"version":"0.3.2","createdAt":"2026-08-12T07:33:20.116Z","changelog":"## Changed - Document GLM authentication, request, result verification, and stop boundaries in the primary recipe, with compatibility protocols loaded only when required.","fileCount":4,"zipByteSize":3310},{"version":"0.3.1","createdAt":"2026-08-10T14:14:32.408Z","changelog":"## Changed - Complete marketplace distribution for the RunAPI GLM skill.","fileCount":3,"zipByteSize":4124},{"version":"0.3.0","createdAt":"2026-07-23T10:06:32.159Z","changelog":"## Added - Document stable capability and model-limit errors, protocol-visible Usage behavior, reservation-safe output caps, and readiness-gated context limits. ## Changed - Document terminal support, cull, and native-only decisions for advanced GLM-5.2 capabilities across every caller protocol.","fileCount":3,"zipByteSize":4120},{"version":"0.2.0","createdAt":"2026-07-23T08:59:06.733Z","changelog":"## Added - Add `glm-5.2` to the supported model list and use it in the primary examples. ## Changed - Document the initial text-only contract and explicit rejection of deferred advanced fields.","fileCount":3,"zipByteSize":3533},{"version":"0.1.0","createdAt":"2026-06-24T09:36:23.160Z","changelog":"## Changed - Initial RunAPI skill for GLM chat with OpenAI-compatible defaults and protocol compatibility notes.","fileCount":3,"zipByteSize":3327}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s1771k6pjxksnjws51x2htfjvd876syh:runapi-glm","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s1771k6pjxksnjws51x2htfjvd876syh:runapi-glm` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/runapi-ai/runapi-glm before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-runapi-ai-runapi-glm/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-runapi-ai-runapi-glm/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-runapi-ai-runapi-glm/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-runapi-ai-runapi-glm/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-runapi-ai-runapi-glm/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-runapi-ai-runapi-glm/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T14:13:01.958Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-runapi-ai-runapi-glm/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-runapi-ai-runapi-glm/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-runapi-ai-runapi-glm/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-runapi-ai-runapi-glm/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T11:15:33.490Z","emptyReason":null},"readme":"Skill: glm\n\nOwner: runapi-ai\n\nSummary: Call the GLM API (GLM 5.3 and earlier GLM 5 and 4 series) through RunAPI using OpenAI-compatible Chat Completions. Use for GLM text chat, streaming, or an existing compatibility client that needs the conditional reference.\n\nTags: latest:0.3.3\n\nVersion history:\n\nv0.3.3 | 2026-09-07T11:01:35.909Z | user\n\n## Added\n- Document glm-5.3 text and streaming requests through OpenAI-compatible Chat Completions.\n\nv0.3.2 | 2026-08-12T07:33:20.116Z | user\n\n## Changed\n- Document GLM authentication, request, result verification, and stop boundaries in the primary recipe, with compatibility protocols loaded only when required.\n\nv0.3.1 | 2026-08-10T14:14:32.408Z | user\n\n## Changed\n- Complete marketplace distribution for the RunAPI GLM skill.\n\nv0.3.0 | 2026-07-23T10:06:32.159Z | user\n\n## Added\n- Document stable capability and model-limit errors, protocol-visible Usage behavior, reservation-safe output caps, and readiness-gated context limits.\n\n## Changed\n- Document terminal support, cull, and native-only decisions for advanced GLM-5.2 capabilities across every caller protocol.\n\nv0.2.0 | 2026-07-23T08:59:06.733Z | user\n\n## Added\n- Add `glm-5.2` to the supported model list and use it in the primary examples.\n\n## Changed\n- Document the initial text-only contract and explicit rejection of deferred advanced fields.\n\nv0.1.0 | 2026-06-24T09:36:23.160Z | user\n\n## Changed\n- Initial RunAPI skill for GLM chat with OpenAI-compatible defaults and protocol compatibility notes.\n\nArchive index:\n\nArchive v0.3.3: 4 files, 3745 bytes\n\nFiles: references/compatibility-protocols.md (928b), skill-card.md (2296b), SKILL.md (3423b), _meta.json (129b)\n\nFile v0.3.3:SKILL.md\n\n---\nname: glm\ndescription: Call the GLM API (GLM 5.3 and earlier GLM 5 and 4 series) through RunAPI using OpenAI-compatible Chat Completions. Use for GLM text chat, streaming, or an existing compatibility client that needs the conditional reference.\ndocumentation: https://runapi.ai/models/glm.md\nprovider_page: https://runapi.ai/providers/z-ai.md\ncatalog: https://runapi.ai/models.md\nmetadata:\n  openclaw:\n    homepage: https://runapi.ai/models/glm\n    primaryEnv: OPENAI_API_KEY\n    requires:\n      env: [OPENAI_API_KEY, OPENAI_BASE_URL]\n    envVars:\n    - {name: OPENAI_API_KEY, required: true, description: RunAPI API key used by OpenAI-compatible GLM clients.}\n    - {name: OPENAI_BASE_URL, required: true, description: Set to https://runapi.ai/v1 for GLM on RunAPI.}\n---\n\n# GLM on RunAPI\n\nUse OpenAI-compatible Chat Completions at `https://runapi.ai/v1` as the primary protocol.\n\n## Primary protocol recipe\n\n### Authenticate\n\nSet `OPENAI_API_KEY` to a RunAPI API key and `OPENAI_BASE_URL` to `https://runapi.ai/v1`.\n\n### Send request\n\n```python\nfrom openai import OpenAI\nclient = OpenAI(api_key=\"YOUR_RUNAPI_TOKEN\", base_url=\"https://runapi.ai/v1\")\nresponse = client.chat.completions.create(\n    model=\"glm-5.3\",\n    messages=[{\"role\": \"user\", \"content\": \"Summarize this review.\"}],\n)\nprint(response.choices[0].message.content)\nprint(response.usage)\n```\n\nFor long output, call the same method with `stream=True` and\n`stream_options={\"include_usage\": True}`; consume every chunk through `[DONE]`.\n\n### Verify result\n\nRequire final assistant content, a terminal `finish_reason`, and authoritative\n`usage`. A stream is complete only after its terminal usage chunk and `[DONE]`.\n\n### Stop boundaries\n\nCorrect a rejected shape once using the structured error. Retry transport once\nonly before any response or Usage and when replay is safe. Record a terminal\nerror and stop without changing model or protocol. For `glm-5.3`, keep requests\nto text history on Chat Completions. Add tools, reasoning, structured output, or\nmultimodal input only when the current RunAPI contract explicitly verifies that\ncapability.\n\n## Compatibility protocols\n\nDo not use compatibility protocols with `glm-5.3`; use the primary recipe.\nLoad [compatibility protocols](references/compatibility-protocols.md) only when an existing client requires Anthropic Messages or Gemini contents for an earlier compatible model.\n\n## GLM-5.3 capability boundary\n\n| Capability | Current behavior |\n|---|---|\n| Text history, sync, streaming | Supported through OpenAI-compatible Chat Completions |\n| OpenAI Responses, Anthropic Messages, Gemini contents | Not supported for `glm-5.3` |\n| Tools, reasoning controls, structured output, multimodal input | Not declared pending model-specific evidence |\n| Usage | Preserve returned token and cache fields; never infer missing details |\n\n## Supported models\n\n| Model ID | Use when |\n|---|---|\n| `glm-5.3` | Latest text workloads through Chat Completions |\n| `glm-5.2` | Cross-protocol flagship text workloads |\n| `glm-5.1` | Recent GLM chat workloads |\n| `glm-5-turbo` | Faster GLM chat |\n| `glm-5` | General GLM 5 requests |\n| `glm-4.7` | GLM 4.7 compatibility |\n| `glm-4.6` | Stable GLM 4.6 requests |\n| `glm-4.5` | GLM 4.5 compatibility |\n| `glm-4.5-air` | Lightweight GLM 4.5 requests |\n\n## References\n\n- <https://runapi.ai/models/glm.md>\n- <https://runapi.ai/providers/z-ai.md>\n- <https://runapi.ai/models.md>\n\nFile v0.3.3:_meta.json\n\n{\n  \"ownerId\": \"kn70me4rk7jqjt92evshjeb5z18768g7\",\n  \"slug\": \"runapi-glm\",\n  \"version\": \"0.3.3\",\n  \"publishedAt\": 1788778895909\n}\n\nFile v0.3.3:references/compatibility-protocols.md\n\n# GLM compatibility protocols\n\nLoad this reference only for an existing Anthropic Messages or Gemini contents client.\n\n`glm-5.3` is not supported on these compatibility protocols. Use\nOpenAI-compatible Chat Completions for that model, or select an earlier model\nwhose current RunAPI capability contract supports the required protocol.\n\nFor Messages, use base URL `https://runapi.ai`, a RunAPI key, a supported exact\nmodel ID, `max_tokens`, and text messages. Verify final content, `stop_reason`,\nand `usage`; streaming ends at `message_stop`.\n\nFor Gemini contents, set `RUNAPI_MODEL` to a supported exact model ID and use\n`https://runapi.ai/v1beta/models/$RUNAPI_MODEL:generateContent`\nor `streamGenerateContent` with `x-goog-api-key`. Verify candidates,\n`finishReason`, and `usageMetadata`.\n\nApply one evidence-backed shape correction, at most one safe pre-response\ntransport retry, and no automatic model or protocol hopping.\n\nFile v0.3.3:skill-card.md\n\n## Description:\n\nCall the GLM API (GLM 5.3 and earlier GLM 5 and 4 series) through RunAPI using OpenAI-compatible Chat Completions. Use for GLM text chat, streaming, or an existing compatibility client that needs the conditional reference.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[runapi-ai](https://clawhub.ai/user/runapi-ai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and engineers use this skill to call GLM models through RunAPI with OpenAI-compatible Chat Completions, including text chat and streaming workflows. Existing compatibility-client users can consult the conditional reference for earlier GLM models.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Sensitive prompts or credentials may be sent to RunAPI when the agent follows the API recipe.\n\nMitigation: Configure OPENAI_API_KEY and OPENAI_BASE_URL deliberately and review RunAPI data handling terms before sending sensitive prompts.\n\nRisk: Using compatibility protocols or undeclared capabilities with glm-5.3 can produce rejected or unreliable requests.\n\nMitigation: Use OpenAI-compatible Chat Completions for glm-5.3 and add tools, reasoning controls, structured output, multimodal input, or alternate protocols only when RunAPI explicitly verifies support.\n\n## Reference(s):\n\n- [RunAPI GLM model documentation](https://runapi.ai/models/glm.md)\n- [RunAPI GLM model page](https://runapi.ai/models/glm)\n- [RunAPI Z.AI provider page](https://runapi.ai/providers/z-ai.md)\n- [RunAPI model catalog](https://runapi.ai/models.md)\n- [GLM compatibility protocols](references/compatibility-protocols.md)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Code, Shell commands, Configuration instructions]\n\n**Output Format:** [Markdown with inline Python examples and configuration values]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires OPENAI_API_KEY and OPENAI_BASE_URL for RunAPI usage.]\n\n## Skill Version(s):\n\n0.3.3 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v0.3.2: 4 files, 3310 bytes\n\nFiles: references/compatibility-protocols.md (711b), skill-card.md (1987b), SKILL.md (2750b), _meta.json (129b)\n\nFile v0.3.2:SKILL.md\n\n---\nname: glm\ndescription: Call the GLM API (GLM 5 and 4 series) through RunAPI using OpenAI-compatible Chat Completions. Use for GLM text chat, streaming, or an existing compatibility client that needs the conditional reference.\ndocumentation: https://runapi.ai/models/glm.md\nprovider_page: https://runapi.ai/providers/z-ai.md\ncatalog: https://runapi.ai/models.md\nmetadata:\n  openclaw:\n    homepage: https://runapi.ai/models/glm\n    primaryEnv: OPENAI_API_KEY\n    requires:\n      env: [OPENAI_API_KEY, OPENAI_BASE_URL]\n    envVars:\n    - {name: OPENAI_API_KEY, required: true, description: RunAPI API key used by OpenAI-compatible GLM clients.}\n    - {name: OPENAI_BASE_URL, required: true, description: Set to https://runapi.ai/v1 for GLM on RunAPI.}\n---\n\n# GLM on RunAPI\n\nUse OpenAI-compatible Chat Completions at `https://runapi.ai/v1` as the primary protocol.\n\n## Primary protocol recipe\n\n### Authenticate\n\nSet `OPENAI_API_KEY` to a RunAPI API key and `OPENAI_BASE_URL` to `https://runapi.ai/v1`.\n\n### Send request\n\n```python\nfrom openai import OpenAI\nclient = OpenAI(api_key=\"YOUR_RUNAPI_TOKEN\", base_url=\"https://runapi.ai/v1\")\nresponse = client.chat.completions.create(\n    model=\"glm-5.2\",\n    messages=[{\"role\": \"user\", \"content\": \"Summarize this review.\"}],\n)\nprint(response.choices[0].message.content)\nprint(response.usage)\n```\n\nFor long output, call the same method with `stream=True` and\n`stream_options={\"include_usage\": True}`; consume every chunk through `[DONE]`.\n\n### Verify result\n\nRequire final assistant content, a terminal `finish_reason`, and authoritative\n`usage`. A stream is complete only after its terminal usage chunk and `[DONE]`.\n\n### Stop boundaries\n\nCorrect a rejected shape once using the structured error. Retry transport once\nonly before any response or Usage and when replay is safe. Record a terminal\nerror and stop without changing model or protocol. For `glm-5.2`, start with\ntext history; add tools, reasoning, structured output, or multimodal input only\nwhen the current RunAPI contract explicitly verifies that capability.\n\n## Compatibility protocols\n\nLoad [compatibility protocols](references/compatibility-protocols.md) only when an existing client requires Anthropic Messages or Gemini contents.\n\n## Supported models\n\n| Model ID | Use when |\n|---|---|\n| `glm-5.2` | Current flagship text workloads |\n| `glm-5.1` | Recent GLM chat workloads |\n| `glm-5-turbo` | Faster GLM chat |\n| `glm-5` | General GLM 5 requests |\n| `glm-4.7` | GLM 4.7 compatibility |\n| `glm-4.6` | Stable GLM 4.6 requests |\n| `glm-4.5` | GLM 4.5 compatibility |\n| `glm-4.5-air` | Lightweight GLM 4.5 requests |\n\n## References\n\n- <https://runapi.ai/models/glm.md>\n- <https://runapi.ai/providers/z-ai.md>\n- <https://runapi.ai/models.md>\n\nFile v0.3.2:_meta.json\n\n{\n  \"ownerId\": \"kn70me4rk7jqjt92evshjeb5z18768g7\",\n  \"slug\": \"runapi-glm\",\n  \"version\": \"0.3.2\",\n  \"publishedAt\": 1786520000116\n}\n\nFile v0.3.2:references/compatibility-protocols.md\n\n# GLM compatibility protocols\n\nLoad this reference only for an existing Anthropic Messages or Gemini contents client.\n\nFor Messages, use base URL `https://runapi.ai`, a RunAPI key, a supported exact\nmodel ID, `max_tokens`, and text messages. Verify final content, `stop_reason`,\nand `usage`; streaming ends at `message_stop`.\n\nFor Gemini contents, set `RUNAPI_MODEL` to a supported exact model ID and use\n`https://runapi.ai/v1beta/models/$RUNAPI_MODEL:generateContent`\nor `streamGenerateContent` with `x-goog-api-key`. Verify candidates,\n`finishReason`, and `usageMetadata`.\n\nApply one evidence-backed shape correction, at most one safe pre-response\ntransport retry, and no automatic model or protocol hopping.\n\nFile v0.3.2:skill-card.md\n\n## Description:\n\nCall the GLM API (GLM 5 and 4 series) through RunAPI using OpenAI-compatible Chat Completions.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[runapi-ai](https://clawhub.ai/user/runapi-ai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agents use this skill to configure GLM chat, streaming, and compatibility-client requests through RunAPI with OpenAI-compatible Chat Completions.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Existing OpenAI-compatible clients could be unintentionally routed to RunAPI if OPENAI_BASE_URL is changed broadly.\n\nMitigation: Set OPENAI_BASE_URL=https://runapi.ai/v1 only in the intended RunAPI environment and use a RunAPI-specific OPENAI_API_KEY.\n\nRisk: Requests may assume GLM capabilities that are not verified by the current RunAPI contract.\n\nMitigation: Start with text chat history and add tools, reasoning, structured output, or multimodal input only when the current RunAPI contract explicitly verifies support.\n\n## Reference(s):\n\n- [GLM model documentation](https://runapi.ai/models/glm.md)\n- [Z.ai provider documentation](https://runapi.ai/providers/z-ai.md)\n- [RunAPI model catalog](https://runapi.ai/models.md)\n- [RunAPI GLM homepage](https://runapi.ai/models/glm)\n- [GLM compatibility protocols](references/compatibility-protocols.md)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Code, Shell commands, Configuration]\n\n**Output Format:** [Markdown with inline code examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires RunAPI credentials and explicit endpoint configuration.]\n\n## Skill Version(s):\n\n0.3.2 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v0.3.1: 3 files, 4124 bytes\n\nFiles: skill-card.md (2549b), SKILL.md (6113b), _meta.json (129b)\n\nFile v0.3.1:SKILL.md\n\n---\nname: glm\ndescription: Call the GLM API (glm-5.2, glm-5.1, glm-5-turbo, glm-5, glm-4.7, glm-4.6, glm-4.5, glm-4.5-air) through RunAPI using the official OpenAI SDK or compatible clients. Use when the user asks for GLM chat, streaming completions, Anthropic or Gemini protocol compatibility, or when they want to point an existing OpenAI SDK setup at RunAPI as the base URL.\ndocumentation: https://runapi.ai/models/glm.md\nprovider_page: https://runapi.ai/providers/z-ai.md\ncatalog: https://runapi.ai/models.md\nmetadata:\n  openclaw:\n    homepage: https://runapi.ai/models/glm\n    primaryEnv: OPENAI_API_KEY\n    requires:\n      env:\n      - OPENAI_API_KEY\n      - OPENAI_BASE_URL\n    envVars:\n    - name: OPENAI_API_KEY\n      required: true\n      description: RunAPI API key used by OpenAI-compatible GLM clients.\n    - name: OPENAI_BASE_URL\n      required: true\n      description: Set to https://runapi.ai/v1 for GLM on RunAPI.\n---\n\n# GLM on RunAPI\n\nUse the official **OpenAI SDK** or any OpenAI-compatible HTTP client and switch\nthe base URL to `https://runapi.ai/v1`. The primary endpoint is Chat\nCompletions (`POST /v1/chat/completions`).\n\n## Setup\n\n```dotenv\nOPENAI_API_KEY=YOUR_RUNAPI_TOKEN\nOPENAI_BASE_URL=https://runapi.ai/v1\n```\n\nGet a RunAPI API Key at <https://runapi.ai/api_keys>.\n\n## Core recipe - Chat Completions\n\n```python\nfrom openai import OpenAI\n\nclient = OpenAI(\n    api_key=\"YOUR_RUNAPI_TOKEN\",\n    base_url=\"https://runapi.ai/v1\",\n)\n\nresponse = client.chat.completions.create(\n    model=\"glm-5.2\",\n    messages=[{\"role\": \"user\", \"content\": \"Summarize this design review.\"}],\n)\nprint(response.choices[0].message.content)\nprint(response.usage)\n```\n\n```typescript\nimport OpenAI from \"openai\";\n\nconst client = new OpenAI({\n  apiKey: \"YOUR_RUNAPI_TOKEN\",\n  baseURL: \"https://runapi.ai/v1\",\n});\n\nconst response = await client.chat.completions.create({\n  model: \"glm-5.2\",\n  messages: [{ role: \"user\", content: \"Summarize this design review.\" }],\n});\n```\n\n```bash\ncurl -X POST \"https://runapi.ai/v1/chat/completions\" \\\n  -H \"Authorization: Bearer YOUR_RUNAPI_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"glm-5.2\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"Hello, GLM!\"}]\n  }'\n```\n\n## Streaming\n\n```python\nstream = client.chat.completions.create(\n    model=\"glm-5-turbo\",\n    messages=[{\"role\": \"user\", \"content\": \"Write a short implementation plan.\"}],\n    stream=True,\n)\nfor chunk in stream:\n    delta = chunk.choices[0].delta.content\n    if delta:\n        print(delta, end=\"\", flush=True)\n```\n\nStreaming returns partial output as it is generated. Use it for long responses.\n\n## Protocol compatibility\n\nGLM models are also available through RunAPI's Anthropic-compatible Messages\nand Gemini-compatible `contents` interfaces. Use these protocol paths when an\nexisting agent runtime requires their request shapes:\n\n```bash\ncurl -X POST \"https://runapi.ai/v1/messages\" \\\n  -H \"x-api-key: YOUR_RUNAPI_TOKEN\" \\\n  -H \"anthropic-version: 2023-06-01\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"glm-4.6\",\n    \"max_tokens\": 1024,\n    \"messages\": [{\"role\": \"user\", \"content\": \"Draft a concise answer.\"}]\n  }'\n```\n\n```bash\ncurl -X POST \\\n  \"https://runapi.ai/v1beta/models/glm-4.6:streamGenerateContent\" \\\n  -H \"x-goog-api-key: YOUR_RUNAPI_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"contents\":[{\"role\":\"user\",\"parts\":[{\"text\":\"Hello!\"}]}]}'\n```\n\nFor new app code, prefer the OpenAI-compatible setup.\n\n## List models\n\n```bash\ncurl https://runapi.ai/v1/models \\\n  -H \"Authorization: Bearer YOUR_RUNAPI_TOKEN\"\n```\n\n## Supported models\n\n| Model ID | Use when |\n|---|---|\n| `glm-5.2` | Current flagship text workloads |\n| `glm-5.1` | Latest GLM chat workloads |\n| `glm-5-turbo` | Faster GLM chat |\n| `glm-5` | General GLM 5 requests |\n| `glm-4.7` | GLM 4.7 compatibility |\n| `glm-4.6` | Stable GLM 4.6 requests |\n| `glm-4.5` | GLM 4.5 compatibility |\n| `glm-4.5-air` | Lightweight GLM 4.5 requests |\n\n## GLM-5.2 capability contract\n\n| Capability | Current behavior |\n|---|---|\n| Text history, sync, streaming | Supported across Chat, Responses, Messages, and Gemini-compatible requests |\n| Default thinking | Disabled for consistent cross-protocol output |\n| Reasoning controls/content, function tools/history, structured output | Reject with `unsupported_model_capability`; do not retry without the field silently |\n| Hosted tools, explicit cache controls, stateful continuation, protocol-specific controls | Reject; RunAPI does not currently expose the required protocol surface |\n| Cache/reasoning Usage | Preserve returned fields and never infer omitted details; Messages has no caller-visible reasoning-token breakdown |\n| Context window | Keep estimated input at or below 1000000 tokens; full-window execution remains readiness-gated |\n| Maximum output | Keep the protocol-specific value at or below 131072; larger values return `model_limit_exceeded` before request execution |\n| Multimodal input | Reject with `unsupported_model_capability` |\n\nDo not present the model's 1M context envelope as a RunAPI execution guarantee.\nFull-window execution remains subject to published model readiness.\n\n## References\n\n- Model overview, pricing, and rate limits: https://runapi.ai/models/glm.md\n- Provider comparison: https://runapi.ai/providers/z-ai.md\n- Catalog: https://runapi.ai/models.md\n\n## Agent rules\n\n- Keep API keys in `OPENAI_API_KEY`, `RUNAPI_TOKEN`, or a secret manager; never\n  inline them in commits or shell history.\n- Default new integrations to the OpenAI-compatible client at\n  `https://runapi.ai/v1`.\n- Keep `glm-5.2` requests text-only. Use only text history until the capability\n  table marks an advanced feature ready.\n- Do not remove a rejected field and retry unless the user explicitly accepts\n  the semantic change.\n- Treat cache and reasoning Usage as response facts. Never infer missing token\n  details or assume a cache discount.\n- Use streaming for responses longer than a few hundred tokens.\n- For pricing, rate-limit, and commercial-usage answers, link to\n  https://runapi.ai/models/glm.md rather than copying values.\n\nFile v0.3.1:_meta.json\n\n{\n  \"ownerId\": \"kn70me4rk7jqjt92evshjeb5z18768g7\",\n  \"slug\": \"runapi-glm\",\n  \"version\": \"0.3.1\",\n  \"publishedAt\": 1786371272408\n}\n\nFile v0.3.1:skill-card.md\n\n## Description:\n\nCall the GLM API (glm-5.2, glm-5.1, glm-5-turbo, glm-5, glm-4.7, glm-4.6, glm-4.5, glm-4.5-air) through RunAPI using the official OpenAI SDK or compatible clients.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[runapi-ai](https://clawhub.ai/user/runapi-ai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agent builders use this skill to configure OpenAI-compatible clients for GLM requests through RunAPI, including chat completions, streaming, and Anthropic- or Gemini-compatible protocol paths.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill requires calls to an external RunAPI/GLM service, which can expose submitted prompts or content to that provider.\n\nMitigation: Use the skill only when RunAPI processing is approved, and avoid sending secrets, regulated data, or customer content unless policy permits it.\n\nRisk: API tokens are required for operation and could be leaked if copied into source files, commits, or shell history.\n\nMitigation: Store tokens in environment variables or a secret manager and avoid hard-coding credentials in examples or committed files.\n\nRisk: Unsupported GLM capabilities such as multimodal input, structured output, reasoning controls, and hosted tools may fail if requested.\n\nMitigation: Keep GLM requests text-only and do not remove rejected fields and retry unless the user explicitly accepts the semantic change.\n\n## Reference(s):\n\n- [RunAPI GLM model overview](https://runapi.ai/models/glm)\n- [RunAPI GLM model documentation](https://runapi.ai/models/glm.md)\n- [RunAPI Z.ai provider documentation](https://runapi.ai/providers/z-ai.md)\n- [RunAPI model catalog](https://runapi.ai/models.md)\n- [ClawHub skill page](https://clawhub.ai/runapi-ai/skills/runapi-glm)\n- [RunAPI publisher profile](https://clawhub.ai/user/runapi-ai)\n\n## Skill Output:\n\n**Output Type(s):** [guidance, configuration, code, shell commands]\n\n**Output Format:** [Markdown with inline code and shell command examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Produces OpenAI-compatible, Anthropic-compatible, and Gemini-compatible request examples for text-only GLM use.]\n\n## Skill Version(s):\n\n0.3.1 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v0.3.0: 3 files, 4120 bytes\n\nFiles: skill-card.md (2478b), SKILL.md (6113b), _meta.json (129b)\n\nFile v0.3.0:SKILL.md\n\n---\nname: glm\ndescription: Call the GLM API (glm-5.2, glm-5.1, glm-5-turbo, glm-5, glm-4.7, glm-4.6, glm-4.5, glm-4.5-air) through RunAPI using the official OpenAI SDK or compatible clients. Use when the user asks for GLM chat, streaming completions, Anthropic or Gemini protocol compatibility, or when they want to point an existing OpenAI SDK setup at RunAPI as the base URL.\ndocumentation: https://runapi.ai/models/glm.md\nprovider_page: https://runapi.ai/providers/z-ai.md\ncatalog: https://runapi.ai/models.md\nmetadata:\n  openclaw:\n    homepage: https://runapi.ai/models/glm\n    primaryEnv: OPENAI_API_KEY\n    requires:\n      env:\n      - OPENAI_API_KEY\n      - OPENAI_BASE_URL\n    envVars:\n    - name: OPENAI_API_KEY\n      required: true\n      description: RunAPI API key used by OpenAI-compatible GLM clients.\n    - name: OPENAI_BASE_URL\n      required: true\n      description: Set to https://runapi.ai/v1 for GLM on RunAPI.\n---\n\n# GLM on RunAPI\n\nUse the official **OpenAI SDK** or any OpenAI-compatible HTTP client and switch\nthe base URL to `https://runapi.ai/v1`. The primary endpoint is Chat\nCompletions (`POST /v1/chat/completions`).\n\n## Setup\n\n```dotenv\nOPENAI_API_KEY=YOUR_RUNAPI_TOKEN\nOPENAI_BASE_URL=https://runapi.ai/v1\n```\n\nGet a RunAPI API Key at <https://runapi.ai/api_keys>.\n\n## Core recipe - Chat Completions\n\n```python\nfrom openai import OpenAI\n\nclient = OpenAI(\n    api_key=\"YOUR_RUNAPI_TOKEN\",\n    base_url=\"https://runapi.ai/v1\",\n)\n\nresponse = client.chat.completions.create(\n    model=\"glm-5.2\",\n    messages=[{\"role\": \"user\", \"content\": \"Summarize this design review.\"}],\n)\nprint(response.choices[0].message.content)\nprint(response.usage)\n```\n\n```typescript\nimport OpenAI from \"openai\";\n\nconst client = new OpenAI({\n  apiKey: \"YOUR_RUNAPI_TOKEN\",\n  baseURL: \"https://runapi.ai/v1\",\n});\n\nconst response = await client.chat.completions.create({\n  model: \"glm-5.2\",\n  messages: [{ role: \"user\", content: \"Summarize this design review.\" }],\n});\n```\n\n```bash\ncurl -X POST \"https://runapi.ai/v1/chat/completions\" \\\n  -H \"Authorization: Bearer YOUR_RUNAPI_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"glm-5.2\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"Hello, GLM!\"}]\n  }'\n```\n\n## Streaming\n\n```python\nstream = client.chat.completions.create(\n    model=\"glm-5-turbo\",\n    messages=[{\"role\": \"user\", \"content\": \"Write a short implementation plan.\"}],\n    stream=True,\n)\nfor chunk in stream:\n    delta = chunk.choices[0].delta.content\n    if delta:\n        print(delta, end=\"\", flush=True)\n```\n\nStreaming returns partial output as it is generated. Use it for long responses.\n\n## Protocol compatibility\n\nGLM models are also available through RunAPI's Anthropic-compatible Messages\nand Gemini-compatible `contents` interfaces. Use these protocol paths when an\nexisting agent runtime requires their request shapes:\n\n```bash\ncurl -X POST \"https://runapi.ai/v1/messages\" \\\n  -H \"x-api-key: YOUR_RUNAPI_TOKEN\" \\\n  -H \"anthropic-version: 2023-06-01\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"glm-4.6\",\n    \"max_tokens\": 1024,\n    \"messages\": [{\"role\": \"user\", \"content\": \"Draft a concise answer.\"}]\n  }'\n```\n\n```bash\ncurl -X POST \\\n  \"https://runapi.ai/v1beta/models/glm-4.6:streamGenerateContent\" \\\n  -H \"x-goog-api-key: YOUR_RUNAPI_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"contents\":[{\"role\":\"user\",\"parts\":[{\"text\":\"Hello!\"}]}]}'\n```\n\nFor new app code, prefer the OpenAI-compatible setup.\n\n## List models\n\n```bash\ncurl https://runapi.ai/v1/models \\\n  -H \"Authorization: Bearer YOUR_RUNAPI_TOKEN\"\n```\n\n## Supported models\n\n| Model ID | Use when |\n|---|---|\n| `glm-5.2` | Current flagship text workloads |\n| `glm-5.1` | Latest GLM chat workloads |\n| `glm-5-turbo` | Faster GLM chat |\n| `glm-5` | General GLM 5 requests |\n| `glm-4.7` | GLM 4.7 compatibility |\n| `glm-4.6` | Stable GLM 4.6 requests |\n| `glm-4.5` | GLM 4.5 compatibility |\n| `glm-4.5-air` | Lightweight GLM 4.5 requests |\n\n## GLM-5.2 capability contract\n\n| Capability | Current behavior |\n|---|---|\n| Text history, sync, streaming | Supported across Chat, Responses, Messages, and Gemini-compatible requests |\n| Default thinking | Disabled for consistent cross-protocol output |\n| Reasoning controls/content, function tools/history, structured output | Reject with `unsupported_model_capability`; do not retry without the field silently |\n| Hosted tools, explicit cache controls, stateful continuation, protocol-specific controls | Reject; RunAPI does not currently expose the required protocol surface |\n| Cache/reasoning Usage | Preserve returned fields and never infer omitted details; Messages has no caller-visible reasoning-token breakdown |\n| Context window | Keep estimated input at or below 1000000 tokens; full-window execution remains readiness-gated |\n| Maximum output | Keep the protocol-specific value at or below 131072; larger values return `model_limit_exceeded` before request execution |\n| Multimodal input | Reject with `unsupported_model_capability` |\n\nDo not present the model's 1M context envelope as a RunAPI execution guarantee.\nFull-window execution remains subject to published model readiness.\n\n## References\n\n- Model overview, pricing, and rate limits: https://runapi.ai/models/glm.md\n- Provider comparison: https://runapi.ai/providers/z-ai.md\n- Catalog: https://runapi.ai/models.md\n\n## Agent rules\n\n- Keep API keys in `OPENAI_API_KEY`, `RUNAPI_TOKEN`, or a secret manager; never\n  inline them in commits or shell history.\n- Default new integrations to the OpenAI-compatible client at\n  `https://runapi.ai/v1`.\n- Keep `glm-5.2` requests text-only. Use only text history until the capability\n  table marks an advanced feature ready.\n- Do not remove a rejected field and retry unless the user explicitly accepts\n  the semantic change.\n- Treat cache and reasoning Usage as response facts. Never infer missing token\n  details or assume a cache discount.\n- Use streaming for responses longer than a few hundred tokens.\n- For pricing, rate-limit, and commercial-usage answers, link to\n  https://runapi.ai/models/glm.md rather than copying values.\n\nFile v0.3.0:_meta.json\n\n{\n  \"ownerId\": \"kn70me4rk7jqjt92evshjeb5z18768g7\",\n  \"slug\": \"runapi-glm\",\n  \"version\": \"0.3.0\",\n  \"publishedAt\": 1784801192159\n}\n\nFile v0.3.0:skill-card.md\n\n## Description: <br>\nCall the GLM API (glm-5.2, glm-5.1, glm-5-turbo, glm-5, glm-4.7, glm-4.6, glm-4.5, glm-4.5-air) through RunAPI using the official OpenAI SDK or compatible clients. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[runapi-ai](https://clawhub.ai/user/runapi-ai) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agent builders use this skill to configure RunAPI access for GLM chat, streaming completions, and OpenAI-, Anthropic-, or Gemini-compatible request patterns. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Prompts and API payloads used with the examples are sent to RunAPI's service. <br>\nMitigation: Use this skill only when RunAPI is an approved provider for the workload, and avoid sending sensitive data unless covered by the user's data-handling requirements. <br>\nRisk: RunAPI API keys can be exposed if copied into source files, commits, or shell history. <br>\nMitigation: Store the API key in OPENAI_API_KEY, RUNAPI_TOKEN, or a secret manager and avoid hard-coding credentials in examples or scripts. <br>\nRisk: Unsupported GLM-5.2 features or oversized requests may be rejected rather than silently downgraded. <br>\nMitigation: Keep requests text-only, respect the documented context and output limits, and ask the user before removing rejected fields or changing request semantics. <br>\n\n\n## Reference(s): <br>\n- [RunAPI GLM model page](https://runapi.ai/models/glm) <br>\n- [GLM model overview, pricing, and rate limits](https://runapi.ai/models/glm.md) <br>\n- [Z.AI provider comparison](https://runapi.ai/providers/z-ai.md) <br>\n- [RunAPI model catalog](https://runapi.ai/models.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown with dotenv, Python, TypeScript, and bash code blocks] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires OPENAI_API_KEY and OPENAI_BASE_URL; examples send prompts and API payloads to RunAPI.] <br>\n\n## Skill Version(s): <br>\n0.3.0 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v0.2.0: 3 files, 3533 bytes\n\nFiles: skill-card.md (2580b), SKILL.md (4874b), _meta.json (129b)\n\nFile v0.2.0:SKILL.md\n\n---\nname: glm\ndescription: Call the GLM API (glm-5.2, glm-5.1, glm-5-turbo, glm-5, glm-4.7, glm-4.6, glm-4.5, glm-4.5-air) through RunAPI using the official OpenAI SDK or compatible clients. Use when the user asks for GLM chat, streaming completions, Anthropic or Gemini protocol compatibility, or when they want to point an existing OpenAI SDK setup at RunAPI as the base URL.\ndocumentation: https://runapi.ai/models/glm.md\nprovider_page: https://runapi.ai/providers/z-ai.md\ncatalog: https://runapi.ai/models.md\nmetadata:\n  openclaw:\n    homepage: https://runapi.ai/models/glm\n    primaryEnv: OPENAI_API_KEY\n    requires:\n      env:\n      - OPENAI_API_KEY\n      - OPENAI_BASE_URL\n    envVars:\n    - name: OPENAI_API_KEY\n      required: true\n      description: RunAPI API key used by OpenAI-compatible GLM clients.\n    - name: OPENAI_BASE_URL\n      required: true\n      description: Set to https://runapi.ai/v1 for GLM on RunAPI.\n---\n\n# GLM on RunAPI\n\nUse the official **OpenAI SDK** or any OpenAI-compatible HTTP client and switch\nthe base URL to `https://runapi.ai/v1`. The primary endpoint is Chat\nCompletions (`POST /v1/chat/completions`).\n\n## Setup\n\n```dotenv\nOPENAI_API_KEY=YOUR_RUNAPI_TOKEN\nOPENAI_BASE_URL=https://runapi.ai/v1\n```\n\nGet a RunAPI API Key at <https://runapi.ai/api_keys>.\n\n## Core recipe - Chat Completions\n\n```python\nfrom openai import OpenAI\n\nclient = OpenAI(\n    api_key=\"YOUR_RUNAPI_TOKEN\",\n    base_url=\"https://runapi.ai/v1\",\n)\n\nresponse = client.chat.completions.create(\n    model=\"glm-5.2\",\n    messages=[{\"role\": \"user\", \"content\": \"Summarize this design review.\"}],\n)\nprint(response.choices[0].message.content)\nprint(response.usage)\n```\n\n```typescript\nimport OpenAI from \"openai\";\n\nconst client = new OpenAI({\n  apiKey: \"YOUR_RUNAPI_TOKEN\",\n  baseURL: \"https://runapi.ai/v1\",\n});\n\nconst response = await client.chat.completions.create({\n  model: \"glm-5.2\",\n  messages: [{ role: \"user\", content: \"Summarize this design review.\" }],\n});\n```\n\n```bash\ncurl -X POST \"https://runapi.ai/v1/chat/completions\" \\\n  -H \"Authorization: Bearer YOUR_RUNAPI_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"glm-5.2\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"Hello, GLM!\"}]\n  }'\n```\n\n## Streaming\n\n```python\nstream = client.chat.completions.create(\n    model=\"glm-5-turbo\",\n    messages=[{\"role\": \"user\", \"content\": \"Write a short implementation plan.\"}],\n    stream=True,\n)\nfor chunk in stream:\n    delta = chunk.choices[0].delta.content\n    if delta:\n        print(delta, end=\"\", flush=True)\n```\n\nStreaming runs through a regional edge proxy so the request does not hold a\nRails/Puma thread. Long generations should always stream.\n\n## Protocol compatibility\n\nGLM models are also available through RunAPI's Anthropic-compatible and Gemini\n`contents` client surfaces. RunAPI bridges those request and response shapes to\nthe OpenAI-compatible chat request format, so use these protocol paths only when an\nexisting agent runtime requires them:\n\n```bash\ncurl -X POST \"https://runapi.ai/v1/messages\" \\\n  -H \"x-api-key: YOUR_RUNAPI_TOKEN\" \\\n  -H \"anthropic-version: 2023-06-01\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"glm-4.6\",\n    \"max_tokens\": 1024,\n    \"messages\": [{\"role\": \"user\", \"content\": \"Draft a concise answer.\"}]\n  }'\n```\n\n```bash\ncurl -X POST \\\n  \"https://runapi.ai/v1beta/models/glm-4.6:streamGenerateContent\" \\\n  -H \"x-goog-api-key: YOUR_RUNAPI_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"contents\":[{\"role\":\"user\",\"parts\":[{\"text\":\"Hello!\"}]}]}'\n```\n\nFor new app code, prefer the OpenAI-compatible setup.\n\n## List models\n\n```bash\ncurl https://runapi.ai/v1/models \\\n  -H \"Authorization: Bearer YOUR_RUNAPI_TOKEN\"\n```\n\n## Supported models\n\n| Model ID | Use when |\n|---|---|\n| `glm-5.2` | Current flagship text workloads |\n| `glm-5.1` | Latest GLM chat workloads |\n| `glm-5-turbo` | Faster GLM chat |\n| `glm-5` | General GLM 5 requests |\n| `glm-4.7` | GLM 4.7 compatibility |\n| `glm-4.6` | Stable GLM 4.6 requests |\n| `glm-4.5` | GLM 4.5 compatibility |\n| `glm-4.5-air` | Lightweight GLM 4.5 requests |\n\n## References\n\n- Model overview, pricing, and rate limits: https://runapi.ai/models/glm.md\n- Provider comparison: https://runapi.ai/providers/z-ai.md\n- Catalog: https://runapi.ai/models.md\n\n## Agent rules\n\n- Keep API keys in `OPENAI_API_KEY`, `RUNAPI_TOKEN`, or a secret manager; never\n  inline them in commits or shell history.\n- Default new integrations to the OpenAI-compatible client at\n  `https://runapi.ai/v1`.\n- Keep `glm-5.2` requests text-only. RunAPI disables thinking for its initial\n  contract and rejects reasoning controls, tools, structured output, and\n  continuation fields.\n- Use streaming for responses longer than a few hundred tokens.\n- For pricing, rate-limit, and commercial-usage answers, link to\n  https://runapi.ai/models/glm.md rather than copying values.\n\nFile v0.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn70me4rk7jqjt92evshjeb5z18768g7\",\n  \"slug\": \"runapi-glm\",\n  \"version\": \"0.2.0\",\n  \"publishedAt\": 1784797146733\n}\n\nFile v0.2.0:skill-card.md\n\n## Description: <br>\nCall the GLM API through RunAPI using the official OpenAI SDK or compatible clients for chat, streaming completions, and protocol-compatible integrations. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[runapi-ai](https://clawhub.ai/user/runapi-ai) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agent builders use this skill to configure GLM requests through RunAPI with OpenAI-compatible clients, streaming, and optional Anthropic- or Gemini-compatible request surfaces. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: RunAPI or OpenAI-compatible API keys could be exposed if copied into committed source files or shell history. <br>\nMitigation: Keep credentials in environment variables or a secret manager, and avoid hard-coding keys in code examples or committed configuration. <br>\nRisk: Prompts and selected request content are sent to RunAPI-hosted GLM endpoints. <br>\nMitigation: Review data handling requirements before use and send only content appropriate for the configured RunAPI endpoint. <br>\nRisk: Advanced request fields outside the documented initial text-only GLM contract may be rejected. <br>\nMitigation: Keep GLM 5.2 requests text-only and avoid unsupported reasoning controls, tools, structured output, and continuation fields unless the provider documentation changes. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/runapi-ai/skills/runapi-glm) <br>\n- [RunAPI GLM homepage](https://runapi.ai/models/glm) <br>\n- [RunAPI GLM model documentation](https://runapi.ai/models/glm.md) <br>\n- [RunAPI Z.ai provider page](https://runapi.ai/providers/z-ai.md) <br>\n- [RunAPI model catalog](https://runapi.ai/models.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown with inline code and shell command examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Includes environment-variable setup, OpenAI-compatible API examples, streaming guidance, protocol compatibility notes, and model-selection guidance.] <br>\n\n## Skill Version(s): <br>\n0.2.0 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v0.1.0: 3 files, 3327 bytes\n\nFiles: skill-card.md (2227b), SKILL.md (4643b), _meta.json (129b)\n\nFile v0.1.0:SKILL.md\n\n---\nname: glm\ndescription: Call the GLM API (glm-5.1, glm-5-turbo, glm-5, glm-4.7, glm-4.6, glm-4.5, glm-4.5-air) through RunAPI using the official OpenAI SDK or compatible clients. Use when the user asks for GLM chat, streaming completions, Anthropic or Gemini protocol compatibility, or when they want to point an existing OpenAI SDK setup at RunAPI as the base URL.\ndocumentation: https://runapi.ai/models/glm.md\nprovider_page: https://runapi.ai/providers/z-ai.md\ncatalog: https://runapi.ai/models.md\nmetadata:\n  openclaw:\n    homepage: https://runapi.ai/models/glm\n    primaryEnv: OPENAI_API_KEY\n    requires:\n      env:\n      - OPENAI_API_KEY\n      - OPENAI_BASE_URL\n    envVars:\n    - name: OPENAI_API_KEY\n      required: true\n      description: RunAPI API key used by OpenAI-compatible GLM clients.\n    - name: OPENAI_BASE_URL\n      required: true\n      description: Set to https://runapi.ai/v1 for GLM on RunAPI.\n---\n\n# GLM on RunAPI\n\nUse the official **OpenAI SDK** or any OpenAI-compatible HTTP client and switch\nthe base URL to `https://runapi.ai/v1`. The primary endpoint is Chat\nCompletions (`POST /v1/chat/completions`).\n\n## Setup\n\n```dotenv\nOPENAI_API_KEY=YOUR_RUNAPI_TOKEN\nOPENAI_BASE_URL=https://runapi.ai/v1\n```\n\nGet a RunAPI API Key at <https://runapi.ai/api_keys>.\n\n## Core recipe - Chat Completions\n\n```python\nfrom openai import OpenAI\n\nclient = OpenAI(\n    api_key=\"YOUR_RUNAPI_TOKEN\",\n    base_url=\"https://runapi.ai/v1\",\n)\n\nresponse = client.chat.completions.create(\n    model=\"glm-5.1\",\n    messages=[{\"role\": \"user\", \"content\": \"Summarize this design review.\"}],\n)\nprint(response.choices[0].message.content)\nprint(response.usage)\n```\n\n```typescript\nimport OpenAI from \"openai\";\n\nconst client = new OpenAI({\n  apiKey: \"YOUR_RUNAPI_TOKEN\",\n  baseURL: \"https://runapi.ai/v1\",\n});\n\nconst response = await client.chat.completions.create({\n  model: \"glm-5.1\",\n  messages: [{ role: \"user\", content: \"Summarize this design review.\" }],\n});\n```\n\n```bash\ncurl -X POST \"https://runapi.ai/v1/chat/completions\" \\\n  -H \"Authorization: Bearer YOUR_RUNAPI_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"glm-5.1\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"Hello, GLM!\"}]\n  }'\n```\n\n## Streaming\n\n```python\nstream = client.chat.completions.create(\n    model=\"glm-5-turbo\",\n    messages=[{\"role\": \"user\", \"content\": \"Write a short implementation plan.\"}],\n    stream=True,\n)\nfor chunk in stream:\n    delta = chunk.choices[0].delta.content\n    if delta:\n        print(delta, end=\"\", flush=True)\n```\n\nStreaming runs through a regional edge proxy so the request does not hold a\nRails/Puma thread. Long generations should always stream.\n\n## Protocol compatibility\n\nGLM models are also available through RunAPI's Anthropic-compatible and Gemini\n`contents` client surfaces. RunAPI bridges those request and response shapes to\nthe OpenAI-compatible chat request format, so use these protocol paths only when an\nexisting agent runtime requires them:\n\n```bash\ncurl -X POST \"https://runapi.ai/v1/messages\" \\\n  -H \"x-api-key: YOUR_RUNAPI_TOKEN\" \\\n  -H \"anthropic-version: 2023-06-01\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"glm-4.6\",\n    \"max_tokens\": 1024,\n    \"messages\": [{\"role\": \"user\", \"content\": \"Draft a concise answer.\"}]\n  }'\n```\n\n```bash\ncurl -X POST \\\n  \"https://runapi.ai/v1beta/models/glm-4.6:streamGenerateContent\" \\\n  -H \"x-goog-api-key: YOUR_RUNAPI_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"contents\":[{\"role\":\"user\",\"parts\":[{\"text\":\"Hello!\"}]}]}'\n```\n\nFor new app code, prefer the OpenAI-compatible setup.\n\n## List models\n\n```bash\ncurl https://runapi.ai/v1/models \\\n  -H \"Authorization: Bearer YOUR_RUNAPI_TOKEN\"\n```\n\n## Supported models\n\n| Model ID | Use when |\n|---|---|\n| `glm-5.1` | Latest GLM chat workloads |\n| `glm-5-turbo` | Faster GLM chat |\n| `glm-5` | General GLM 5 requests |\n| `glm-4.7` | GLM 4.7 compatibility |\n| `glm-4.6` | Stable GLM 4.6 requests |\n| `glm-4.5` | GLM 4.5 compatibility |\n| `glm-4.5-air` | Lightweight GLM 4.5 requests |\n\n## References\n\n- Model overview, pricing, and rate limits: https://runapi.ai/models/glm.md\n- Provider comparison: https://runapi.ai/providers/z-ai.md\n- Catalog: https://runapi.ai/models.md\n\n## Agent rules\n\n- Keep API keys in `OPENAI_API_KEY`, `RUNAPI_TOKEN`, or a secret manager; never\n  inline them in commits or shell history.\n- Default new integrations to the OpenAI-compatible client at\n  `https://runapi.ai/v1`.\n- Use streaming for responses longer than a few hundred tokens.\n- For pricing, rate-limit, and commercial-usage answers, link to\n  https://runapi.ai/models/glm.md rather than copying values.\n\nFile v0.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn70me4rk7jqjt92evshjeb5z18768g7\",\n  \"slug\": \"runapi-glm\",\n  \"version\": \"0.1.0\",\n  \"publishedAt\": 1782293783160\n}\n\nFile v0.1.0:skill-card.md\n\n## Description: <br>\nCall the GLM API through RunAPI using the official OpenAI SDK or compatible clients for chat, streaming completions, Anthropic-compatible requests, and Gemini-compatible requests. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[runapi-ai](https://clawhub.ai/user/runapi-ai) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agent builders use this skill to configure GLM model calls through RunAPI with OpenAI-compatible defaults and protocol compatibility notes. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: RunAPI credentials could be exposed if real API keys are committed, pasted into shared logs, or stored in shell history. <br>\nMitigation: Use a secret manager or environment variables for OPENAI_API_KEY, avoid committing real tokens, and rotate any key that may have been exposed. <br>\nRisk: Requests may be sent to the wrong service if OPENAI_BASE_URL is not set to the intended RunAPI endpoint. <br>\nMitigation: Set OPENAI_BASE_URL deliberately to https://runapi.ai/v1 for this integration and verify endpoint configuration before use. <br>\n\n\n## Reference(s): <br>\n- [RunAPI GLM model page](https://runapi.ai/models/glm) <br>\n- [RunAPI GLM documentation](https://runapi.ai/models/glm.md) <br>\n- [RunAPI Z.ai provider page](https://runapi.ai/providers/z-ai.md) <br>\n- [RunAPI model catalog](https://runapi.ai/models.md) <br>\n- [ClawHub skill page](https://clawhub.ai/runapi-ai/skills/runapi-glm) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Guidance, Code, Shell commands, Configuration instructions] <br>\n**Output Format:** [Markdown with code blocks] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Includes environment variable names and OpenAI-compatible endpoint examples.] <br>\n\n## Skill Version(s): <br>\n0.1.0 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>","readmeExcerpt":"Skill: glm Owner: runapi-ai Summary: Call the GLM API (GLM 5.3 and earlier GLM 5 and 4 series) through RunAPI using OpenAI-compatible Chat Completions. Use for GLM text chat, streaming, or an existing compatibility client that needs the conditional reference. Tags: latest:0.3.3 Version history: v0.3.3 | 2026-09-07T11:01:35.909Z | user Added - Document glm-5.3 text and streaming requests through OpenAI-compatible Chat","codeSnippets":[],"executableExamples":[{"language":"python","snippet":"from openai import OpenAI\nclient = OpenAI(api_key=\"YOUR_RUNAPI_TOKEN\", base_url=\"https://runapi.ai/v1\")\nresponse = client.chat.completions.create(\n    model=\"glm-5.3\",\n    messages=[{\"role\": \"user\", \"content\": \"Summarize this review.\"}],\n)\nprint(response.choices[0].message.content)\nprint(response.usage)"},{"language":"python","snippet":"from openai import OpenAI\nclient = OpenAI(api_key=\"YOUR_RUNAPI_TOKEN\", base_url=\"https://runapi.ai/v1\")\nresponse = client.chat.completions.create(\n    model=\"glm-5.2\",\n    messages=[{\"role\": \"user\", \"content\": \"Summarize this review.\"}],\n)\nprint(response.choices[0].message.content)\nprint(response.usage)"},{"language":"dotenv","snippet":"OPENAI_API_KEY=YOUR_RUNAPI_TOKEN\nOPENAI_BASE_URL=https://runapi.ai/v1"},{"language":"python","snippet":"from openai import OpenAI\n\nclient = OpenAI(\n    api_key=\"YOUR_RUNAPI_TOKEN\",\n    base_url=\"https://runapi.ai/v1\",\n)\n\nresponse = client.chat.completions.create(\n    model=\"glm-5.2\",\n    messages=[{\"role\": \"user\", \"content\": \"Summarize this design review.\"}],\n)\nprint(response.choices[0].message.content)\nprint(response.usage)"},{"language":"typescript","snippet":"import OpenAI from \"openai\";\n\nconst client = new OpenAI({\n  apiKey: \"YOUR_RUNAPI_TOKEN\",\n  baseURL: \"https://runapi.ai/v1\",\n});\n\nconst response = await client.chat.completions.create({\n  model: \"glm-5.2\",\n  messages: [{ role: \"user\", content: \"Summarize this design review.\" }],\n});"},{"language":"bash","snippet":"curl -X POST \"https://runapi.ai/v1/chat/completions\" \\\n  -H \"Authorization: Bearer YOUR_RUNAPI_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: glm\ndescription: Call the GLM API (GLM 5.3 and earlier GLM 5 and 4 series) through RunAPI using OpenAI-compatible Chat Completions. Use for GLM text chat, streaming, or an existing compatibility client that needs the conditional reference.\ndocumentation: https://runapi.ai/models/glm.md\nprovider_page: https://runapi.ai/providers/z-ai.md\ncatalog: https://runapi.ai/models.md\nmetadata:\n  openclaw:\n    homepage: https://runapi.ai/models/glm\n    primaryEnv: OPENAI_API_KEY\n    requires:\n      env: [OPENAI_API_KEY, OPENAI_BASE_URL]\n    envVars:\n    - {name: OPENAI_API_KEY, required: true, description: RunAPI API key used by OpenAI-compatible GLM clients.}\n    - {name: OPENAI_BASE_URL, required: true, description: Set to https://runapi.ai/v1 for GLM on RunAPI.}\n---\n\n# GLM on RunAPI\n\nUse OpenAI-compatible Chat Completions at `https://runapi.ai/v1` as the primary protocol.\n\n## Primary protocol recipe\n\n### Authenticate\n\nSet `OPENAI_API_KEY` to a RunAPI API key and `OPENAI_BASE_URL` to `https://runapi.ai/v1`.\n\n### Send request\n\n```python\nfrom openai import OpenAI\nclient = OpenAI(api_key=\"YOUR_RUNAPI_TOKEN\", base_url=\"https://runapi.ai/v1\")\nresponse = client.chat.completions.create(\n    model=\"glm-5.3\",\n    messages=[{\"role\": \"user\", \"content\": \"Summarize this review.\"}],\n)\nprint(response.choices[0].message.content)\nprint(response.usage)\n```\n\nFor long output, call the same method with `stream=True` and\n`stream_options={\"include_usage\": True}`; consume every chunk through `[DONE]`.\n\n### Verify result\n\nRequire final assistant content, a terminal `finish_reason`, and authoritative\n`usage`. A stream is complete only after its terminal usage chunk and `[DONE]`.\n\n### Stop boundaries\n\nCorrect a rejected shape once using the structured error. Retry transport once\nonly before any response or Usage and when replay is safe. Record a terminal\nerror and stop without changing model or protocol. For `glm-5.3`, keep requests\nto text history on Chat Completions. Add tools, reasoning, structured output, or\nmultimodal input only when the current RunAPI contract explicitly verifies that\ncapability.\n\n## Compatibility protocols\n\nDo not use compatibility protocols with `glm-5.3`; use the primary recipe.\nLoad [compatibility protocols](references/compatibility-protocols.md) only when an existing client requires Anthropic Messages or Gemini contents for an earlier compatible model.\n\n## GLM-5.3 capability boundary\n\n| Capability | Current behavior |\n|---|---|\n| Text history, sync, streaming | Supported through OpenAI-compatible Chat Completions |\n| OpenAI Responses, Anthropic Messages, Gemini contents | Not supported for `glm-5.3` |\n| Tools, reasoning controls, structured output, multimodal input | Not declared pending model-specific evidence |\n| Usage | Preserve returned token and cache fields; never infer missing details |\n\n## Supported models\n\n| Model ID | Use when |\n|---|---|\n| `glm-5.3` | Latest text workloads through Chat Completions |\n| `glm-5.2` | Cross-protocol flagshi"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn70me4rk7jqjt92evshjeb5z18768g7\",\n  \"slug\": \"runapi-glm\",\n  \"version\": \"0.3.3\",\n  \"publishedAt\": 1788778895909\n}"},{"path":"references/compatibility-protocols.md","content":"# GLM compatibility protocols\n\nLoad this reference only for an existing Anthropic Messages or Gemini contents client.\n\n`glm-5.3` is not supported on these compatibility protocols. Use\nOpenAI-compatible Chat Completions for that model, or select an earlier model\nwhose current RunAPI capability contract supports the required protocol.\n\nFor Messages, use base URL `https://runapi.ai`, a RunAPI key, a supported exact\nmodel ID, `max_tokens`, and text messages. Verify final content, `stop_reason`,\nand `usage`; streaming ends at `message_stop`.\n\nFor Gemini contents, set `RUNAPI_MODEL` to a supported exact model ID and use\n`https://runapi.ai/v1beta/models/$RUNAPI_MODEL:generateContent`\nor `streamGenerateContent` with `x-goog-api-key`. Verify candidates,\n`finishReason`, and `usageMetadata`.\n\nApply one evidence-backed shape correction, at most one safe pre-response\ntransport retry, and no automatic model or protocol hopping."},{"path":"skill-card.md","content":"## Description:\n\nCall the GLM API (GLM 5.3 and earlier GLM 5 and 4 series) through RunAPI using OpenAI-compatible Chat Completions. Use for GLM text chat, streaming, or an existing compatibility client that needs the conditional reference.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[runapi-ai](https://clawhub.ai/user/runapi-ai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and engineers use this skill to call GLM models through RunAPI with OpenAI-compatible Chat Completions, including text chat and streaming workflows. Existing compatibility-client users can consult the conditional reference for earlier GLM models.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Sensitive prompts or credentials may be sent to RunAPI when the agent follows the API recipe.\n\nMitigation: Configure OPENAI_API_KEY and OPENAI_BASE_URL deliberately and review RunAPI data handling terms before sending sensitive prompts.\n\nRisk: Using compatibility protocols or undeclared capabilities with glm-5.3 can produce rejected or unreliable requests.\n\nMitigation: Use OpenAI-compatible Chat Completions for glm-5.3 and add tools, reasoning controls, structured output, multimodal input, or alternate protocols only when RunAPI explicitly verifies support.\n\n## Reference(s):\n\n- [RunAPI GLM model documentation](https://runapi.ai/models/glm.md)\n- [RunAPI GLM model page](https://runapi.ai/models/glm)\n- [RunAPI Z.AI provider page](https://runapi.ai/providers/z-ai.md)\n- [RunAPI model catalog](https://runapi.ai/models.md)\n- [GLM compatibility protocols](references/compatibility-protocols.md)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Code, Shell commands, Configuration instructions]\n\n**Output Format:** [Markdown with inline Python examples and configuration values]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires OPENAI_API_KEY and OPENAI_BASE_URL for RunAPI usage.]\n\n## Skill Version(s):\n\n0.3.3 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1288,"uniquenessScore":41,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T11:15:33.490Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T11:15:33.490Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T14:13:01.959Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}