{"id":"e19a9e73-49d5-4d48-88e3-8cefddbb8276","entityType":"agent","slug":"clawhub-skills-4xiomdev-whoop-central","name":"whoop","canonicalUrl":"https://www.xpersona.co/agent/clawhub-skills-4xiomdev-whoop-central","canonicalPath":"/agent/clawhub-skills-4xiomdev-whoop-central","generatedAt":"2026-10-09T22:41:48.469Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"description":"WHOOP Central - OAuth + scripts to fetch WHOOP data (sleep, recovery, strain, workouts). Use when user asks about their sleep, recovery score, HRV, strain, or workout data. --- name: whoop description: WHOOP Central - OAuth + scripts to fetch WHOOP data (sleep, recovery, strain, workouts). Use when user asks about their sleep, recovery score, HRV, strain, or workout data. version: 1.0.2 metadata: clawdbot: emoji: \"🏋️\" requires: bins: [\"node\", \"openssl\"] --- WHOOP Central Access sleep, recovery, strain, and workout data from WHOOP via the v2 API. Quick Commands Data Available | Metric |","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. Last updated 4/15/2026.","installCommand":"clawhub skill install skills:4xiomdev:whoop-central","sourceUrl":"https://github.com/openclaw/skills/tree/main/skills/4xiomdev/whoop-central","homepage":null,"primaryLinks":[{"label":"View on ClawHub","url":"https://github.com/openclaw/skills/tree/main/skills/4xiomdev/whoop-central","kind":"source"}],"safetyScore":84,"overallRank":62,"popularityScore":50,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"WHOOP Central - OAuth + scripts to fetch WHOOP data (sleep, recovery, strain, workouts). Use when user asks about their sleep, recovery score, HRV, strain, or w"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[{"label":"keep","status":"self-declared"},{"label":"create","status":"self-declared"},{"label":"share","status":"self-declared"},{"label":"use","status":"self-declared"},{"label":"complete","status":"self-declared"},{"label":"this","status":"self-declared"}],"verifiedCount":0,"selfDeclaredCount":7,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"},{"key":"keep","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"create","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"share","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"use","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"complete","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"this","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile capability:keep|supported|profile capability:create|supported|profile capability:share|supported|profile capability:use|supported|profile capability:complete|supported|profile capability:this|supported|profile"}},"adoption":{"evidence":{"source":"no-adoption-signals","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"No source adoption metrics were available."},"stars":null,"forks":null,"downloads":null,"packageName":null,"latestVersion":null,"tractionLabel":null},"release":{"evidence":{"source":"agent-index","verified":false,"confidence":"medium","updatedAt":"2026-02-25T05:53:34.915Z","emptyReason":null},"lastUpdatedAt":"2026-04-15T00:45:39.800Z","lastCrawledAt":"2026-02-25T05:53:34.915Z","lastIndexedAt":null,"nextCrawlAt":"2026-02-26T05:53:34.915Z","lastVerifiedAt":null,"highlights":[]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install skills:4xiomdev:whoop-central","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"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-skills-4xiomdev-whoop-central/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-4xiomdev-whoop-central/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-4xiomdev-whoop-central/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-skills-4xiomdev-whoop-central/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-skills-4xiomdev-whoop-central/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-skills-4xiomdev-whoop-central/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-09T22:41:48.469Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-4xiomdev-whoop-central/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-4xiomdev-whoop-central/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-4xiomdev-whoop-central/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-4xiomdev-whoop-central/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":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"readme":"---\nname: whoop\ndescription: WHOOP Central - OAuth + scripts to fetch WHOOP data (sleep, recovery, strain, workouts). Use when user asks about their sleep, recovery score, HRV, strain, or workout data.\nversion: 1.0.2\nmetadata:\n  clawdbot:\n    emoji: \"🏋️\"\n    requires:\n      bins: [\"node\", \"openssl\"]\n---\n\n# WHOOP Central\n\nAccess sleep, recovery, strain, and workout data from WHOOP via the v2 API.\n\n## Quick Commands\n\n```bash\n# 1) One-time setup (writes ~/.clawdbot/whoop/credentials.json)\nnode src/setup.js\n\n# 2) Recommended: Get tokens via Postman (see Auth section), then verify\nnode src/verify.js\nnode src/verify.js --refresh\n\n# Prompt-friendly snapshot (includes last workout)\nnode src/today.js\n\n# Daily summary (all metrics)\nnode src/summary.js\n\n# Individual metrics\nnode src/recovery.js\nnode src/sleep.js\nnode src/strain.js\nnode src/workouts.js\n\n# Bulk import to ~/clawd/health/logs/whoop/*\nnode src/import-historical.js\n```\n\n## Data Available\n\n| Metric | Data Points |\n|--------|-------------|\n| **Recovery** | Score (0-100%), HRV, resting HR, SpO2, skin temp |\n| **Sleep** | Duration, stages (REM/deep/light), efficiency, performance |\n| **Strain** | Daily strain (0-21), calories, avg/max HR |\n| **Workouts** | Activity type, duration, strain, calories, HR |\n\n## Recovery Score Guide\n\n- 💚 **67-100%** Green - Ready to perform\n- 💛 **34-66%** Yellow - Moderate readiness\n- ❤️ **0-33%** Red - Focus on recovery\n\n## Setup\n\n### 0. Requirements\n\n- Node.js 18+ (this repo uses ESM)\n- `openssl` (only needed for the optional `auth.js` flow when using `https://localhost`; Postman auth does not need it)\n\n### 1. Create WHOOP Developer App\n\n1. Go to https://developer.whoop.com/\n2. Sign in with your WHOOP account\n3. Create a new App\n4. Add these Redirect URIs (exact match; no extra trailing slashes):\n   - Postman browser callback (recommended auth path):\n     ```\n     https://oauth.pstmn.io/v1/browser-callback\n     ```\n   - Optional local callback (only used by `auth.js`):\n     ```\n     https://localhost:3000/callback\n     ```\n   You can keep both registered at the same time.\n5. Copy the Client ID and Client Secret\n\nTeam note: this skill does **not** ship any client credentials. Each user can create their own WHOOP app,\nor (if you trust each other) a team can share one app's `client_id`/`client_secret` and let multiple WHOOP\naccounts authorize it.\n\n### 2. Save Credentials (recommended: interactive)\n\nRun:\n```bash\nnode src/setup.js\n```\nThis writes `~/.clawdbot/whoop/credentials.json` (and optionally `token.json` if you paste tokens).\n\n### 3. Authenticate (Recommended: Postman)\n\nPostman is the most reliable bootstrap for many accounts because WHOOP may block browser-like traffic\nto the OAuth endpoints (or behave differently depending on headers).\n\nPostman checklist (don’t skip these):\n- WHOOP dashboard Redirect URIs include:\n  - `https://oauth.pstmn.io/v1/browser-callback`\n- Postman OAuth settings:\n  - Scopes include `offline` (or you won’t get a `refresh_token`)\n  - Client Authentication is **Send client credentials in body** (`client_secret_post`)\n\n1) In WHOOP dashboard, ensure you registered the Postman callback Redirect URI:\n```text\nhttps://oauth.pstmn.io/v1/browser-callback\n```\n\n2) In Postman:\n- Create an Environment and set variables:\n  - `ClientId` = your WHOOP client id\n  - `ClientSecret` = your WHOOP client secret\n- Open the WHOOP API collection (or any request), then open the Authorization tab:\n  - Type: OAuth 2.0\n  - Add auth data to: Request Headers\n  - Grant Type: Authorization Code\n  - Callback URL: check **Authorize using browser**\n  - Auth URL:\n    ```\n    https://api.prod.whoop.com/oauth/oauth2/auth\n    ```\n  - Access Token URL:\n    ```\n    https://api.prod.whoop.com/oauth/oauth2/token\n    ```\n  - Client ID: `{{ClientId}}`\n  - Client Secret: `{{ClientSecret}}`\n  - Scope (space-delimited): include `offline` plus any read scopes you need, e.g.:\n    ```\n    offline read:profile read:sleep read:recovery read:workout read:cycles read:body_measurement\n    ```\n  - State: any 8+ chars (e.g. `loomingState`)\n  - Client Authentication: **Send client credentials in body**\n\n3) Click \"Get New Access Token\", sign in to WHOOP, and click \"Grant\".\n\n4) In Postman’s \"Manage Access Tokens\" modal:\n- Click \"Use Token\" (so requests work)\n- IMPORTANT: copy and save both:\n  - `access_token`\n  - `refresh_token`\n  Postman often does not retain the refresh token for you later.\n\n5) Save tokens to `~/.clawdbot/whoop/token.json`:\n- Use `token.example.json` as a template\n- Set:\n  - `obtained_at` to current time in milliseconds\n  - `redirect_uri` to:\n    ```\n    https://oauth.pstmn.io/v1/browser-callback\n    ```\n\n6) Verify (and test refresh):\n```bash\nnode src/verify.js\nnode src/verify.js --refresh\n```\n\n### 4. Optional: Authenticate via `auth.js` (may fail on some accounts)\n\nIf you prefer a fully local OAuth loop (and WHOOP allows it), you can use `auth.js`.\n\nPre-req: add this redirect URI in WHOOP dashboard:\n```text\nhttps://localhost:3000/callback\n```\n\nRun:\n```bash\nWHOOP_REDIRECT_URI='https://localhost:3000/callback' node src/auth.js\n```\n\nIf you need to do it from a phone/remote device:\n```bash\nWHOOP_REDIRECT_URI='https://localhost:3000/callback' node src/auth.js --manual\n```\n\nNote: for localhost HTTPS, the script generates a self-signed cert and your browser will show a TLS warning.\nYou must proceed past the warning so the redirect can complete.\n\n### 4. Verify It Works\n\n```bash\nnode src/verify.js\nnode src/summary.js\n```\n\n## Troubleshooting\n\n### Browser shows `NotAuthorizedException` before the login page\nThis is a WHOOP-side block on browser User-Agents hitting `api.prod.whoop.com` OAuth endpoints.\n\n- Use the updated `node src/auth.js` which bootstraps the login URL and sends your browser directly to `id.whoop.com`.\n- If you still see it, try `node src/auth.js --manual` and open the printed URL.\n\n### \"redirect_uri not whitelisted\"\n1. Go to https://developer.whoop.com/\n2. Edit your app\n3. Ensure this EXACT URI is in Redirect URIs:\n   ```\n   https://oauth.pstmn.io/v1/browser-callback\n   ```\n   If you're using `auth.js` locally, also add:\n   ```\n   https://localhost:3000/callback\n   ```\n4. Save and try again\n\n### Token Expired\nTokens auto-refresh on demand (no cron needed). If issues persist:\n```bash\nrm ~/.clawdbot/whoop/token.json\nnode src/auth.js\n```\n\n### \"Authorization was not valid\"\nThis usually means your access token is stale/invalidated (common if you re-auth or refresh tokens elsewhere; WHOOP refresh tokens rotate).\n\n- Re-run `node src/auth.js`, or\n- Copy the latest `access_token` + `refresh_token` from Postman into `~/.clawdbot/whoop/token.json` and update `obtained_at`.\n\n### Auth from Phone/Remote Device\nUse manual mode:\n```bash\nnode src/auth.js --manual\n```\nOpen the URL on any device, authorize, then copy the code from the callback URL.\n\n### `error=request_forbidden` / \"The request is not allowed\"\nThis is WHOOP rejecting the authorization request after login/consent. Common causes:\n- Redirect URI policy (WHOOP docs only mention `https://` or `whoop://` redirect URIs)\n- App/account restrictions (membership/approval/test-user restrictions)\n- Scope restrictions (try requesting fewer scopes)\n\nIf you suspect redirect URI policy, use an HTTPS tunnel:\n```bash\n# 1) Get a public HTTPS URL that forwards to localhost:3000 (example)\nngrok http 3000\n\n# 2) Add the ngrok HTTPS URL + /callback to WHOOP dashboard Redirect URIs, then run:\nWHOOP_REDIRECT_URI=https://YOUR-NGROK-DOMAIN.ngrok-free.app/callback node src/auth.js\n```\n\nIf you suspect scope restrictions, try a minimal scope set:\n```bash\nWHOOP_SCOPES=\"read:profile\" node src/auth.js\n```\n\n### If your WHOOP Redirect URL is `https://localhost:3000/callback`\nThis changes how the local callback server must run: it must be HTTPS (not HTTP).\n\nThe script supports this. Run:\n```bash\nWHOOP_REDIRECT_URI=https://localhost:3000/callback node src/auth.js\n```\nIt will generate a self-signed cert locally and your browser will likely show a warning for `https://localhost`.\nProceed past the warning so the redirect can complete.\n\n## JSON Output (for tooling)\n\nThese commands support:\n- `--json` (single JSON blob)\n- `--jsonl` (one JSON object per line; useful for piping)\n- `--limit N` (where supported)\n- Time filters (where supported): `--days N`, `--since 7d` / `12h`, `--start ISO`, `--end ISO`\n\n```bash\nnode src/summary.js --json\nnode src/recovery.js --json --limit 1\nnode src/sleep.js --json --limit 1\nnode src/strain.js --json --limit 1\nnode src/workouts.js --json --limit 1\n\n# Examples with filters\nnode src/sleep.js --json --days 7\nnode src/workouts.js --jsonl --since 30d\nnode src/recovery.js --json --start 2026-01-01T00:00:00Z --end 2026-02-01T00:00:00Z\n```\n\n## API Notes\n\n- Uses WHOOP Developer API v2\n- OAuth 2.0 authentication with refresh tokens\n- Scopes: offline, read:recovery, read:sleep, read:workout, read:cycles, read:profile\n- Token auto-refreshes when expired\n","readmeExcerpt":"--- name: whoop description: WHOOP Central - OAuth + scripts to fetch WHOOP data (sleep, recovery, strain, workouts). Use when user asks about their sleep, recovery score, HRV, strain, or workout data. version: 1.0.2 metadata: clawdbot: emoji: \"🏋️\" requires: bins: [\"node\", \"openssl\"] --- WHOOP Central Access sleep, recovery, strain, and workout data from WHOOP via the v2 API. Quick Commands Data Available | Metric |","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"# 1) One-time setup (writes ~/.clawdbot/whoop/credentials.json)\nnode src/setup.js\n\n# 2) Recommended: Get tokens via Postman (see Auth section), then verify\nnode src/verify.js\nnode src/verify.js --refresh\n\n# Prompt-friendly snapshot (includes last workout)\nnode src/today.js\n\n# Daily summary (all metrics)\nnode src/summary.js\n\n# Individual metrics\nnode src/recovery.js\nnode src/sleep.js\nnode src/strain.js\nnode src/workouts.js\n\n# Bulk import to ~/clawd/health/logs/whoop/*\nnode src/import-historical.js"},{"language":"text","snippet":"https://oauth.pstmn.io/v1/browser-callback"},{"language":"text","snippet":"https://localhost:3000/callback"},{"language":"bash","snippet":"node src/setup.js"},{"language":"text","snippet":"https://oauth.pstmn.io/v1/browser-callback"},{"language":"text","snippet":"https://api.prod.whoop.com/oauth/oauth2/auth"}],"parameters":{},"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["typescript"],"docsSourceLabel":"CLAWHUB","editorialOverview":"WHOOP Central - OAuth + scripts to fetch WHOOP data (sleep, recovery, strain, workouts). Use when user asks about their sleep, recovery score, HRV, strain, or workout data. --- name: whoop description: WHOOP Central - OAuth + scripts to fetch WHOOP data (sleep, recovery, strain, workouts). Use when user asks about their sleep, recovery score, HRV, strain, or workout data. version: 1.0.2 metadata: clawdbot: emoji: \"🏋️\" requires: bins: [\"node\", \"openssl\"] --- WHOOP Central Access sleep, recovery, strain, and workout data from WHOOP via the v2 API. Quick Commands Data Available | Metric |","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":375,"uniquenessScore":65,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","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-04-15T00:45:39.800Z","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-09T22:41:48.469Z","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"}]}}}