{"id":"1e7e41ec-f5fa-4ce1-8b7a-95a3c4efe5cb","entityType":"agent","slug":"clawhub-hith3sh-strava-activities","name":"Strava","canonicalUrl":"https://www.xpersona.co/agent/clawhub-hith3sh-strava-activities","canonicalPath":"/agent/clawhub-hith3sh-strava-activities","generatedAt":"2026-10-09T20:52:31.522Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T14:41:31.767Z","emptyReason":null},"description":"Track and manage Strava workouts, athlete stats, routes, segments, and club activities via the Strava API. Use this skill when users want to log activities,... Skill: Strava Owner: hith3sh Summary: Track and manage Strava workouts, athlete stats, routes, segments, and club activities via the Strava API. Use this skill when users want to log activities,... Tags: latest:1.0.5 Version history: v1.0.5 | 2026-06-09T07:19:15.539Z | user Add UTM attribution tags (utm_source=clawhub) to ClawLink branding links so visits from this skill page are tracked as a distinct traffic source.","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 2.5K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s173vws87a7ss71xf9rq53k5gd8568kv:strava-activities","sourceUrl":"https://clawhub.ai/hith3sh/strava-activities","homepage":"https://clawhub.ai/hith3sh/skills/strava-activities","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/hith3sh/strava-activities","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/hith3sh/skills/strava-activities","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":68,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Track and manage Strava workouts, athlete stats, routes, segments, and club activities via the Strava API. Use this skill when users want to log activities,... "},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T14:41:31.767Z","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-09T14:41:31.767Z","emptyReason":null},"stars":null,"forks":null,"downloads":2462,"packageName":null,"latestVersion":"1.0.5","tractionLabel":"2.5K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T14:41:31.767Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T14:41:31.767Z","lastCrawledAt":"2026-10-09T14:41:31.767Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T14:41:31.767Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.5","createdAt":"2026-06-09T07:19:15.539Z","changelog":"Add UTM attribution tags (utm_source=clawhub) to ClawLink branding links so visits from this skill page are tracked as a distinct traffic source.","fileCount":3,"zipByteSize":6325},{"version":"1.0.4","createdAt":"2026-06-09T04:49:08.950Z","changelog":"- Removed the file: skill-card.md - No other changes; functionality, documentation, and feature set remain the same.","fileCount":3,"zipByteSize":6140},{"version":"1.0.2","createdAt":"2026-06-08T15:56:13.996Z","changelog":"- Minor documentation update to SKILL.md. - Improved formatting of the Strava logo image. - No changes to code or functionality.","fileCount":3,"zipByteSize":6276},{"version":"1.0.1","createdAt":"2026-06-08T15:53:31.871Z","changelog":"Version 1.0.1 - No file changes detected in this release. - No visible updates or changes to documentation or functionality.","fileCount":3,"zipByteSize":6132},{"version":"1.0.0","createdAt":"2026-06-08T15:51:22.564Z","changelog":"- Added a Strava logo image to the skill documentation for clearer branding. - Minor documentation cleanup and formatting improvements in SKILL.md. - Removed the file: skill-card.md.","fileCount":3,"zipByteSize":6196},{"version":"0.2.1","createdAt":"2026-06-07T13:52:24.160Z","changelog":"Fix display name: show app name only (was including tool list).","fileCount":3,"zipByteSize":6148},{"version":"0.2.0","createdAt":"2026-06-07T13:41:18.384Z","changelog":"Full rewrite to new standard","fileCount":3,"zipByteSize":6181},{"version":"0.1.0","createdAt":"2026-05-24T14:31:12.851Z","changelog":"Initial release of strava-activities skill. - Integrates Strava with OpenClaw via ClawLink for easy activity tracking and athlete data access. - Allows users to list activities, inspect stats, explore routes/segments, and manage club activity, all without direct Strava API setup. - Guides setup through ClawLink plugin installation, pairing, and Strava connection using secure flows. - dynamically fetches and uses ClawLink-provided Strava tools, respecting permissions and confirming before changes. - Clear guidance and safeguards for handling credentials and critical actions.","fileCount":3,"zipByteSize":3558}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s173vws87a7ss71xf9rq53k5gd8568kv:strava-activities","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","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-hith3sh-strava-activities/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-hith3sh-strava-activities/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-hith3sh-strava-activities/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-hith3sh-strava-activities/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-hith3sh-strava-activities/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-hith3sh-strava-activities/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-09T20:52:31.517Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-hith3sh-strava-activities/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-hith3sh-strava-activities/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-hith3sh-strava-activities/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-hith3sh-strava-activities/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-10-09T14:41:31.767Z","emptyReason":null},"readme":"Skill: Strava\n\nOwner: hith3sh\n\nSummary: Track and manage Strava workouts, athlete stats, routes, segments, and club activities via the Strava API. Use this skill when users want to log activities,...\n\nTags: latest:1.0.5\n\nVersion history:\n\nv1.0.5 | 2026-06-09T07:19:15.539Z | user\n\nAdd UTM attribution tags (utm_source=clawhub) to ClawLink branding links so visits from this skill page are tracked as a distinct traffic source.\n\nv1.0.4 | 2026-06-09T04:49:08.950Z | auto\n\n- Removed the file: skill-card.md\n- No other changes; functionality, documentation, and feature set remain the same.\n\nv1.0.2 | 2026-06-08T15:56:13.996Z | auto\n\n- Minor documentation update to SKILL.md.\n- Improved formatting of the Strava logo image.\n- No changes to code or functionality.\n\nv1.0.1 | 2026-06-08T15:53:31.871Z | auto\n\nVersion 1.0.1\n\n- No file changes detected in this release.\n- No visible updates or changes to documentation or functionality.\n\nv1.0.0 | 2026-06-08T15:51:22.564Z | auto\n\n- Added a Strava logo image to the skill documentation for clearer branding.\n- Minor documentation cleanup and formatting improvements in SKILL.md.\n- Removed the file: skill-card.md.\n\nv0.2.1 | 2026-06-07T13:52:24.160Z | user\n\nFix display name: show app name only (was including tool list).\n\nv0.2.0 | 2026-06-07T13:41:18.384Z | user\n\nFull rewrite to new standard\n\nv0.1.0 | 2026-05-24T14:31:12.851Z | auto\n\nInitial release of strava-activities skill.\n\n- Integrates Strava with OpenClaw via ClawLink for easy activity tracking and athlete data access.\n- Allows users to list activities, inspect stats, explore routes/segments, and manage club activity, all without direct Strava API setup.\n- Guides setup through ClawLink plugin installation, pairing, and Strava connection using secure flows.\n- dynamically fetches and uses ClawLink-provided Strava tools, respecting permissions and confirming before changes.\n- Clear guidance and safeguards for handling credentials and critical actions.\n\nArchive index:\n\nArchive v1.0.5: 3 files, 6325 bytes\n\nFiles: skill-card.md (2570b), SKILL.md (15419b), _meta.json (136b)\n\nFile v1.0.5:SKILL.md\n\n---\nname: strava-activities\ndescription: Track and manage Strava workouts, athlete stats, routes, segments, and club activities via the Strava API. Use this skill when users want to log activities, review athletic performance, explore routes, or manage club data in Strava.\n---\n\n# Strava\n\n![Strava](https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/brand-logos/strava.svg)\n\nTrack and manage Strava activities, athlete data, routes, segments, and club activity from chat via the Strava API.\n\nThis skill uses [ClawLink](https://claw-link.dev/?utm_source=clawhub&utm_medium=referral&utm_content=strava-activities) for hosted connection flows and credentials so you do not need to configure Strava API access yourself.\n\n### Setup in 3 Steps\n\n| Step 1: Install | Step 2: Pair Account | Step 3: Connect Strava |\n|:---:|:---:|:---:|\n| ![Install](https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/pairing/initialstep_1.gif) | ![Pair](https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/approve_process.gif) | *App-specific connection GIF coming soon* |\n| Run the install command in OpenClaw | Sign in and approve the device | Open the dashboard and connect Strava |\n\n## How It Works\n\n```\n┌─────────────────┐     ┌──────────────┐     ┌──────────────────┐\n│   OpenClaw      │────▶│   ClawLink   │────▶│   Strava API     │\n│   (User Chat)   │     │   (OAuth)    │     │                  │\n└─────────────────┘     └──────────────┘     └──────────────────┘\n         │                       │                       │\n         │  1. Install Plugin    │                       │\n         │  2. Pair Device       │                       │\n         │  3. Connect Strava    │                       │\n         │                       │  4. Secure Token      │\n         │                       │  5. Proxy Requests    │\n         │                       │                       │\n         ▼                       ▼                       ▼\n   ┌──────────┐           ┌──────────┐           ┌──────────┐\n   │  SKILL   │           │ Dashboard│           │  Strava  │\n   │  File    │           │ Auth     │           │  Account │\n   └──────────┘           └──────────┘           └──────────┘\n```\n\n## Install\n\nInstall the verified ClawLink plugin from ClawHub. After the user confirms, complete the full setup so ClawLink tools are visible in the next OpenClaw chat.\n\n```bash\nopenclaw plugins install clawhub:clawlink-plugin\nopenclaw config set tools.alsoAllow '[\"clawlink-plugin\"]' --strict-json\nopenclaw gateway restart\n```\n\nThen tell the user: \"OpenClaw has been restarted. Send `/new` as a standalone message to start a fresh chat, then ask for Strava again.\"\n\n## Quick Start\n\n```bash\n# Get athlete profile\nclawlink_call_tool --tool \"strava_get_athlete\" --params '{}'\n\n# List recent activities\nclawlink_call_tool --tool \"strava_list_activities\" --params '{\"limit\": 10}'\n\n# Get activity details\nclawlink_call_tool --tool \"strava_get_activity\" --params '{\"activity_id\": \"ACTIVITY_ID\"}'\n```\n\n## Authentication\n\nAll Strava tool calls are authenticated automatically by ClawLink using the user's connected Strava account OAuth token.\n\n**No API token is required in chat.** ClawLink stores the OAuth token securely and injects it into every Strava API request on the user's behalf.\n\n### Getting Connected\n\n1. Install the ClawLink plugin (see Install above).\n2. Pair the plugin with `clawlink_begin_pairing` if it is not configured yet.\n3. Open https://claw-link.dev/dashboard?add=strava and connect Strava.\n4. Call `clawlink_list_integrations` to verify the connection is active.\n\n## Connection Management\n\n### List Connections\n\n```bash\nclawlink_list_integrations\n```\n\n**Response:** Returns all connected integrations. Look for `strava` in the list.\n\n### Verify Connection\n\n```bash\nclawlink_list_tools --integration strava\n```\n\n**Response:** Returns the live tool catalog for Strava.\n\n### Reconnect\n\nIf Strava tools are missing or the connection shows an error:\n\n1. Direct the user to https://claw-link.dev/dashboard?add=strava\n2. After they confirm, call `clawlink_list_integrations` to verify\n3. Then call `clawlink_list_tools --integration strava`\n\n## Security & Permissions\n\n- Access is scoped to the Strava account connected during OAuth setup and the scopes granted.\n- **Write operations (create activity, upload files, update settings) require explicit user confirmation.**\n- Activity upload requires the user to own the data being uploaded.\n- Club management operations may require club admin privileges.\n\n## Tool Reference\n\n### Athlete\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_get_athlete` | Get the authenticated athlete's profile | Read |\n| `strava_update_athlete` | Update athlete settings (sport type, timezone) | Write |\n| `strava_get_athlete_stats` | Get athlete statistics (distance, pace, heart rate zones) | Read |\n| `strava_get_athlete_zones` | Get heart rate and power zones | Read |\n| `strava_get_athlete_clubs` | List clubs the athlete is a member of | Read |\n\n### Activities\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_list_activities` | List the athlete's activities with pagination | Read |\n| `strava_get_activity` | Get details for a specific activity | Read |\n| `strava_create_activity` | Create a manual activity entry | Write |\n| `strava_update_activity` | Update an activity's name, description, or privacy | Write |\n| `strava_delete_activity` | Delete an activity permanently | Write |\n| `strava_get_activity_zones` | Get splits and heart rate/power zones for an activity | Read |\n| `strava_get_activity_laps` | Get lap data for an activity | Read |\n| `strava_get_activity_streams` | Get GPS, heart rate, power streams for an activity | Read |\n| `strava_upload_activity_photo` | Attach a photo to an activity | Write |\n\n### Activity Comments & Kudos\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_list_activity_comments` | List comments on an activity | Read |\n| `strava_create_activity_comment` | Add a comment to an activity | Write |\n| `strava_list_activity_kudos` | List kudos given to an activity | Read |\n| `strava_give_kudos_to_activity` | Give kudos to an activity | Write |\n| `strava_delete_kudos_from_activity` | Remove kudos from an activity | Write |\n\n### Routes\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_list_routes` | List the athlete's saved routes | Read |\n| `strava_get_route` | Get details and segments for a route | Read |\n| `strava_create_route` | Create a new route | Write |\n| `strava_update_route` | Update a route's name or description | Write |\n| `strava_delete_route` | Delete a route | Write |\n\n### Segments\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_get_segment` | Get a segment's leaderboard and details | Read |\n| `strava_list_segment_efforts` | List efforts on a segment by an athlete | Read |\n| `strava_get_segment_effort` | Get a specific segment effort | Read |\n| `strava_explore_segments` | Explore segments in a geographic area | Read |\n| `strava_star_segment` | Star/favorite a segment | Write |\n| `strava_unstar_segment` | Remove a star from a segment | Write |\n| `strava_list_starred_segments` | List the athlete's starred segments | Read |\n\n### Clubs\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_get_club` | Get a club's profile | Read |\n| `strava_list_club_activities` | List recent activities in a club | Read |\n| `strava_list_club_members` | List members of a club | Read |\n| `strava_join_club` | Request to join a club | Write |\n| `strava_leave_club` | Leave a club | Write |\n\n### Gear & Equipment\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_get_equipment` | Get details for a piece of equipment | Read |\n| `strava_create_equipment` | Add new equipment (bike, shoes) | Write |\n| `strava_update_equipment` | Update equipment name or retired status | Write |\n| `strava_delete_equipment` | Delete equipment | Write |\n| `strava_list_athlete_equipment` | List all equipment for an athlete | Read |\n\n### Uploads\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_upload_file` | Upload a FIT, GPX, or TCX activity file | Write |\n| `strava_get_upload_status` | Check the status of an activity upload | Read |\n\n## Code Examples\n\n### Get athlete stats\n\n```bash\nclawlink_call_tool --tool \"strava_get_athlete_stats\" \\\n  --params '{\"athlete_id\": \"ATHLETE_ID\"}'\n```\n\n### List recent activities\n\n```bash\nclawlink_call_tool --tool \"strava_list_activities\" \\\n  --params '{\n    \"limit\": 10,\n    \"after\": 1704067200\n  }'\n```\n\n### Get activity details\n\n```bash\nclawlink_call_tool --tool \"strava_get_activity\" \\\n  --params '{\n    \"activity_id\": \"ACTIVITY_ID\"\n  }'\n```\n\n### Explore segments in an area\n\n```bash\nclawlink_call_tool --tool \"strava_explore_segments\" \\\n  --params '{\n    \"bounds\": [37.8, -122.5, 37.9, -122.4],\n    \"activity_type\": \"running\"\n  }'\n```\n\n### Star a segment\n\n```bash\nclawlink_call_tool --tool \"strava_star_segment\" \\\n  --params '{\n    \"segment_id\": \"SEGMENT_ID\"\n  }'\n```\n\n### Get club activities\n\n```bash\nclawlink_call_tool --tool \"strava_list_club_activities\" \\\n  --params '{\n    \"club_id\": \"CLUB_ID\",\n    \"limit\": 20\n  }'\n```\n\n## Discovery Workflow\n\n1. Call `clawlink_list_integrations` to confirm Strava is connected.\n2. Call `clawlink_list_tools --integration strava` to see the live catalog.\n3. Treat the returned list as the source of truth. Do not guess or assume what tools exist.\n4. If the user describes a capability but the exact tool is unclear, call `clawlink_search_tools` with a short query and integration `strava`.\n5. If no Strava tools appear, direct the user to https://claw-link.dev/dashboard?add=strava.\n\n## Execution Workflow\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│  READ OPERATIONS (Safe)                                     │\n│  list → get → explore → describe                           │\n│                                                             │\n│  Example: List activities → Get activity streams → Analyze │\n└─────────────────────────────────────────────────────────────┘\n                              │\n                              ▼\n┌─────────────────────────────────────────────────────────────┐\n│  WRITE OPERATIONS (Require Confirmation)                    │\n│  describe → preview → confirm → call                       │\n│                                                             │\n│  Example: Preview activity upload → User approves → Upload │\n└─────────────────────────────────────────────────────────────┘\n```\n\n1. For unfamiliar tools, ambiguous requests, or any write action, call `clawlink_describe_tool` first.\n2. Use the returned guidance, schema, `whenToUse`, `askBefore`, `safeDefaults`, `examples`, and `followups` to shape the call.\n3. Prefer read, list, get, and explore operations before writes when that reduces ambiguity.\n4. For writes or anything marked as requiring confirmation, call `clawlink_preview_tool` first.\n5. Execute with `clawlink_call_tool`. Pass confirmation only after the preview matches the user's intent.\n6. If the tool call fails, report the real error. Do not invent results or restate the failure as a missing capability unless the live catalog supports that conclusion.\n\n## Notes\n\n- Activity uploads (FIT, GPX, TCX) are processed asynchronously — check upload status with `strava_get_upload_status`.\n- Segment explore uses bounding box coordinates: `[southwest_lat, southwest_lng, northeast_lat, northeast_lng]`.\n- Activity privacy controls may hide some data from API responses for private activities.\n- Upload file size limits apply — compressed FIT files are preferred over raw GPX for large activities.\n- Heart rate and power data availability depends on the device used to record the activity.\n- Activity types include: `run`, `ride`, `swim`, `workout`, `hike`, `walk`, and others.\n\n## Error Handling\n\n| Status / Error | Meaning |\n|----------------|---------|\n| Tool not found | The tool name does not exist in the current catalog. Verify with `clawlink_list_tools --integration strava`. |\n| Missing connection | Strava is not connected. Direct the user to https://claw-link.dev/dashboard?add=strava. |\n| `Activity not found` | The activity ID does not exist or belongs to another athlete. |\n| `Segment not found` | The segment ID does not exist in Strava's database. |\n| `Upload in progress` | The file upload is still being processed. Check status with `strava_get_upload_status`. |\n| `Upload failed` | The file format is invalid or the upload processing failed. |\n| `403 Forbidden` | The connected account lacks permission for this operation. |\n| `Rate limited` | Too many requests — wait before retrying. |\n| Write rejected | User did not confirm a write action. Always confirm before executing writes. |\n\n### Troubleshooting: Tools Not Visible\n\n1. Check that the ClawLink plugin is installed:\n   ```bash\n   openclaw plugins list\n   ```\n2. If the plugin is installed but tools are missing, tell the user to send `/new` as a standalone message to reload the catalog.\n3. If a fresh chat does not help, run:\n   ```bash\n   openclaw config set tools.alsoAllow '[\"clawlink-plugin\"]' --strict-json\n   openclaw gateway restart\n   ```\n4. After restart, tell the user to send `/new` again and retry.\n\n### Troubleshooting: Upload Fails\n\n1. Confirm the file is a valid FIT, GPX, or TCX format.\n2. Check the file size — very large files may fail to process.\n3. Wait and poll `strava_get_upload_status` — processing can take several seconds for large files.\n4. Verify the activity data is valid (GPS coordinates, timestamps).\n\n## Resources\n\n- [Strava API Documentation](https://developers.strava.com/docs/reference/)\n- [Strava API Overview](https://developers.strava.com/)\n- [Strava Authentication](https://developers.strava.com/docs/auth/)\n- ClawLink: https://claw-link.dev/?utm_source=clawhub&utm_medium=referral&utm_content=strava-activities\n- ClawLink Docs: https://docs.claw-link.dev/openclaw\n- ClawLink Verification: https://claw-link.dev/verify\n\n---\n\n**Powered by [ClawLink](https://claw-link.dev/?utm_source=clawhub&utm_medium=referral&utm_content=strava-activities)** — an integration hub for OpenClaw\n\n![ClawLink Logo](https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/logo/link_logo_black_small.png)\n\nFile v1.0.5:_meta.json\n\n{\n  \"ownerId\": \"kn713pxvayh8fjhb503zjb8yxh815j54\",\n  \"slug\": \"strava-activities\",\n  \"version\": \"1.0.5\",\n  \"publishedAt\": 1780989555539\n}\n\nFile v1.0.5:skill-card.md\n\n## Description:\n\nTrack and manage Strava workouts, athlete stats, routes, segments, and club activities via the Strava API.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[hith3sh](https://clawhub.ai/user/hith3sh)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and developers use this skill to connect a Strava account through ClawLink, inspect activities and athlete data, explore routes and segments, and perform account-authorized Strava actions from an agent chat.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill asks users to install and allowlist an unpinned third-party plugin that can persist across chats and mediate sensitive Strava account access.\n\nMitigation: Install only if the user trusts ClawLink and the ClawHub plugin source; revoke the Strava connection and remove the plugin when it is no longer needed.\n\nRisk: Write operations can change or delete activities, routes, equipment, comments, kudos, and club membership.\n\nMitigation: Prefer read-only OAuth scopes where possible, describe and preview write actions, and execute them only after explicit user confirmation.\n\nRisk: Strava activity data may include sensitive fitness, location, route, and privacy-controlled account information.\n\nMitigation: Limit OAuth scopes to the user's intended task and avoid exposing private activity details unless the user has requested that access.\n\n## Reference(s):\n\n- [Strava API Documentation](https://developers.strava.com/docs/reference/)\n- [Strava API Overview](https://developers.strava.com/)\n- [Strava Authentication](https://developers.strava.com/docs/auth/)\n- [ClawLink](https://claw-link.dev/?utm_source=clawhub&utm_medium=referral&utm_content=strava-activities)\n- [ClawLink Docs](https://docs.claw-link.dev/openclaw)\n- [ClawLink Verification](https://claw-link.dev/verify)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Code, Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown with inline shell commands and JSON tool parameters]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Uses authenticated ClawLink Strava tools and should preview or confirm write actions before execution.]\n\n## Skill Version(s):\n\n1.0.5 (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 v1.0.4: 3 files, 6140 bytes\n\nFiles: skill-card.md (2425b), SKILL.md (15209b), _meta.json (136b)\n\nFile v1.0.4:SKILL.md\n\n---\nname: strava-activities\ndescription: Track and manage Strava workouts, athlete stats, routes, segments, and club activities via the Strava API. Use this skill when users want to log activities, review athletic performance, explore routes, or manage club data in Strava.\n---\n\n# Strava\n\n![Strava](https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/brand-logos/strava.svg)\n\nTrack and manage Strava activities, athlete data, routes, segments, and club activity from chat via the Strava API.\n\nThis skill uses [ClawLink](https://claw-link.dev) for hosted connection flows and credentials so you do not need to configure Strava API access yourself.\n\n### Setup in 3 Steps\n\n| Step 1: Install | Step 2: Pair Account | Step 3: Connect Strava |\n|:---:|:---:|:---:|\n| ![Install](https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/pairing/initialstep_1.gif) | ![Pair](https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/approve_process.gif) | *App-specific connection GIF coming soon* |\n| Run the install command in OpenClaw | Sign in and approve the device | Open the dashboard and connect Strava |\n\n## How It Works\n\n```\n┌─────────────────┐     ┌──────────────┐     ┌──────────────────┐\n│   OpenClaw      │────▶│   ClawLink   │────▶│   Strava API     │\n│   (User Chat)   │     │   (OAuth)    │     │                  │\n└─────────────────┘     └──────────────┘     └──────────────────┘\n         │                       │                       │\n         │  1. Install Plugin    │                       │\n         │  2. Pair Device       │                       │\n         │  3. Connect Strava    │                       │\n         │                       │  4. Secure Token      │\n         │                       │  5. Proxy Requests    │\n         │                       │                       │\n         ▼                       ▼                       ▼\n   ┌──────────┐           ┌──────────┐           ┌──────────┐\n   │  SKILL   │           │ Dashboard│           │  Strava  │\n   │  File    │           │ Auth     │           │  Account │\n   └──────────┘           └──────────┘           └──────────┘\n```\n\n## Install\n\nInstall the verified ClawLink plugin from ClawHub. After the user confirms, complete the full setup so ClawLink tools are visible in the next OpenClaw chat.\n\n```bash\nopenclaw plugins install clawhub:clawlink-plugin\nopenclaw config set tools.alsoAllow '[\"clawlink-plugin\"]' --strict-json\nopenclaw gateway restart\n```\n\nThen tell the user: \"OpenClaw has been restarted. Send `/new` as a standalone message to start a fresh chat, then ask for Strava again.\"\n\n## Quick Start\n\n```bash\n# Get athlete profile\nclawlink_call_tool --tool \"strava_get_athlete\" --params '{}'\n\n# List recent activities\nclawlink_call_tool --tool \"strava_list_activities\" --params '{\"limit\": 10}'\n\n# Get activity details\nclawlink_call_tool --tool \"strava_get_activity\" --params '{\"activity_id\": \"ACTIVITY_ID\"}'\n```\n\n## Authentication\n\nAll Strava tool calls are authenticated automatically by ClawLink using the user's connected Strava account OAuth token.\n\n**No API token is required in chat.** ClawLink stores the OAuth token securely and injects it into every Strava API request on the user's behalf.\n\n### Getting Connected\n\n1. Install the ClawLink plugin (see Install above).\n2. Pair the plugin with `clawlink_begin_pairing` if it is not configured yet.\n3. Open https://claw-link.dev/dashboard?add=strava and connect Strava.\n4. Call `clawlink_list_integrations` to verify the connection is active.\n\n## Connection Management\n\n### List Connections\n\n```bash\nclawlink_list_integrations\n```\n\n**Response:** Returns all connected integrations. Look for `strava` in the list.\n\n### Verify Connection\n\n```bash\nclawlink_list_tools --integration strava\n```\n\n**Response:** Returns the live tool catalog for Strava.\n\n### Reconnect\n\nIf Strava tools are missing or the connection shows an error:\n\n1. Direct the user to https://claw-link.dev/dashboard?add=strava\n2. After they confirm, call `clawlink_list_integrations` to verify\n3. Then call `clawlink_list_tools --integration strava`\n\n## Security & Permissions\n\n- Access is scoped to the Strava account connected during OAuth setup and the scopes granted.\n- **Write operations (create activity, upload files, update settings) require explicit user confirmation.**\n- Activity upload requires the user to own the data being uploaded.\n- Club management operations may require club admin privileges.\n\n## Tool Reference\n\n### Athlete\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_get_athlete` | Get the authenticated athlete's profile | Read |\n| `strava_update_athlete` | Update athlete settings (sport type, timezone) | Write |\n| `strava_get_athlete_stats` | Get athlete statistics (distance, pace, heart rate zones) | Read |\n| `strava_get_athlete_zones` | Get heart rate and power zones | Read |\n| `strava_get_athlete_clubs` | List clubs the athlete is a member of | Read |\n\n### Activities\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_list_activities` | List the athlete's activities with pagination | Read |\n| `strava_get_activity` | Get details for a specific activity | Read |\n| `strava_create_activity` | Create a manual activity entry | Write |\n| `strava_update_activity` | Update an activity's name, description, or privacy | Write |\n| `strava_delete_activity` | Delete an activity permanently | Write |\n| `strava_get_activity_zones` | Get splits and heart rate/power zones for an activity | Read |\n| `strava_get_activity_laps` | Get lap data for an activity | Read |\n| `strava_get_activity_streams` | Get GPS, heart rate, power streams for an activity | Read |\n| `strava_upload_activity_photo` | Attach a photo to an activity | Write |\n\n### Activity Comments & Kudos\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_list_activity_comments` | List comments on an activity | Read |\n| `strava_create_activity_comment` | Add a comment to an activity | Write |\n| `strava_list_activity_kudos` | List kudos given to an activity | Read |\n| `strava_give_kudos_to_activity` | Give kudos to an activity | Write |\n| `strava_delete_kudos_from_activity` | Remove kudos from an activity | Write |\n\n### Routes\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_list_routes` | List the athlete's saved routes | Read |\n| `strava_get_route` | Get details and segments for a route | Read |\n| `strava_create_route` | Create a new route | Write |\n| `strava_update_route` | Update a route's name or description | Write |\n| `strava_delete_route` | Delete a route | Write |\n\n### Segments\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_get_segment` | Get a segment's leaderboard and details | Read |\n| `strava_list_segment_efforts` | List efforts on a segment by an athlete | Read |\n| `strava_get_segment_effort` | Get a specific segment effort | Read |\n| `strava_explore_segments` | Explore segments in a geographic area | Read |\n| `strava_star_segment` | Star/favorite a segment | Write |\n| `strava_unstar_segment` | Remove a star from a segment | Write |\n| `strava_list_starred_segments` | List the athlete's starred segments | Read |\n\n### Clubs\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_get_club` | Get a club's profile | Read |\n| `strava_list_club_activities` | List recent activities in a club | Read |\n| `strava_list_club_members` | List members of a club | Read |\n| `strava_join_club` | Request to join a club | Write |\n| `strava_leave_club` | Leave a club | Write |\n\n### Gear & Equipment\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_get_equipment` | Get details for a piece of equipment | Read |\n| `strava_create_equipment` | Add new equipment (bike, shoes) | Write |\n| `strava_update_equipment` | Update equipment name or retired status | Write |\n| `strava_delete_equipment` | Delete equipment | Write |\n| `strava_list_athlete_equipment` | List all equipment for an athlete | Read |\n\n### Uploads\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_upload_file` | Upload a FIT, GPX, or TCX activity file | Write |\n| `strava_get_upload_status` | Check the status of an activity upload | Read |\n\n## Code Examples\n\n### Get athlete stats\n\n```bash\nclawlink_call_tool --tool \"strava_get_athlete_stats\" \\\n  --params '{\"athlete_id\": \"ATHLETE_ID\"}'\n```\n\n### List recent activities\n\n```bash\nclawlink_call_tool --tool \"strava_list_activities\" \\\n  --params '{\n    \"limit\": 10,\n    \"after\": 1704067200\n  }'\n```\n\n### Get activity details\n\n```bash\nclawlink_call_tool --tool \"strava_get_activity\" \\\n  --params '{\n    \"activity_id\": \"ACTIVITY_ID\"\n  }'\n```\n\n### Explore segments in an area\n\n```bash\nclawlink_call_tool --tool \"strava_explore_segments\" \\\n  --params '{\n    \"bounds\": [37.8, -122.5, 37.9, -122.4],\n    \"activity_type\": \"running\"\n  }'\n```\n\n### Star a segment\n\n```bash\nclawlink_call_tool --tool \"strava_star_segment\" \\\n  --params '{\n    \"segment_id\": \"SEGMENT_ID\"\n  }'\n```\n\n### Get club activities\n\n```bash\nclawlink_call_tool --tool \"strava_list_club_activities\" \\\n  --params '{\n    \"club_id\": \"CLUB_ID\",\n    \"limit\": 20\n  }'\n```\n\n## Discovery Workflow\n\n1. Call `clawlink_list_integrations` to confirm Strava is connected.\n2. Call `clawlink_list_tools --integration strava` to see the live catalog.\n3. Treat the returned list as the source of truth. Do not guess or assume what tools exist.\n4. If the user describes a capability but the exact tool is unclear, call `clawlink_search_tools` with a short query and integration `strava`.\n5. If no Strava tools appear, direct the user to https://claw-link.dev/dashboard?add=strava.\n\n## Execution Workflow\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│  READ OPERATIONS (Safe)                                     │\n│  list → get → explore → describe                           │\n│                                                             │\n│  Example: List activities → Get activity streams → Analyze │\n└─────────────────────────────────────────────────────────────┘\n                              │\n                              ▼\n┌─────────────────────────────────────────────────────────────┐\n│  WRITE OPERATIONS (Require Confirmation)                    │\n│  describe → preview → confirm → call                       │\n│                                                             │\n│  Example: Preview activity upload → User approves → Upload │\n└─────────────────────────────────────────────────────────────┘\n```\n\n1. For unfamiliar tools, ambiguous requests, or any write action, call `clawlink_describe_tool` first.\n2. Use the returned guidance, schema, `whenToUse`, `askBefore`, `safeDefaults`, `examples`, and `followups` to shape the call.\n3. Prefer read, list, get, and explore operations before writes when that reduces ambiguity.\n4. For writes or anything marked as requiring confirmation, call `clawlink_preview_tool` first.\n5. Execute with `clawlink_call_tool`. Pass confirmation only after the preview matches the user's intent.\n6. If the tool call fails, report the real error. Do not invent results or restate the failure as a missing capability unless the live catalog supports that conclusion.\n\n## Notes\n\n- Activity uploads (FIT, GPX, TCX) are processed asynchronously — check upload status with `strava_get_upload_status`.\n- Segment explore uses bounding box coordinates: `[southwest_lat, southwest_lng, northeast_lat, northeast_lng]`.\n- Activity privacy controls may hide some data from API responses for private activities.\n- Upload file size limits apply — compressed FIT files are preferred over raw GPX for large activities.\n- Heart rate and power data availability depends on the device used to record the activity.\n- Activity types include: `run`, `ride`, `swim`, `workout`, `hike`, `walk`, and others.\n\n## Error Handling\n\n| Status / Error | Meaning |\n|----------------|---------|\n| Tool not found | The tool name does not exist in the current catalog. Verify with `clawlink_list_tools --integration strava`. |\n| Missing connection | Strava is not connected. Direct the user to https://claw-link.dev/dashboard?add=strava. |\n| `Activity not found` | The activity ID does not exist or belongs to another athlete. |\n| `Segment not found` | The segment ID does not exist in Strava's database. |\n| `Upload in progress` | The file upload is still being processed. Check status with `strava_get_upload_status`. |\n| `Upload failed` | The file format is invalid or the upload processing failed. |\n| `403 Forbidden` | The connected account lacks permission for this operation. |\n| `Rate limited` | Too many requests — wait before retrying. |\n| Write rejected | User did not confirm a write action. Always confirm before executing writes. |\n\n### Troubleshooting: Tools Not Visible\n\n1. Check that the ClawLink plugin is installed:\n   ```bash\n   openclaw plugins list\n   ```\n2. If the plugin is installed but tools are missing, tell the user to send `/new` as a standalone message to reload the catalog.\n3. If a fresh chat does not help, run:\n   ```bash\n   openclaw config set tools.alsoAllow '[\"clawlink-plugin\"]' --strict-json\n   openclaw gateway restart\n   ```\n4. After restart, tell the user to send `/new` again and retry.\n\n### Troubleshooting: Upload Fails\n\n1. Confirm the file is a valid FIT, GPX, or TCX format.\n2. Check the file size — very large files may fail to process.\n3. Wait and poll `strava_get_upload_status` — processing can take several seconds for large files.\n4. Verify the activity data is valid (GPS coordinates, timestamps).\n\n## Resources\n\n- [Strava API Documentation](https://developers.strava.com/docs/reference/)\n- [Strava API Overview](https://developers.strava.com/)\n- [Strava Authentication](https://developers.strava.com/docs/auth/)\n- ClawLink: https://claw-link.dev\n- ClawLink Docs: https://docs.claw-link.dev/openclaw\n- ClawLink Verification: https://claw-link.dev/verify\n\n---\n\n**Powered by [ClawLink](https://claw-link.dev)** — an integration hub for OpenClaw\n\n![ClawLink Logo](https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/logo/link_logo_black_small.png)\n\nFile v1.0.4:_meta.json\n\n{\n  \"ownerId\": \"kn713pxvayh8fjhb503zjb8yxh815j54\",\n  \"slug\": \"strava-activities\",\n  \"version\": \"1.0.4\",\n  \"publishedAt\": 1780980548950\n}\n\nFile v1.0.4:skill-card.md\n\n## Description: <br>\nTrack and manage Strava workouts, athlete stats, routes, segments, and club activities via the Strava API. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[hith3sh](https://clawhub.ai/user/hith3sh) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal Strava users use this skill to connect their Strava account through ClawLink, review activity and athlete data, explore routes and segments, and manage supported Strava records from an agent chat. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill connects a Strava account through ClawLink and relies on OAuth permissions granted during setup. <br>\nMitigation: Install only when the user trusts ClawLink as the OAuth and request proxy provider, and review the requested Strava permissions during connection. <br>\nRisk: Supported write actions can change or delete Strava activities, routes, equipment, club state, comments, kudos, or uploads. <br>\nMitigation: Preview and confirm write actions before execution, and verify that the requested action matches the user's intent. <br>\n\n\n## Reference(s): <br>\n- [ClawHub Skill Page](https://clawhub.ai/hith3sh/strava-activities) <br>\n- [Publisher Profile](https://clawhub.ai/user/hith3sh) <br>\n- [Strava API Documentation](https://developers.strava.com/docs/reference/) <br>\n- [Strava API Overview](https://developers.strava.com/) <br>\n- [Strava Authentication](https://developers.strava.com/docs/auth/) <br>\n- [ClawLink Docs](https://docs.claw-link.dev/openclaw) <br>\n- [ClawLink](https://claw-link.dev) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, Guidance, API calls] <br>\n**Output Format:** [Markdown with inline shell commands and JSON tool parameters] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May include OAuth connection steps, tool-discovery guidance, preview instructions for write actions, and Strava API call parameters.] <br>\n\n## Skill Version(s): <br>\n1.0.4 (source: server-resolved release metadata) <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 v1.0.2: 3 files, 6276 bytes\n\nFiles: skill-card.md (2686b), SKILL.md (15209b), _meta.json (136b)\n\nFile v1.0.2:SKILL.md\n\n---\nname: strava-activities\ndescription: Track and manage Strava workouts, athlete stats, routes, segments, and club activities via the Strava API. Use this skill when users want to log activities, review athletic performance, explore routes, or manage club data in Strava.\n---\n\n# Strava\n\n![Strava](https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/brand-logos/strava.svg)\n\nTrack and manage Strava activities, athlete data, routes, segments, and club activity from chat via the Strava API.\n\nThis skill uses [ClawLink](https://claw-link.dev) for hosted connection flows and credentials so you do not need to configure Strava API access yourself.\n\n### Setup in 3 Steps\n\n| Step 1: Install | Step 2: Pair Account | Step 3: Connect Strava |\n|:---:|:---:|:---:|\n| ![Install](https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/pairing/initialstep_1.gif) | ![Pair](https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/approve_process.gif) | *App-specific connection GIF coming soon* |\n| Run the install command in OpenClaw | Sign in and approve the device | Open the dashboard and connect Strava |\n\n## How It Works\n\n```\n┌─────────────────┐     ┌──────────────┐     ┌──────────────────┐\n│   OpenClaw      │────▶│   ClawLink   │────▶│   Strava API     │\n│   (User Chat)   │     │   (OAuth)    │     │                  │\n└─────────────────┘     └──────────────┘     └──────────────────┘\n         │                       │                       │\n         │  1. Install Plugin    │                       │\n         │  2. Pair Device       │                       │\n         │  3. Connect Strava    │                       │\n         │                       │  4. Secure Token      │\n         │                       │  5. Proxy Requests    │\n         │                       │                       │\n         ▼                       ▼                       ▼\n   ┌──────────┐           ┌──────────┐           ┌──────────┐\n   │  SKILL   │           │ Dashboard│           │  Strava  │\n   │  File    │           │ Auth     │           │  Account │\n   └──────────┘           └──────────┘           └──────────┘\n```\n\n## Install\n\nInstall the verified ClawLink plugin from ClawHub. After the user confirms, complete the full setup so ClawLink tools are visible in the next OpenClaw chat.\n\n```bash\nopenclaw plugins install clawhub:clawlink-plugin\nopenclaw config set tools.alsoAllow '[\"clawlink-plugin\"]' --strict-json\nopenclaw gateway restart\n```\n\nThen tell the user: \"OpenClaw has been restarted. Send `/new` as a standalone message to start a fresh chat, then ask for Strava again.\"\n\n## Quick Start\n\n```bash\n# Get athlete profile\nclawlink_call_tool --tool \"strava_get_athlete\" --params '{}'\n\n# List recent activities\nclawlink_call_tool --tool \"strava_list_activities\" --params '{\"limit\": 10}'\n\n# Get activity details\nclawlink_call_tool --tool \"strava_get_activity\" --params '{\"activity_id\": \"ACTIVITY_ID\"}'\n```\n\n## Authentication\n\nAll Strava tool calls are authenticated automatically by ClawLink using the user's connected Strava account OAuth token.\n\n**No API token is required in chat.** ClawLink stores the OAuth token securely and injects it into every Strava API request on the user's behalf.\n\n### Getting Connected\n\n1. Install the ClawLink plugin (see Install above).\n2. Pair the plugin with `clawlink_begin_pairing` if it is not configured yet.\n3. Open https://claw-link.dev/dashboard?add=strava and connect Strava.\n4. Call `clawlink_list_integrations` to verify the connection is active.\n\n## Connection Management\n\n### List Connections\n\n```bash\nclawlink_list_integrations\n```\n\n**Response:** Returns all connected integrations. Look for `strava` in the list.\n\n### Verify Connection\n\n```bash\nclawlink_list_tools --integration strava\n```\n\n**Response:** Returns the live tool catalog for Strava.\n\n### Reconnect\n\nIf Strava tools are missing or the connection shows an error:\n\n1. Direct the user to https://claw-link.dev/dashboard?add=strava\n2. After they confirm, call `clawlink_list_integrations` to verify\n3. Then call `clawlink_list_tools --integration strava`\n\n## Security & Permissions\n\n- Access is scoped to the Strava account connected during OAuth setup and the scopes granted.\n- **Write operations (create activity, upload files, update settings) require explicit user confirmation.**\n- Activity upload requires the user to own the data being uploaded.\n- Club management operations may require club admin privileges.\n\n## Tool Reference\n\n### Athlete\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_get_athlete` | Get the authenticated athlete's profile | Read |\n| `strava_update_athlete` | Update athlete settings (sport type, timezone) | Write |\n| `strava_get_athlete_stats` | Get athlete statistics (distance, pace, heart rate zones) | Read |\n| `strava_get_athlete_zones` | Get heart rate and power zones | Read |\n| `strava_get_athlete_clubs` | List clubs the athlete is a member of | Read |\n\n### Activities\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_list_activities` | List the athlete's activities with pagination | Read |\n| `strava_get_activity` | Get details for a specific activity | Read |\n| `strava_create_activity` | Create a manual activity entry | Write |\n| `strava_update_activity` | Update an activity's name, description, or privacy | Write |\n| `strava_delete_activity` | Delete an activity permanently | Write |\n| `strava_get_activity_zones` | Get splits and heart rate/power zones for an activity | Read |\n| `strava_get_activity_laps` | Get lap data for an activity | Read |\n| `strava_get_activity_streams` | Get GPS, heart rate, power streams for an activity | Read |\n| `strava_upload_activity_photo` | Attach a photo to an activity | Write |\n\n### Activity Comments & Kudos\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_list_activity_comments` | List comments on an activity | Read |\n| `strava_create_activity_comment` | Add a comment to an activity | Write |\n| `strava_list_activity_kudos` | List kudos given to an activity | Read |\n| `strava_give_kudos_to_activity` | Give kudos to an activity | Write |\n| `strava_delete_kudos_from_activity` | Remove kudos from an activity | Write |\n\n### Routes\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_list_routes` | List the athlete's saved routes | Read |\n| `strava_get_route` | Get details and segments for a route | Read |\n| `strava_create_route` | Create a new route | Write |\n| `strava_update_route` | Update a route's name or description | Write |\n| `strava_delete_route` | Delete a route | Write |\n\n### Segments\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_get_segment` | Get a segment's leaderboard and details | Read |\n| `strava_list_segment_efforts` | List efforts on a segment by an athlete | Read |\n| `strava_get_segment_effort` | Get a specific segment effort | Read |\n| `strava_explore_segments` | Explore segments in a geographic area | Read |\n| `strava_star_segment` | Star/favorite a segment | Write |\n| `strava_unstar_segment` | Remove a star from a segment | Write |\n| `strava_list_starred_segments` | List the athlete's starred segments | Read |\n\n### Clubs\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_get_club` | Get a club's profile | Read |\n| `strava_list_club_activities` | List recent activities in a club | Read |\n| `strava_list_club_members` | List members of a club | Read |\n| `strava_join_club` | Request to join a club | Write |\n| `strava_leave_club` | Leave a club | Write |\n\n### Gear & Equipment\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_get_equipment` | Get details for a piece of equipment | Read |\n| `strava_create_equipment` | Add new equipment (bike, shoes) | Write |\n| `strava_update_equipment` | Update equipment name or retired status | Write |\n| `strava_delete_equipment` | Delete equipment | Write |\n| `strava_list_athlete_equipment` | List all equipment for an athlete | Read |\n\n### Uploads\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_upload_file` | Upload a FIT, GPX, or TCX activity file | Write |\n| `strava_get_upload_status` | Check the status of an activity upload | Read |\n\n## Code Examples\n\n### Get athlete stats\n\n```bash\nclawlink_call_tool --tool \"strava_get_athlete_stats\" \\\n  --params '{\"athlete_id\": \"ATHLETE_ID\"}'\n```\n\n### List recent activities\n\n```bash\nclawlink_call_tool --tool \"strava_list_activities\" \\\n  --params '{\n    \"limit\": 10,\n    \"after\": 1704067200\n  }'\n```\n\n### Get activity details\n\n```bash\nclawlink_call_tool --tool \"strava_get_activity\" \\\n  --params '{\n    \"activity_id\": \"ACTIVITY_ID\"\n  }'\n```\n\n### Explore segments in an area\n\n```bash\nclawlink_call_tool --tool \"strava_explore_segments\" \\\n  --params '{\n    \"bounds\": [37.8, -122.5, 37.9, -122.4],\n    \"activity_type\": \"running\"\n  }'\n```\n\n### Star a segment\n\n```bash\nclawlink_call_tool --tool \"strava_star_segment\" \\\n  --params '{\n    \"segment_id\": \"SEGMENT_ID\"\n  }'\n```\n\n### Get club activities\n\n```bash\nclawlink_call_tool --tool \"strava_list_club_activities\" \\\n  --params '{\n    \"club_id\": \"CLUB_ID\",\n    \"limit\": 20\n  }'\n```\n\n## Discovery Workflow\n\n1. Call `clawlink_list_integrations` to confirm Strava is connected.\n2. Call `clawlink_list_tools --integration strava` to see the live catalog.\n3. Treat the returned list as the source of truth. Do not guess or assume what tools exist.\n4. If the user describes a capability but the exact tool is unclear, call `clawlink_search_tools` with a short query and integration `strava`.\n5. If no Strava tools appear, direct the user to https://claw-link.dev/dashboard?add=strava.\n\n## Execution Workflow\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│  READ OPERATIONS (Safe)                                     │\n│  list → get → explore → describe                           │\n│                                                             │\n│  Example: List activities → Get activity streams → Analyze │\n└─────────────────────────────────────────────────────────────┘\n                              │\n                              ▼\n┌─────────────────────────────────────────────────────────────┐\n│  WRITE OPERATIONS (Require Confirmation)                    │\n│  describe → preview → confirm → call                       │\n│                                                             │\n│  Example: Preview activity upload → User approves → Upload │\n└─────────────────────────────────────────────────────────────┘\n```\n\n1. For unfamiliar tools, ambiguous requests, or any write action, call `clawlink_describe_tool` first.\n2. Use the returned guidance, schema, `whenToUse`, `askBefore`, `safeDefaults`, `examples`, and `followups` to shape the call.\n3. Prefer read, list, get, and explore operations before writes when that reduces ambiguity.\n4. For writes or anything marked as requiring confirmation, call `clawlink_preview_tool` first.\n5. Execute with `clawlink_call_tool`. Pass confirmation only after the preview matches the user's intent.\n6. If the tool call fails, report the real error. Do not invent results or restate the failure as a missing capability unless the live catalog supports that conclusion.\n\n## Notes\n\n- Activity uploads (FIT, GPX, TCX) are processed asynchronously — check upload status with `strava_get_upload_status`.\n- Segment explore uses bounding box coordinates: `[southwest_lat, southwest_lng, northeast_lat, northeast_lng]`.\n- Activity privacy controls may hide some data from API responses for private activities.\n- Upload file size limits apply — compressed FIT files are preferred over raw GPX for large activities.\n- Heart rate and power data availability depends on the device used to record the activity.\n- Activity types include: `run`, `ride`, `swim`, `workout`, `hike`, `walk`, and others.\n\n## Error Handling\n\n| Status / Error | Meaning |\n|----------------|---------|\n| Tool not found | The tool name does not exist in the current catalog. Verify with `clawlink_list_tools --integration strava`. |\n| Missing connection | Strava is not connected. Direct the user to https://claw-link.dev/dashboard?add=strava. |\n| `Activity not found` | The activity ID does not exist or belongs to another athlete. |\n| `Segment not found` | The segment ID does not exist in Strava's database. |\n| `Upload in progress` | The file upload is still being processed. Check status with `strava_get_upload_status`. |\n| `Upload failed` | The file format is invalid or the upload processing failed. |\n| `403 Forbidden` | The connected account lacks permission for this operation. |\n| `Rate limited` | Too many requests — wait before retrying. |\n| Write rejected | User did not confirm a write action. Always confirm before executing writes. |\n\n### Troubleshooting: Tools Not Visible\n\n1. Check that the ClawLink plugin is installed:\n   ```bash\n   openclaw plugins list\n   ```\n2. If the plugin is installed but tools are missing, tell the user to send `/new` as a standalone message to reload the catalog.\n3. If a fresh chat does not help, run:\n   ```bash\n   openclaw config set tools.alsoAllow '[\"clawlink-plugin\"]' --strict-json\n   openclaw gateway restart\n   ```\n4. After restart, tell the user to send `/new` again and retry.\n\n### Troubleshooting: Upload Fails\n\n1. Confirm the file is a valid FIT, GPX, or TCX format.\n2. Check the file size — very large files may fail to process.\n3. Wait and poll `strava_get_upload_status` — processing can take several seconds for large files.\n4. Verify the activity data is valid (GPS coordinates, timestamps).\n\n## Resources\n\n- [Strava API Documentation](https://developers.strava.com/docs/reference/)\n- [Strava API Overview](https://developers.strava.com/)\n- [Strava Authentication](https://developers.strava.com/docs/auth/)\n- ClawLink: https://claw-link.dev\n- ClawLink Docs: https://docs.claw-link.dev/openclaw\n- ClawLink Verification: https://claw-link.dev/verify\n\n---\n\n**Powered by [ClawLink](https://claw-link.dev)** — an integration hub for OpenClaw\n\n![ClawLink Logo](https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/logo/link_logo_black_small.png)\n\nFile v1.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn713pxvayh8fjhb503zjb8yxh815j54\",\n  \"slug\": \"strava-activities\",\n  \"version\": \"1.0.2\",\n  \"publishedAt\": 1780934173996\n}\n\nFile v1.0.2:skill-card.md\n\n## Description: <br>\nTrack and manage Strava workouts, athlete stats, routes, segments, and club activities via the Strava API. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[hith3sh](https://clawhub.ai/user/hith3sh) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and developers use this skill to connect a Strava account through ClawLink, review athletic activity data, inspect routes and segments, and perform confirmed Strava account actions from an agent chat. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill requires OAuth-backed access to a Strava account and can expose or change activity, route, club, and equipment data according to granted scopes. <br>\nMitigation: Connect only the intended Strava account, grant the minimum scopes needed, and confirm write operations only after previewing the exact action. <br>\nRisk: The security scan flags a bundled review helper that can bypass Codex sandbox and approval controls by default. <br>\nMitigation: Install only from a trusted publisher, prefer --no-yolo or equivalent restricted settings, and review moderation commands before allowing account or skill state changes. <br>\nRisk: Activity uploads and write actions can create, update, or delete Strava records. <br>\nMitigation: Use describe and preview steps before writes, require explicit user confirmation, and verify uploaded files are owned by the user and valid FIT, GPX, or TCX data. <br>\n\n\n## Reference(s): <br>\n- [Strava API Documentation](https://developers.strava.com/docs/reference/) <br>\n- [Strava API Overview](https://developers.strava.com/) <br>\n- [Strava Authentication](https://developers.strava.com/docs/auth/) <br>\n- [ClawLink](https://claw-link.dev) <br>\n- [ClawLink Docs](https://docs.claw-link.dev/openclaw) <br>\n- [ClawHub Skill Page](https://clawhub.ai/hith3sh/strava-activities) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [API Calls, Shell commands, Configuration instructions, Guidance] <br>\n**Output Format:** [Markdown with inline bash commands and JSON parameters] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Uses OAuth-backed Strava and ClawLink tool calls; write operations require explicit user confirmation.] <br>\n\n## Skill Version(s): <br>\n1.0.2 (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 v1.0.1: 3 files, 6132 bytes\n\nFiles: skill-card.md (2330b), SKILL.md (15234b), _meta.json (136b)\n\nFile v1.0.1:SKILL.md\n\n---\nname: strava-activities\ndescription: Track and manage Strava workouts, athlete stats, routes, segments, and club activities via the Strava API. Use this skill when users want to log activities, review athletic performance, explore routes, or manage club data in Strava.\n---\n\n# Strava\n\n<img src=\"https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/brand-logos/strava.svg\" width=\"48\" alt=\"Strava\">\n\nTrack and manage Strava activities, athlete data, routes, segments, and club activity from chat via the Strava API.\n\nThis skill uses [ClawLink](https://claw-link.dev) for hosted connection flows and credentials so you do not need to configure Strava API access yourself.\n\n### Setup in 3 Steps\n\n| Step 1: Install | Step 2: Pair Account | Step 3: Connect Strava |\n|:---:|:---:|:---:|\n| ![Install](https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/pairing/initialstep_1.gif) | ![Pair](https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/approve_process.gif) | *App-specific connection GIF coming soon* |\n| Run the install command in OpenClaw | Sign in and approve the device | Open the dashboard and connect Strava |\n\n## How It Works\n\n```\n┌─────────────────┐     ┌──────────────┐     ┌──────────────────┐\n│   OpenClaw      │────▶│   ClawLink   │────▶│   Strava API     │\n│   (User Chat)   │     │   (OAuth)    │     │                  │\n└─────────────────┘     └──────────────┘     └──────────────────┘\n         │                       │                       │\n         │  1. Install Plugin    │                       │\n         │  2. Pair Device       │                       │\n         │  3. Connect Strava    │                       │\n         │                       │  4. Secure Token      │\n         │                       │  5. Proxy Requests    │\n         │                       │                       │\n         ▼                       ▼                       ▼\n   ┌──────────┐           ┌──────────┐           ┌──────────┐\n   │  SKILL   │           │ Dashboard│           │  Strava  │\n   │  File    │           │ Auth     │           │  Account │\n   └──────────┘           └──────────┘           └──────────┘\n```\n\n## Install\n\nInstall the verified ClawLink plugin from ClawHub. After the user confirms, complete the full setup so ClawLink tools are visible in the next OpenClaw chat.\n\n```bash\nopenclaw plugins install clawhub:clawlink-plugin\nopenclaw config set tools.alsoAllow '[\"clawlink-plugin\"]' --strict-json\nopenclaw gateway restart\n```\n\nThen tell the user: \"OpenClaw has been restarted. Send `/new` as a standalone message to start a fresh chat, then ask for Strava again.\"\n\n## Quick Start\n\n```bash\n# Get athlete profile\nclawlink_call_tool --tool \"strava_get_athlete\" --params '{}'\n\n# List recent activities\nclawlink_call_tool --tool \"strava_list_activities\" --params '{\"limit\": 10}'\n\n# Get activity details\nclawlink_call_tool --tool \"strava_get_activity\" --params '{\"activity_id\": \"ACTIVITY_ID\"}'\n```\n\n## Authentication\n\nAll Strava tool calls are authenticated automatically by ClawLink using the user's connected Strava account OAuth token.\n\n**No API token is required in chat.** ClawLink stores the OAuth token securely and injects it into every Strava API request on the user's behalf.\n\n### Getting Connected\n\n1. Install the ClawLink plugin (see Install above).\n2. Pair the plugin with `clawlink_begin_pairing` if it is not configured yet.\n3. Open https://claw-link.dev/dashboard?add=strava and connect Strava.\n4. Call `clawlink_list_integrations` to verify the connection is active.\n\n## Connection Management\n\n### List Connections\n\n```bash\nclawlink_list_integrations\n```\n\n**Response:** Returns all connected integrations. Look for `strava` in the list.\n\n### Verify Connection\n\n```bash\nclawlink_list_tools --integration strava\n```\n\n**Response:** Returns the live tool catalog for Strava.\n\n### Reconnect\n\nIf Strava tools are missing or the connection shows an error:\n\n1. Direct the user to https://claw-link.dev/dashboard?add=strava\n2. After they confirm, call `clawlink_list_integrations` to verify\n3. Then call `clawlink_list_tools --integration strava`\n\n## Security & Permissions\n\n- Access is scoped to the Strava account connected during OAuth setup and the scopes granted.\n- **Write operations (create activity, upload files, update settings) require explicit user confirmation.**\n- Activity upload requires the user to own the data being uploaded.\n- Club management operations may require club admin privileges.\n\n## Tool Reference\n\n### Athlete\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_get_athlete` | Get the authenticated athlete's profile | Read |\n| `strava_update_athlete` | Update athlete settings (sport type, timezone) | Write |\n| `strava_get_athlete_stats` | Get athlete statistics (distance, pace, heart rate zones) | Read |\n| `strava_get_athlete_zones` | Get heart rate and power zones | Read |\n| `strava_get_athlete_clubs` | List clubs the athlete is a member of | Read |\n\n### Activities\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_list_activities` | List the athlete's activities with pagination | Read |\n| `strava_get_activity` | Get details for a specific activity | Read |\n| `strava_create_activity` | Create a manual activity entry | Write |\n| `strava_update_activity` | Update an activity's name, description, or privacy | Write |\n| `strava_delete_activity` | Delete an activity permanently | Write |\n| `strava_get_activity_zones` | Get splits and heart rate/power zones for an activity | Read |\n| `strava_get_activity_laps` | Get lap data for an activity | Read |\n| `strava_get_activity_streams` | Get GPS, heart rate, power streams for an activity | Read |\n| `strava_upload_activity_photo` | Attach a photo to an activity | Write |\n\n### Activity Comments & Kudos\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_list_activity_comments` | List comments on an activity | Read |\n| `strava_create_activity_comment` | Add a comment to an activity | Write |\n| `strava_list_activity_kudos` | List kudos given to an activity | Read |\n| `strava_give_kudos_to_activity` | Give kudos to an activity | Write |\n| `strava_delete_kudos_from_activity` | Remove kudos from an activity | Write |\n\n### Routes\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_list_routes` | List the athlete's saved routes | Read |\n| `strava_get_route` | Get details and segments for a route | Read |\n| `strava_create_route` | Create a new route | Write |\n| `strava_update_route` | Update a route's name or description | Write |\n| `strava_delete_route` | Delete a route | Write |\n\n### Segments\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_get_segment` | Get a segment's leaderboard and details | Read |\n| `strava_list_segment_efforts` | List efforts on a segment by an athlete | Read |\n| `strava_get_segment_effort` | Get a specific segment effort | Read |\n| `strava_explore_segments` | Explore segments in a geographic area | Read |\n| `strava_star_segment` | Star/favorite a segment | Write |\n| `strava_unstar_segment` | Remove a star from a segment | Write |\n| `strava_list_starred_segments` | List the athlete's starred segments | Read |\n\n### Clubs\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_get_club` | Get a club's profile | Read |\n| `strava_list_club_activities` | List recent activities in a club | Read |\n| `strava_list_club_members` | List members of a club | Read |\n| `strava_join_club` | Request to join a club | Write |\n| `strava_leave_club` | Leave a club | Write |\n\n### Gear & Equipment\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_get_equipment` | Get details for a piece of equipment | Read |\n| `strava_create_equipment` | Add new equipment (bike, shoes) | Write |\n| `strava_update_equipment` | Update equipment name or retired status | Write |\n| `strava_delete_equipment` | Delete equipment | Write |\n| `strava_list_athlete_equipment` | List all equipment for an athlete | Read |\n\n### Uploads\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_upload_file` | Upload a FIT, GPX, or TCX activity file | Write |\n| `strava_get_upload_status` | Check the status of an activity upload | Read |\n\n## Code Examples\n\n### Get athlete stats\n\n```bash\nclawlink_call_tool --tool \"strava_get_athlete_stats\" \\\n  --params '{\"athlete_id\": \"ATHLETE_ID\"}'\n```\n\n### List recent activities\n\n```bash\nclawlink_call_tool --tool \"strava_list_activities\" \\\n  --params '{\n    \"limit\": 10,\n    \"after\": 1704067200\n  }'\n```\n\n### Get activity details\n\n```bash\nclawlink_call_tool --tool \"strava_get_activity\" \\\n  --params '{\n    \"activity_id\": \"ACTIVITY_ID\"\n  }'\n```\n\n### Explore segments in an area\n\n```bash\nclawlink_call_tool --tool \"strava_explore_segments\" \\\n  --params '{\n    \"bounds\": [37.8, -122.5, 37.9, -122.4],\n    \"activity_type\": \"running\"\n  }'\n```\n\n### Star a segment\n\n```bash\nclawlink_call_tool --tool \"strava_star_segment\" \\\n  --params '{\n    \"segment_id\": \"SEGMENT_ID\"\n  }'\n```\n\n### Get club activities\n\n```bash\nclawlink_call_tool --tool \"strava_list_club_activities\" \\\n  --params '{\n    \"club_id\": \"CLUB_ID\",\n    \"limit\": 20\n  }'\n```\n\n## Discovery Workflow\n\n1. Call `clawlink_list_integrations` to confirm Strava is connected.\n2. Call `clawlink_list_tools --integration strava` to see the live catalog.\n3. Treat the returned list as the source of truth. Do not guess or assume what tools exist.\n4. If the user describes a capability but the exact tool is unclear, call `clawlink_search_tools` with a short query and integration `strava`.\n5. If no Strava tools appear, direct the user to https://claw-link.dev/dashboard?add=strava.\n\n## Execution Workflow\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│  READ OPERATIONS (Safe)                                     │\n│  list → get → explore → describe                           │\n│                                                             │\n│  Example: List activities → Get activity streams → Analyze │\n└─────────────────────────────────────────────────────────────┘\n                              │\n                              ▼\n┌─────────────────────────────────────────────────────────────┐\n│  WRITE OPERATIONS (Require Confirmation)                    │\n│  describe → preview → confirm → call                       │\n│                                                             │\n│  Example: Preview activity upload → User approves → Upload │\n└─────────────────────────────────────────────────────────────┘\n```\n\n1. For unfamiliar tools, ambiguous requests, or any write action, call `clawlink_describe_tool` first.\n2. Use the returned guidance, schema, `whenToUse`, `askBefore`, `safeDefaults`, `examples`, and `followups` to shape the call.\n3. Prefer read, list, get, and explore operations before writes when that reduces ambiguity.\n4. For writes or anything marked as requiring confirmation, call `clawlink_preview_tool` first.\n5. Execute with `clawlink_call_tool`. Pass confirmation only after the preview matches the user's intent.\n6. If the tool call fails, report the real error. Do not invent results or restate the failure as a missing capability unless the live catalog supports that conclusion.\n\n## Notes\n\n- Activity uploads (FIT, GPX, TCX) are processed asynchronously — check upload status with `strava_get_upload_status`.\n- Segment explore uses bounding box coordinates: `[southwest_lat, southwest_lng, northeast_lat, northeast_lng]`.\n- Activity privacy controls may hide some data from API responses for private activities.\n- Upload file size limits apply — compressed FIT files are preferred over raw GPX for large activities.\n- Heart rate and power data availability depends on the device used to record the activity.\n- Activity types include: `run`, `ride`, `swim`, `workout`, `hike`, `walk`, and others.\n\n## Error Handling\n\n| Status / Error | Meaning |\n|----------------|---------|\n| Tool not found | The tool name does not exist in the current catalog. Verify with `clawlink_list_tools --integration strava`. |\n| Missing connection | Strava is not connected. Direct the user to https://claw-link.dev/dashboard?add=strava. |\n| `Activity not found` | The activity ID does not exist or belongs to another athlete. |\n| `Segment not found` | The segment ID does not exist in Strava's database. |\n| `Upload in progress` | The file upload is still being processed. Check status with `strava_get_upload_status`. |\n| `Upload failed` | The file format is invalid or the upload processing failed. |\n| `403 Forbidden` | The connected account lacks permission for this operation. |\n| `Rate limited` | Too many requests — wait before retrying. |\n| Write rejected | User did not confirm a write action. Always confirm before executing writes. |\n\n### Troubleshooting: Tools Not Visible\n\n1. Check that the ClawLink plugin is installed:\n   ```bash\n   openclaw plugins list\n   ```\n2. If the plugin is installed but tools are missing, tell the user to send `/new` as a standalone message to reload the catalog.\n3. If a fresh chat does not help, run:\n   ```bash\n   openclaw config set tools.alsoAllow '[\"clawlink-plugin\"]' --strict-json\n   openclaw gateway restart\n   ```\n4. After restart, tell the user to send `/new` again and retry.\n\n### Troubleshooting: Upload Fails\n\n1. Confirm the file is a valid FIT, GPX, or TCX format.\n2. Check the file size — very large files may fail to process.\n3. Wait and poll `strava_get_upload_status` — processing can take several seconds for large files.\n4. Verify the activity data is valid (GPS coordinates, timestamps).\n\n## Resources\n\n- [Strava API Documentation](https://developers.strava.com/docs/reference/)\n- [Strava API Overview](https://developers.strava.com/)\n- [Strava Authentication](https://developers.strava.com/docs/auth/)\n- ClawLink: https://claw-link.dev\n- ClawLink Docs: https://docs.claw-link.dev/openclaw\n- ClawLink Verification: https://claw-link.dev/verify\n\n---\n\n**Powered by [ClawLink](https://claw-link.dev)** — an integration hub for OpenClaw\n\n![ClawLink Logo](https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/logo/link_logo_black_small.png)\n\nFile v1.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn713pxvayh8fjhb503zjb8yxh815j54\",\n  \"slug\": \"strava-activities\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1780934011871\n}\n\nFile v1.0.1:skill-card.md\n\n## Description: <br>\nTrack and manage Strava workouts, athlete stats, routes, segments, and club activities via the Strava API. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[hith3sh](https://clawhub.ai/user/hith3sh) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and developers use this skill to connect a Strava account through ClawLink, inspect athlete activities and performance data, and perform confirmed write actions such as uploads, updates, comments, kudos, route changes, and club membership changes. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill requires OAuth access to a user's Strava account through ClawLink. <br>\nMitigation: Confirm the user trusts ClawLink as the OAuth broker and review requested Strava permissions during connection. <br>\nRisk: Write actions can change Strava data, including uploads, deletions, privacy settings, comments, kudos, routes, equipment, and club membership. <br>\nMitigation: Preview write actions and proceed only after the user explicitly confirms that the proposed action matches their intent. <br>\n\n\n## Reference(s): <br>\n- [ClawHub Skill Page](https://clawhub.ai/hith3sh/strava-activities) <br>\n- [Strava API Documentation](https://developers.strava.com/docs/reference/) <br>\n- [Strava API Overview](https://developers.strava.com/) <br>\n- [Strava Authentication](https://developers.strava.com/docs/auth/) <br>\n- [ClawLink OpenClaw Documentation](https://docs.claw-link.dev/openclaw) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [guidance, shell commands, API calls, configuration, markdown] <br>\n**Output Format:** [Markdown guidance with inline shell commands and JSON tool parameters] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Uses ClawLink OAuth-backed Strava tools; write operations require explicit user confirmation before execution.] <br>\n\n## Skill Version(s): <br>\n1.0.1 (source: server release metadata) <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 v1.0.0: 3 files, 6196 bytes\n\nFiles: skill-card.md (2443b), SKILL.md (15234b), _meta.json (136b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: strava-activities\ndescription: Track and manage Strava workouts, athlete stats, routes, segments, and club activities via the Strava API. Use this skill when users want to log activities, review athletic performance, explore routes, or manage club data in Strava.\n---\n\n# Strava\n\n<img src=\"https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/brand-logos/strava.svg\" width=\"48\" alt=\"Strava\">\n\nTrack and manage Strava activities, athlete data, routes, segments, and club activity from chat via the Strava API.\n\nThis skill uses [ClawLink](https://claw-link.dev) for hosted connection flows and credentials so you do not need to configure Strava API access yourself.\n\n### Setup in 3 Steps\n\n| Step 1: Install | Step 2: Pair Account | Step 3: Connect Strava |\n|:---:|:---:|:---:|\n| ![Install](https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/pairing/initialstep_1.gif) | ![Pair](https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/approve_process.gif) | *App-specific connection GIF coming soon* |\n| Run the install command in OpenClaw | Sign in and approve the device | Open the dashboard and connect Strava |\n\n## How It Works\n\n```\n┌─────────────────┐     ┌──────────────┐     ┌──────────────────┐\n│   OpenClaw      │────▶│   ClawLink   │────▶│   Strava API     │\n│   (User Chat)   │     │   (OAuth)    │     │                  │\n└─────────────────┘     └──────────────┘     └──────────────────┘\n         │                       │                       │\n         │  1. Install Plugin    │                       │\n         │  2. Pair Device       │                       │\n         │  3. Connect Strava    │                       │\n         │                       │  4. Secure Token      │\n         │                       │  5. Proxy Requests    │\n         │                       │                       │\n         ▼                       ▼                       ▼\n   ┌──────────┐           ┌──────────┐           ┌──────────┐\n   │  SKILL   │           │ Dashboard│           │  Strava  │\n   │  File    │           │ Auth     │           │  Account │\n   └──────────┘           └──────────┘           └──────────┘\n```\n\n## Install\n\nInstall the verified ClawLink plugin from ClawHub. After the user confirms, complete the full setup so ClawLink tools are visible in the next OpenClaw chat.\n\n```bash\nopenclaw plugins install clawhub:clawlink-plugin\nopenclaw config set tools.alsoAllow '[\"clawlink-plugin\"]' --strict-json\nopenclaw gateway restart\n```\n\nThen tell the user: \"OpenClaw has been restarted. Send `/new` as a standalone message to start a fresh chat, then ask for Strava again.\"\n\n## Quick Start\n\n```bash\n# Get athlete profile\nclawlink_call_tool --tool \"strava_get_athlete\" --params '{}'\n\n# List recent activities\nclawlink_call_tool --tool \"strava_list_activities\" --params '{\"limit\": 10}'\n\n# Get activity details\nclawlink_call_tool --tool \"strava_get_activity\" --params '{\"activity_id\": \"ACTIVITY_ID\"}'\n```\n\n## Authentication\n\nAll Strava tool calls are authenticated automatically by ClawLink using the user's connected Strava account OAuth token.\n\n**No API token is required in chat.** ClawLink stores the OAuth token securely and injects it into every Strava API request on the user's behalf.\n\n### Getting Connected\n\n1. Install the ClawLink plugin (see Install above).\n2. Pair the plugin with `clawlink_begin_pairing` if it is not configured yet.\n3. Open https://claw-link.dev/dashboard?add=strava and connect Strava.\n4. Call `clawlink_list_integrations` to verify the connection is active.\n\n## Connection Management\n\n### List Connections\n\n```bash\nclawlink_list_integrations\n```\n\n**Response:** Returns all connected integrations. Look for `strava` in the list.\n\n### Verify Connection\n\n```bash\nclawlink_list_tools --integration strava\n```\n\n**Response:** Returns the live tool catalog for Strava.\n\n### Reconnect\n\nIf Strava tools are missing or the connection shows an error:\n\n1. Direct the user to https://claw-link.dev/dashboard?add=strava\n2. After they confirm, call `clawlink_list_integrations` to verify\n3. Then call `clawlink_list_tools --integration strava`\n\n## Security & Permissions\n\n- Access is scoped to the Strava account connected during OAuth setup and the scopes granted.\n- **Write operations (create activity, upload files, update settings) require explicit user confirmation.**\n- Activity upload requires the user to own the data being uploaded.\n- Club management operations may require club admin privileges.\n\n## Tool Reference\n\n### Athlete\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_get_athlete` | Get the authenticated athlete's profile | Read |\n| `strava_update_athlete` | Update athlete settings (sport type, timezone) | Write |\n| `strava_get_athlete_stats` | Get athlete statistics (distance, pace, heart rate zones) | Read |\n| `strava_get_athlete_zones` | Get heart rate and power zones | Read |\n| `strava_get_athlete_clubs` | List clubs the athlete is a member of | Read |\n\n### Activities\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_list_activities` | List the athlete's activities with pagination | Read |\n| `strava_get_activity` | Get details for a specific activity | Read |\n| `strava_create_activity` | Create a manual activity entry | Write |\n| `strava_update_activity` | Update an activity's name, description, or privacy | Write |\n| `strava_delete_activity` | Delete an activity permanently | Write |\n| `strava_get_activity_zones` | Get splits and heart rate/power zones for an activity | Read |\n| `strava_get_activity_laps` | Get lap data for an activity | Read |\n| `strava_get_activity_streams` | Get GPS, heart rate, power streams for an activity | Read |\n| `strava_upload_activity_photo` | Attach a photo to an activity | Write |\n\n### Activity Comments & Kudos\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_list_activity_comments` | List comments on an activity | Read |\n| `strava_create_activity_comment` | Add a comment to an activity | Write |\n| `strava_list_activity_kudos` | List kudos given to an activity | Read |\n| `strava_give_kudos_to_activity` | Give kudos to an activity | Write |\n| `strava_delete_kudos_from_activity` | Remove kudos from an activity | Write |\n\n### Routes\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_list_routes` | List the athlete's saved routes | Read |\n| `strava_get_route` | Get details and segments for a route | Read |\n| `strava_create_route` | Create a new route | Write |\n| `strava_update_route` | Update a route's name or description | Write |\n| `strava_delete_route` | Delete a route | Write |\n\n### Segments\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_get_segment` | Get a segment's leaderboard and details | Read |\n| `strava_list_segment_efforts` | List efforts on a segment by an athlete | Read |\n| `strava_get_segment_effort` | Get a specific segment effort | Read |\n| `strava_explore_segments` | Explore segments in a geographic area | Read |\n| `strava_star_segment` | Star/favorite a segment | Write |\n| `strava_unstar_segment` | Remove a star from a segment | Write |\n| `strava_list_starred_segments` | List the athlete's starred segments | Read |\n\n### Clubs\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_get_club` | Get a club's profile | Read |\n| `strava_list_club_activities` | List recent activities in a club | Read |\n| `strava_list_club_members` | List members of a club | Read |\n| `strava_join_club` | Request to join a club | Write |\n| `strava_leave_club` | Leave a club | Write |\n\n### Gear & Equipment\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_get_equipment` | Get details for a piece of equipment | Read |\n| `strava_create_equipment` | Add new equipment (bike, shoes) | Write |\n| `strava_update_equipment` | Update equipment name or retired status | Write |\n| `strava_delete_equipment` | Delete equipment | Write |\n| `strava_list_athlete_equipment` | List all equipment for an athlete | Read |\n\n### Uploads\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_upload_file` | Upload a FIT, GPX, or TCX activity file | Write |\n| `strava_get_upload_status` | Check the status of an activity upload | Read |\n\n## Code Examples\n\n### Get athlete stats\n\n```bash\nclawlink_call_tool --tool \"strava_get_athlete_stats\" \\\n  --params '{\"athlete_id\": \"ATHLETE_ID\"}'\n```\n\n### List recent activities\n\n```bash\nclawlink_call_tool --tool \"strava_list_activities\" \\\n  --params '{\n    \"limit\": 10,\n    \"after\": 1704067200\n  }'\n```\n\n### Get activity details\n\n```bash\nclawlink_call_tool --tool \"strava_get_activity\" \\\n  --params '{\n    \"activity_id\": \"ACTIVITY_ID\"\n  }'\n```\n\n### Explore segments in an area\n\n```bash\nclawlink_call_tool --tool \"strava_explore_segments\" \\\n  --params '{\n    \"bounds\": [37.8, -122.5, 37.9, -122.4],\n    \"activity_type\": \"running\"\n  }'\n```\n\n### Star a segment\n\n```bash\nclawlink_call_tool --tool \"strava_star_segment\" \\\n  --params '{\n    \"segment_id\": \"SEGMENT_ID\"\n  }'\n```\n\n### Get club activities\n\n```bash\nclawlink_call_tool --tool \"strava_list_club_activities\" \\\n  --params '{\n    \"club_id\": \"CLUB_ID\",\n    \"limit\": 20\n  }'\n```\n\n## Discovery Workflow\n\n1. Call `clawlink_list_integrations` to confirm Strava is connected.\n2. Call `clawlink_list_tools --integration strava` to see the live catalog.\n3. Treat the returned list as the source of truth. Do not guess or assume what tools exist.\n4. If the user describes a capability but the exact tool is unclear, call `clawlink_search_tools` with a short query and integration `strava`.\n5. If no Strava tools appear, direct the user to https://claw-link.dev/dashboard?add=strava.\n\n## Execution Workflow\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│  READ OPERATIONS (Safe)                                     │\n│  list → get → explore → describe                           │\n│                                                             │\n│  Example: List activities → Get activity streams → Analyze │\n└─────────────────────────────────────────────────────────────┘\n                              │\n                              ▼\n┌─────────────────────────────────────────────────────────────┐\n│  WRITE OPERATIONS (Require Confirmation)                    │\n│  describe → preview → confirm → call                       │\n│                                                             │\n│  Example: Preview activity upload → User approves → Upload │\n└─────────────────────────────────────────────────────────────┘\n```\n\n1. For unfamiliar tools, ambiguous requests, or any write action, call `clawlink_describe_tool` first.\n2. Use the returned guidance, schema, `whenToUse`, `askBefore`, `safeDefaults`, `examples`, and `followups` to shape the call.\n3. Prefer read, list, get, and explore operations before writes when that reduces ambiguity.\n4. For writes or anything marked as requiring confirmation, call `clawlink_preview_tool` first.\n5. Execute with `clawlink_call_tool`. Pass confirmation only after the preview matches the user's intent.\n6. If the tool call fails, report the real error. Do not invent results or restate the failure as a missing capability unless the live catalog supports that conclusion.\n\n## Notes\n\n- Activity uploads (FIT, GPX, TCX) are processed asynchronously — check upload status with `strava_get_upload_status`.\n- Segment explore uses bounding box coordinates: `[southwest_lat, southwest_lng, northeast_lat, northeast_lng]`.\n- Activity privacy controls may hide some data from API responses for private activities.\n- Upload file size limits apply — compressed FIT files are preferred over raw GPX for large activities.\n- Heart rate and power data availability depends on the device used to record the activity.\n- Activity types include: `run`, `ride`, `swim`, `workout`, `hike`, `walk`, and others.\n\n## Error Handling\n\n| Status / Error | Meaning |\n|----------------|---------|\n| Tool not found | The tool name does not exist in the current catalog. Verify with `clawlink_list_tools --integration strava`. |\n| Missing connection | Strava is not connected. Direct the user to https://claw-link.dev/dashboard?add=strava. |\n| `Activity not found` | The activity ID does not exist or belongs to another athlete. |\n| `Segment not found` | The segment ID does not exist in Strava's database. |\n| `Upload in progress` | The file upload is still being processed. Check status with `strava_get_upload_status`. |\n| `Upload failed` | The file format is invalid or the upload processing failed. |\n| `403 Forbidden` | The connected account lacks permission for this operation. |\n| `Rate limited` | Too many requests — wait before retrying. |\n| Write rejected | User did not confirm a write action. Always confirm before executing writes. |\n\n### Troubleshooting: Tools Not Visible\n\n1. Check that the ClawLink plugin is installed:\n   ```bash\n   openclaw plugins list\n   ```\n2. If the plugin is installed but tools are missing, tell the user to send `/new` as a standalone message to reload the catalog.\n3. If a fresh chat does not help, run:\n   ```bash\n   openclaw config set tools.alsoAllow '[\"clawlink-plugin\"]' --strict-json\n   openclaw gateway restart\n   ```\n4. After restart, tell the user to send `/new` again and retry.\n\n### Troubleshooting: Upload Fails\n\n1. Confirm the file is a valid FIT, GPX, or TCX format.\n2. Check the file size — very large files may fail to process.\n3. Wait and poll `strava_get_upload_status` — processing can take several seconds for large files.\n4. Verify the activity data is valid (GPS coordinates, timestamps).\n\n## Resources\n\n- [Strava API Documentation](https://developers.strava.com/docs/reference/)\n- [Strava API Overview](https://developers.strava.com/)\n- [Strava Authentication](https://developers.strava.com/docs/auth/)\n- ClawLink: https://claw-link.dev\n- ClawLink Docs: https://docs.claw-link.dev/openclaw\n- ClawLink Verification: https://claw-link.dev/verify\n\n---\n\n**Powered by [ClawLink](https://claw-link.dev)** — an integration hub for OpenClaw\n\n![ClawLink Logo](https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/logo/link_logo_black_small.png)\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn713pxvayh8fjhb503zjb8yxh815j54\",\n  \"slug\": \"strava-activities\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1780933882564\n}\n\nFile v1.0.0:skill-card.md\n\n## Description: <br>\nTrack and manage Strava workouts, athlete stats, routes, segments, and club activities via the Strava API. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[hith3sh](https://clawhub.ai/user/hith3sh) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nAthletes, coaches, and developers use this skill to inspect Strava activity data, review performance, explore routes and segments, and manage connected Strava records from an agent workflow. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill requires OAuth access to a Strava account through ClawLink. <br>\nMitigation: Install only after confirming trust in ClawLink and review the Strava permissions shown during connection. <br>\nRisk: Write actions can upload, modify, or delete Strava content and can affect comments, kudos, privacy, routes, equipment, and club membership. <br>\nMitigation: Use preview and explicit user confirmation before write operations, and approve only actions that match the user's stated intent. <br>\nRisk: Strava activity data can include sensitive location, health, performance, and social information. <br>\nMitigation: Limit requests to the user's task, respect Strava privacy settings, and avoid exposing retrieved data beyond the current workflow. <br>\n\n\n## Reference(s): <br>\n- [Strava API Documentation](https://developers.strava.com/docs/reference/) <br>\n- [Strava API Overview](https://developers.strava.com/) <br>\n- [Strava Authentication](https://developers.strava.com/docs/auth/) <br>\n- [ClawLink](https://claw-link.dev) <br>\n- [ClawLink OpenClaw Docs](https://docs.claw-link.dev/openclaw) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Guidance, Markdown, Shell commands, Configuration, API calls] <br>\n**Output Format:** [Markdown with inline bash commands and JSON parameters] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Uses the live Strava tool catalog through ClawLink and asks for confirmation before write operations.] <br>\n\n## Skill Version(s): <br>\n1.0.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.1: 3 files, 6148 bytes\n\nFiles: skill-card.md (2498b), SKILL.md (15100b), _meta.json (136b)\n\nFile v0.2.1:SKILL.md\n\n---\nname: strava-activities\ndescription: Track and manage Strava workouts, athlete stats, routes, segments, and club activities via the Strava API. Use this skill when users want to log activities, review athletic performance, explore routes, or manage club data in Strava.\n---\n\n# Strava\n\nTrack and manage Strava activities, athlete data, routes, segments, and club activity from chat via the Strava API.\n\nThis skill uses [ClawLink](https://claw-link.dev) for hosted connection flows and credentials so you do not need to configure Strava API access yourself.\n\n### Setup in 3 Steps\n\n| Step 1: Install | Step 2: Pair Account | Step 3: Connect Strava |\n|:---:|:---:|:---:|\n| ![Install](https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/pairing/initialstep_1.gif) | ![Pair](https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/approve_process.gif) | *App-specific connection GIF coming soon* |\n| Run the install command in OpenClaw | Sign in and approve the device | Open the dashboard and connect Strava |\n\n## How It Works\n\n```\n┌─────────────────┐     ┌──────────────┐     ┌──────────────────┐\n│   OpenClaw      │────▶│   ClawLink   │────▶│   Strava API     │\n│   (User Chat)   │     │   (OAuth)    │     │                  │\n└─────────────────┘     └──────────────┘     └──────────────────┘\n         │                       │                       │\n         │  1. Install Plugin    │                       │\n         │  2. Pair Device       │                       │\n         │  3. Connect Strava    │                       │\n         │                       │  4. Secure Token      │\n         │                       │  5. Proxy Requests    │\n         │                       │                       │\n         ▼                       ▼                       ▼\n   ┌──────────┐           ┌──────────┐           ┌──────────┐\n   │  SKILL   │           │ Dashboard│           │  Strava  │\n   │  File    │           │ Auth     │           │  Account │\n   └──────────┘           └──────────┘           └──────────┘\n```\n\n## Install\n\nInstall the verified ClawLink plugin from ClawHub. After the user confirms, complete the full setup so ClawLink tools are visible in the next OpenClaw chat.\n\n```bash\nopenclaw plugins install clawhub:clawlink-plugin\nopenclaw config set tools.alsoAllow '[\"clawlink-plugin\"]' --strict-json\nopenclaw gateway restart\n```\n\nThen tell the user: \"OpenClaw has been restarted. Send `/new` as a standalone message to start a fresh chat, then ask for Strava again.\"\n\n## Quick Start\n\n```bash\n# Get athlete profile\nclawlink_call_tool --tool \"strava_get_athlete\" --params '{}'\n\n# List recent activities\nclawlink_call_tool --tool \"strava_list_activities\" --params '{\"limit\": 10}'\n\n# Get activity details\nclawlink_call_tool --tool \"strava_get_activity\" --params '{\"activity_id\": \"ACTIVITY_ID\"}'\n```\n\n## Authentication\n\nAll Strava tool calls are authenticated automatically by ClawLink using the user's connected Strava account OAuth token.\n\n**No API token is required in chat.** ClawLink stores the OAuth token securely and injects it into every Strava API request on the user's behalf.\n\n### Getting Connected\n\n1. Install the ClawLink plugin (see Install above).\n2. Pair the plugin with `clawlink_begin_pairing` if it is not configured yet.\n3. Open https://claw-link.dev/dashboard?add=strava and connect Strava.\n4. Call `clawlink_list_integrations` to verify the connection is active.\n\n## Connection Management\n\n### List Connections\n\n```bash\nclawlink_list_integrations\n```\n\n**Response:** Returns all connected integrations. Look for `strava` in the list.\n\n### Verify Connection\n\n```bash\nclawlink_list_tools --integration strava\n```\n\n**Response:** Returns the live tool catalog for Strava.\n\n### Reconnect\n\nIf Strava tools are missing or the connection shows an error:\n\n1. Direct the user to https://claw-link.dev/dashboard?add=strava\n2. After they confirm, call `clawlink_list_integrations` to verify\n3. Then call `clawlink_list_tools --integration strava`\n\n## Security & Permissions\n\n- Access is scoped to the Strava account connected during OAuth setup and the scopes granted.\n- **Write operations (create activity, upload files, update settings) require explicit user confirmation.**\n- Activity upload requires the user to own the data being uploaded.\n- Club management operations may require club admin privileges.\n\n## Tool Reference\n\n### Athlete\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_get_athlete` | Get the authenticated athlete's profile | Read |\n| `strava_update_athlete` | Update athlete settings (sport type, timezone) | Write |\n| `strava_get_athlete_stats` | Get athlete statistics (distance, pace, heart rate zones) | Read |\n| `strava_get_athlete_zones` | Get heart rate and power zones | Read |\n| `strava_get_athlete_clubs` | List clubs the athlete is a member of | Read |\n\n### Activities\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_list_activities` | List the athlete's activities with pagination | Read |\n| `strava_get_activity` | Get details for a specific activity | Read |\n| `strava_create_activity` | Create a manual activity entry | Write |\n| `strava_update_activity` | Update an activity's name, description, or privacy | Write |\n| `strava_delete_activity` | Delete an activity permanently | Write |\n| `strava_get_activity_zones` | Get splits and heart rate/power zones for an activity | Read |\n| `strava_get_activity_laps` | Get lap data for an activity | Read |\n| `strava_get_activity_streams` | Get GPS, heart rate, power streams for an activity | Read |\n| `strava_upload_activity_photo` | Attach a photo to an activity | Write |\n\n### Activity Comments & Kudos\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_list_activity_comments` | List comments on an activity | Read |\n| `strava_create_activity_comment` | Add a comment to an activity | Write |\n| `strava_list_activity_kudos` | List kudos given to an activity | Read |\n| `strava_give_kudos_to_activity` | Give kudos to an activity | Write |\n| `strava_delete_kudos_from_activity` | Remove kudos from an activity | Write |\n\n### Routes\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_list_routes` | List the athlete's saved routes | Read |\n| `strava_get_route` | Get details and segments for a route | Read |\n| `strava_create_route` | Create a new route | Write |\n| `strava_update_route` | Update a route's name or description | Write |\n| `strava_delete_route` | Delete a route | Write |\n\n### Segments\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_get_segment` | Get a segment's leaderboard and details | Read |\n| `strava_list_segment_efforts` | List efforts on a segment by an athlete | Read |\n| `strava_get_segment_effort` | Get a specific segment effort | Read |\n| `strava_explore_segments` | Explore segments in a geographic area | Read |\n| `strava_star_segment` | Star/favorite a segment | Write |\n| `strava_unstar_segment` | Remove a star from a segment | Write |\n| `strava_list_starred_segments` | List the athlete's starred segments | Read |\n\n### Clubs\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_get_club` | Get a club's profile | Read |\n| `strava_list_club_activities` | List recent activities in a club | Read |\n| `strava_list_club_members` | List members of a club | Read |\n| `strava_join_club` | Request to join a club | Write |\n| `strava_leave_club` | Leave a club | Write |\n\n### Gear & Equipment\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_get_equipment` | Get details for a piece of equipment | Read |\n| `strava_create_equipment` | Add new equipment (bike, shoes) | Write |\n| `strava_update_equipment` | Update equipment name or retired status | Write |\n| `strava_delete_equipment` | Delete equipment | Write |\n| `strava_list_athlete_equipment` | List all equipment for an athlete | Read |\n\n### Uploads\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_upload_file` | Upload a FIT, GPX, or TCX activity file | Write |\n| `strava_get_upload_status` | Check the status of an activity upload | Read |\n\n## Code Examples\n\n### Get athlete stats\n\n```bash\nclawlink_call_tool --tool \"strava_get_athlete_stats\" \\\n  --params '{\"athlete_id\": \"ATHLETE_ID\"}'\n```\n\n### List recent activities\n\n```bash\nclawlink_call_tool --tool \"strava_list_activities\" \\\n  --params '{\n    \"limit\": 10,\n    \"after\": 1704067200\n  }'\n```\n\n### Get activity details\n\n```bash\nclawlink_call_tool --tool \"strava_get_activity\" \\\n  --params '{\n    \"activity_id\": \"ACTIVITY_ID\"\n  }'\n```\n\n### Explore segments in an area\n\n```bash\nclawlink_call_tool --tool \"strava_explore_segments\" \\\n  --params '{\n    \"bounds\": [37.8, -122.5, 37.9, -122.4],\n    \"activity_type\": \"running\"\n  }'\n```\n\n### Star a segment\n\n```bash\nclawlink_call_tool --tool \"strava_star_segment\" \\\n  --params '{\n    \"segment_id\": \"SEGMENT_ID\"\n  }'\n```\n\n### Get club activities\n\n```bash\nclawlink_call_tool --tool \"strava_list_club_activities\" \\\n  --params '{\n    \"club_id\": \"CLUB_ID\",\n    \"limit\": 20\n  }'\n```\n\n## Discovery Workflow\n\n1. Call `clawlink_list_integrations` to confirm Strava is connected.\n2. Call `clawlink_list_tools --integration strava` to see the live catalog.\n3. Treat the returned list as the source of truth. Do not guess or assume what tools exist.\n4. If the user describes a capability but the exact tool is unclear, call `clawlink_search_tools` with a short query and integration `strava`.\n5. If no Strava tools appear, direct the user to https://claw-link.dev/dashboard?add=strava.\n\n## Execution Workflow\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│  READ OPERATIONS (Safe)                                     │\n│  list → get → explore → describe                           │\n│                                                             │\n│  Example: List activities → Get activity streams → Analyze │\n└─────────────────────────────────────────────────────────────┘\n                              │\n                              ▼\n┌─────────────────────────────────────────────────────────────┐\n│  WRITE OPERATIONS (Require Confirmation)                    │\n│  describe → preview → confirm → call                       │\n│                                                             │\n│  Example: Preview activity upload → User approves → Upload │\n└─────────────────────────────────────────────────────────────┘\n```\n\n1. For unfamiliar tools, ambiguous requests, or any write action, call `clawlink_describe_tool` first.\n2. Use the returned guidance, schema, `whenToUse`, `askBefore`, `safeDefaults`, `examples`, and `followups` to shape the call.\n3. Prefer read, list, get, and explore operations before writes when that reduces ambiguity.\n4. For writes or anything marked as requiring confirmation, call `clawlink_preview_tool` first.\n5. Execute with `clawlink_call_tool`. Pass confirmation only after the preview matches the user's intent.\n6. If the tool call fails, report the real error. Do not invent results or restate the failure as a missing capability unless the live catalog supports that conclusion.\n\n## Notes\n\n- Activity uploads (FIT, GPX, TCX) are processed asynchronously — check upload status with `strava_get_upload_status`.\n- Segment explore uses bounding box coordinates: `[southwest_lat, southwest_lng, northeast_lat, northeast_lng]`.\n- Activity privacy controls may hide some data from API responses for private activities.\n- Upload file size limits apply — compressed FIT files are preferred over raw GPX for large activities.\n- Heart rate and power data availability depends on the device used to record the activity.\n- Activity types include: `run`, `ride`, `swim`, `workout`, `hike`, `walk`, and others.\n\n## Error Handling\n\n| Status / Error | Meaning |\n|----------------|---------|\n| Tool not found | The tool name does not exist in the current catalog. Verify with `clawlink_list_tools --integration strava`. |\n| Missing connection | Strava is not connected. Direct the user to https://claw-link.dev/dashboard?add=strava. |\n| `Activity not found` | The activity ID does not exist or belongs to another athlete. |\n| `Segment not found` | The segment ID does not exist in Strava's database. |\n| `Upload in progress` | The file upload is still being processed. Check status with `strava_get_upload_status`. |\n| `Upload failed` | The file format is invalid or the upload processing failed. |\n| `403 Forbidden` | The connected account lacks permission for this operation. |\n| `Rate limited` | Too many requests — wait before retrying. |\n| Write rejected | User did not confirm a write action. Always confirm before executing writes. |\n\n### Troubleshooting: Tools Not Visible\n\n1. Check that the ClawLink plugin is installed:\n   ```bash\n   openclaw plugins list\n   ```\n2. If the plugin is installed but tools are missing, tell the user to send `/new` as a standalone message to reload the catalog.\n3. If a fresh chat does not help, run:\n   ```bash\n   openclaw config set tools.alsoAllow '[\"clawlink-plugin\"]' --strict-json\n   openclaw gateway restart\n   ```\n4. After restart, tell the user to send `/new` again and retry.\n\n### Troubleshooting: Upload Fails\n\n1. Confirm the file is a valid FIT, GPX, or TCX format.\n2. Check the file size — very large files may fail to process.\n3. Wait and poll `strava_get_upload_status` — processing can take several seconds for large files.\n4. Verify the activity data is valid (GPS coordinates, timestamps).\n\n## Resources\n\n- [Strava API Documentation](https://developers.strava.com/docs/reference/)\n- [Strava API Overview](https://developers.strava.com/)\n- [Strava Authentication](https://developers.strava.com/docs/auth/)\n- ClawLink: https://claw-link.dev\n- ClawLink Docs: https://docs.claw-link.dev/openclaw\n- ClawLink Verification: https://claw-link.dev/verify\n\n---\n\n**Powered by [ClawLink](https://claw-link.dev)** — an integration hub for OpenClaw\n\n![ClawLink Logo](https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/logo/link_logo_black_small.png)\n\nFile v0.2.1:_meta.json\n\n{\n  \"ownerId\": \"kn713pxvayh8fjhb503zjb8yxh815j54\",\n  \"slug\": \"strava-activities\",\n  \"version\": \"0.2.1\",\n  \"publishedAt\": 1780840344160\n}\n\nFile v0.2.1:skill-card.md\n\n## Description: <br>\nTrack and manage Strava workouts, athlete stats, routes, segments, and club activities via the Strava API. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[hith3sh](https://clawhub.ai/user/hith3sh) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and developers use this skill to connect a Strava account through ClawLink, review workouts and athlete data, explore routes and segments, and manage activities or club data when approved. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill requires OAuth access to a user's Strava account through ClawLink. <br>\nMitigation: Install only if comfortable connecting Strava through ClawLink, review OAuth scopes during setup, and keep access scoped to the connected account. <br>\nRisk: Approved write operations can create, update, upload, or delete Strava data. <br>\nMitigation: Preview and confirm write or delete actions carefully before execution. <br>\nRisk: Some operations depend on account permissions, ownership of uploaded activity data, or club admin privileges. <br>\nMitigation: Verify the connected account has the required rights and report real permission errors instead of assuming a capability is unavailable. <br>\n\n\n## Reference(s): <br>\n- [Strava API Documentation](https://developers.strava.com/docs/reference/) <br>\n- [Strava API Overview](https://developers.strava.com/) <br>\n- [Strava Authentication](https://developers.strava.com/docs/auth/) <br>\n- [ClawLink Docs](https://docs.claw-link.dev/openclaw) <br>\n- [ClawLink Verification](https://claw-link.dev/verify) <br>\n- [ClawHub Skill Page](https://clawhub.ai/hith3sh/strava-activities) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, Guidance, API calls] <br>\n**Output Format:** [Markdown guidance with inline shell commands and JSON tool parameters] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May include OAuth setup steps, Strava tool names, and confirmation guidance for write actions.] <br>\n\n## Skill Version(s): <br>\n0.2.1 (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, 6181 bytes\n\nFiles: skill-card.md (2596b), SKILL.md (15100b), _meta.json (136b)\n\nFile v0.2.0:SKILL.md\n\n---\nname: strava-activities\ndescription: Track and manage Strava workouts, athlete stats, routes, segments, and club activities via the Strava API. Use this skill when users want to log activities, review athletic performance, explore routes, or manage club data in Strava.\n---\n\n# Strava\n\nTrack and manage Strava activities, athlete data, routes, segments, and club activity from chat via the Strava API.\n\nThis skill uses [ClawLink](https://claw-link.dev) for hosted connection flows and credentials so you do not need to configure Strava API access yourself.\n\n### Setup in 3 Steps\n\n| Step 1: Install | Step 2: Pair Account | Step 3: Connect Strava |\n|:---:|:---:|:---:|\n| ![Install](https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/pairing/initialstep_1.gif) | ![Pair](https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/approve_process.gif) | *App-specific connection GIF coming soon* |\n| Run the install command in OpenClaw | Sign in and approve the device | Open the dashboard and connect Strava |\n\n## How It Works\n\n```\n┌─────────────────┐     ┌──────────────┐     ┌──────────────────┐\n│   OpenClaw      │────▶│   ClawLink   │────▶│   Strava API     │\n│   (User Chat)   │     │   (OAuth)    │     │                  │\n└─────────────────┘     └──────────────┘     └──────────────────┘\n         │                       │                       │\n         │  1. Install Plugin    │                       │\n         │  2. Pair Device       │                       │\n         │  3. Connect Strava    │                       │\n         │                       │  4. Secure Token      │\n         │                       │  5. Proxy Requests    │\n         │                       │                       │\n         ▼                       ▼                       ▼\n   ┌──────────┐           ┌──────────┐           ┌──────────┐\n   │  SKILL   │           │ Dashboard│           │  Strava  │\n   │  File    │           │ Auth     │           │  Account │\n   └──────────┘           └──────────┘           └──────────┘\n```\n\n## Install\n\nInstall the verified ClawLink plugin from ClawHub. After the user confirms, complete the full setup so ClawLink tools are visible in the next OpenClaw chat.\n\n```bash\nopenclaw plugins install clawhub:clawlink-plugin\nopenclaw config set tools.alsoAllow '[\"clawlink-plugin\"]' --strict-json\nopenclaw gateway restart\n```\n\nThen tell the user: \"OpenClaw has been restarted. Send `/new` as a standalone message to start a fresh chat, then ask for Strava again.\"\n\n## Quick Start\n\n```bash\n# Get athlete profile\nclawlink_call_tool --tool \"strava_get_athlete\" --params '{}'\n\n# List recent activities\nclawlink_call_tool --tool \"strava_list_activities\" --params '{\"limit\": 10}'\n\n# Get activity details\nclawlink_call_tool --tool \"strava_get_activity\" --params '{\"activity_id\": \"ACTIVITY_ID\"}'\n```\n\n## Authentication\n\nAll Strava tool calls are authenticated automatically by ClawLink using the user's connected Strava account OAuth token.\n\n**No API token is required in chat.** ClawLink stores the OAuth token securely and injects it into every Strava API request on the user's behalf.\n\n### Getting Connected\n\n1. Install the ClawLink plugin (see Install above).\n2. Pair the plugin with `clawlink_begin_pairing` if it is not configured yet.\n3. Open https://claw-link.dev/dashboard?add=strava and connect Strava.\n4. Call `clawlink_list_integrations` to verify the connection is active.\n\n## Connection Management\n\n### List Connections\n\n```bash\nclawlink_list_integrations\n```\n\n**Response:** Returns all connected integrations. Look for `strava` in the list.\n\n### Verify Connection\n\n```bash\nclawlink_list_tools --integration strava\n```\n\n**Response:** Returns the live tool catalog for Strava.\n\n### Reconnect\n\nIf Strava tools are missing or the connection shows an error:\n\n1. Direct the user to https://claw-link.dev/dashboard?add=strava\n2. After they confirm, call `clawlink_list_integrations` to verify\n3. Then call `clawlink_list_tools --integration strava`\n\n## Security & Permissions\n\n- Access is scoped to the Strava account connected during OAuth setup and the scopes granted.\n- **Write operations (create activity, upload files, update settings) require explicit user confirmation.**\n- Activity upload requires the user to own the data being uploaded.\n- Club management operations may require club admin privileges.\n\n## Tool Reference\n\n### Athlete\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_get_athlete` | Get the authenticated athlete's profile | Read |\n| `strava_update_athlete` | Update athlete settings (sport type, timezone) | Write |\n| `strava_get_athlete_stats` | Get athlete statistics (distance, pace, heart rate zones) | Read |\n| `strava_get_athlete_zones` | Get heart rate and power zones | Read |\n| `strava_get_athlete_clubs` | List clubs the athlete is a member of | Read |\n\n### Activities\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_list_activities` | List the athlete's activities with pagination | Read |\n| `strava_get_activity` | Get details for a specific activity | Read |\n| `strava_create_activity` | Create a manual activity entry | Write |\n| `strava_update_activity` | Update an activity's name, description, or privacy | Write |\n| `strava_delete_activity` | Delete an activity permanently | Write |\n| `strava_get_activity_zones` | Get splits and heart rate/power zones for an activity | Read |\n| `strava_get_activity_laps` | Get lap data for an activity | Read |\n| `strava_get_activity_streams` | Get GPS, heart rate, power streams for an activity | Read |\n| `strava_upload_activity_photo` | Attach a photo to an activity | Write |\n\n### Activity Comments & Kudos\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_list_activity_comments` | List comments on an activity | Read |\n| `strava_create_activity_comment` | Add a comment to an activity | Write |\n| `strava_list_activity_kudos` | List kudos given to an activity | Read |\n| `strava_give_kudos_to_activity` | Give kudos to an activity | Write |\n| `strava_delete_kudos_from_activity` | Remove kudos from an activity | Write |\n\n### Routes\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_list_routes` | List the athlete's saved routes | Read |\n| `strava_get_route` | Get details and segments for a route | Read |\n| `strava_create_route` | Create a new route | Write |\n| `strava_update_route` | Update a route's name or description | Write |\n| `strava_delete_route` | Delete a route | Write |\n\n### Segments\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_get_segment` | Get a segment's leaderboard and details | Read |\n| `strava_list_segment_efforts` | List efforts on a segment by an athlete | Read |\n| `strava_get_segment_effort` | Get a specific segment effort | Read |\n| `strava_explore_segments` | Explore segments in a geographic area | Read |\n| `strava_star_segment` | Star/favorite a segment | Write |\n| `strava_unstar_segment` | Remove a star from a segment | Write |\n| `strava_list_starred_segments` | List the athlete's starred segments | Read |\n\n### Clubs\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_get_club` | Get a club's profile | Read |\n| `strava_list_club_activities` | List recent activities in a club | Read |\n| `strava_list_club_members` | List members of a club | Read |\n| `strava_join_club` | Request to join a club | Write |\n| `strava_leave_club` | Leave a club | Write |\n\n### Gear & Equipment\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_get_equipment` | Get details for a piece of equipment | Read |\n| `strava_create_equipment` | Add new equipment (bike, shoes) | Write |\n| `strava_update_equipment` | Update equipment name or retired status | Write |\n| `strava_delete_equipment` | Delete equipment | Write |\n| `strava_list_athlete_equipment` | List all equipment for an athlete | Read |\n\n### Uploads\n\n| Tool | Description | Mode |\n|------|-------------|------|\n| `strava_upload_file` | Upload a FIT, GPX, or TCX activity file | Write |\n| `strava_get_upload_status` | Check the status of an activity upload | Read |\n\n## Code Examples\n\n### Get athlete stats\n\n```bash\nclawlink_call_tool --tool \"strava_get_athlete_stats\" \\\n  --params '{\"athlete_id\": \"ATHLETE_ID\"}'\n```\n\n### List recent activities\n\n```bash\nclawlink_call_tool --tool \"strava_list_activities\" \\\n  --params '{\n    \"limit\": 10,\n    \"after\": 1704067200\n  }'\n```\n\n### Get activity details\n\n```bash\nclawlink_call_tool --tool \"strava_get_activity\" \\\n  --params '{\n    \"activity_id\": \"ACTIVITY_ID\"\n  }'\n```\n\n### Explore segments in an area\n\n```bash\nclawlink_call_tool --tool \"strava_explore_segments\" \\\n  --params '{\n    \"bounds\": [37.8, -122.5, 37.9, -122.4],\n    \"activity_type\": \"running\"\n  }'\n```\n\n### Star a segment\n\n```bash\nclawlink_call_tool --tool \"strava_star_segment\" \\\n  --params '{\n    \"segment_id\": \"SEGMENT_ID\"\n  }'\n```\n\n### Get club activities\n\n```bash\nclawlink_call_tool --tool \"strava_list_club_activities\" \\\n  --params '{\n    \"club_id\": \"CLUB_ID\",\n    \"limit\": 20\n  }'\n```\n\n## Discovery Workflow\n\n1. Call `clawlink_list_integrations` to confirm Strava is connected.\n2. Call `clawlink_list_tools --integration strava` to see the live catalog.\n3. Treat the returned list as the source of truth. Do not guess or assume what tools exist.\n4. If the user describes a capability but the exact tool is unclear, call `clawlink_search_tools` with a short query and integration `strava`.\n5. If no Strava tools appear, direct the user to https://claw-link.dev/dashboard?add=strava.\n\n## Execution Workflow\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│  READ OPERATIONS (Safe)                                     │\n│  list → get → explore → describe                           │\n│                                                             │\n│  Example: List activities → Get activity streams → Analyze │\n└─────────────────────────────────────────────────────────────┘\n                              │\n                              ▼\n┌─────────────────────────────────────────────────────────────┐\n│  WRITE OPERATIONS (Require Confirmation)                    │\n│  describe → preview → confirm → call                       │\n│                                                             │\n│  Example: Preview activity upload → User approves → Upload │\n└─────────────────────────────────────────────────────────────┘\n```\n\n1. For unfamiliar tools, ambiguous requests, or any write action, call `clawlink_describe_tool` first.\n2. Use the returned guidance, schema, `whenToUse`, `askBefore`, `safeDefaults`, `examples`, and `followups` to shape the call.\n3. Prefer read, list, get, and explore operations before writes when that reduces ambiguity.\n4. For writes or anything marked as requiring confirmation, call `clawlink_preview_tool` first.\n5. Execute with `clawlink_call_tool`. Pass confirmation only after the preview matches the user's intent.\n6. If the tool call fails, report the real error. Do not invent results or restate the failure as a missing capability unless the live catalog supports that conclusion.\n\n## Notes\n\n- Activity uploads (FIT, GPX, TCX) are processed asynchronously — check upload status with `strava_get_upload_status`.\n- Segment explore uses bounding box coordinates: `[southwest_lat, southwest_lng, northeast_lat, northeast_lng]`.\n- Activity privacy controls may hide some data from API responses for private activities.\n- Upload file size limits apply — compressed FIT files are preferred over raw GPX for large activities.\n- Heart rate and power data availability depends on the device used to record the activity.\n- Activity types include: `run`, `ride`, `swim`, `workout`, `hike`, `walk`, and others.\n\n## Error Handling\n\n| Status / Error | Meaning |\n|----------------|---------|\n| Tool not found | The tool name does not exist in the current catalog. Verify with `clawlink_list_tools --integration strava`. |\n| Missing connection | Strava is not connected. Direct the user to https://claw-link.dev/dashboard?add=strava. |\n| `Activity not found` | The activity ID does not exist or belongs to another athlete. |\n| `Segment not found` | The segment ID does not exist in Strava's database. |\n| `Upload in progress` | The file upload is still being processed. Check status with `strava_get_upload_status`. |\n| `Upload failed` | The file format is invalid or the upload processing failed. |\n| `403 Forbidden` | The connected account lacks permission for this operation. |\n| `Rate limited` | Too many requests — wait before retrying. |\n| Write rejected | User did not confirm a write action. Always confirm before executing writes. |\n\n### Troubleshooting: Tools Not Visible\n\n1. Check that the ClawLink plugin is installed:\n   ```bash\n   openclaw plugins list\n   ```\n2. If the plugin is installed but tools are missing, tell the user to send `/new` as a standalone message to reload the catalog.\n3. If a fresh chat does not help, run:\n   ```bash\n   openclaw config set tools.alsoAllow '[\"clawlink-plugin\"]' --strict-json\n   openclaw gateway restart\n   ```\n4. After restart, tell the user to send `/new` again and retry.\n\n### Troubleshooting: Upload Fails\n\n1. Confirm the file is a valid FIT, GPX, or TCX format.\n2. Check the file size — very large files may fail to process.\n3. Wait and poll `strava_get_upload_status` — processing can take several seconds for large files.\n4. Verify the activity data is valid (GPS coordinates, timestamps).\n\n## Resources\n\n- [Strava API Documentation](https://developers.strava.com/docs/reference/)\n- [Strava API Overview](https://developers.strava.com/)\n- [Strava Authentication](https://developers.strava.com/docs/auth/)\n- ClawLink: https://claw-link.dev\n- ClawLink Docs: https://docs.claw-link.dev/openclaw\n- ClawLink Verification: https://claw-link.dev/verify\n\n---\n\n**Powered by [ClawLink](https://claw-link.dev)** — an integration hub for OpenClaw\n\n![ClawLink Logo](https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/logo/link_logo_black_small.png)\n\nFile v0.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn713pxvayh8fjhb503zjb8yxh815j54\",\n  \"slug\": \"strava-activities\",\n  \"version\": \"0.2.0\",\n  \"publishedAt\": 1780839678384\n}\n\nFile v0.2.0:skill-card.md\n\n## Description: <br>\nTrack and manage Strava workouts, athlete stats, routes, segments, and club activities via the Strava API. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[hith3sh](https://clawhub.ai/user/hith3sh) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal OpenClaw users use this skill to connect a Strava account through ClawLink, inspect athlete data, activities, routes, segments, clubs, and equipment, and perform confirmed Strava write actions such as creating activities or updating routes. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill can access sensitive Strava account data through OAuth. <br>\nMitigation: Install only when the user intends to connect Strava, review granted OAuth scopes during connection, and use the connected account as the access boundary. <br>\nRisk: Write actions can create, update, delete, upload, or change Strava account content. <br>\nMitigation: Use ClawLink previews and require explicit user confirmation before any write, upload, update, or delete action. <br>\nRisk: The live Strava tool catalog may differ from documented examples. <br>\nMitigation: Confirm the active integration and tool list with ClawLink before choosing a tool, and report real tool errors instead of assuming capabilities. <br>\n\n\n## Reference(s): <br>\n- [Strava API Documentation](https://developers.strava.com/docs/reference/) <br>\n- [Strava API Overview](https://developers.strava.com/) <br>\n- [Strava Authentication](https://developers.strava.com/docs/auth/) <br>\n- [ClawLink OpenClaw Documentation](https://docs.claw-link.dev/openclaw) <br>\n- [ClawLink Verification](https://claw-link.dev/verify) <br>\n- [ClawHub Skill Page](https://clawhub.ai/hith3sh/strava-activities) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown with inline shell commands and JSON tool parameters] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May propose or execute Strava read actions through ClawLink; write, upload, update, and delete actions require explicit user confirmation.] <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, 3558 bytes\n\nFiles: skill-card.md (2430b), SKILL.md (5061b), _meta.json (136b)\n\nFile v0.1.0:SKILL.md\n\n---\nname: strava-activities\ndescription: Track workouts, inspect athlete data, explore routes or segments, and manage club activity in Strava - powered by ClawLink.\n---\n\n# Strava\n\nWork with Strava from chat - list activities, inspect athlete stats, explore routes and segments, and review club activity.\n\nPowered by [ClawLink](https://claw-link.dev), an integration hub for OpenClaw that handles hosted connection flows and credentials so you don't need to configure Strava API access yourself.\n\n## Quick start\n\n1. Install the verified ClawLink plugin: `openclaw plugins install clawhub:clawlink-plugin`\n2. Start a fresh OpenClaw chat if the plugin was just installed and ClawLink tools are not visible yet\n3. If ClawLink is not configured, call `clawlink_begin_pairing`\n4. Tell the user to open the returned pairing URL, sign in to ClawLink if needed, and approve the device\n5. After the user confirms approval, call `clawlink_get_pairing_status`\n6. Tell the user to connect Strava at [claw-link.dev/dashboard?add=strava](https://claw-link.dev/dashboard?add=strava)\n7. When the user confirms Strava is connected, call `clawlink_list_integrations` and then `clawlink_list_tools` with the `strava` integration slug\n\n## Setup details\n\n### Installing the plugin\n\nIf the ClawLink plugin is not installed yet, tell the user to run:\n\n```\nopenclaw plugins install clawhub:clawlink-plugin\n```\n\nIf the current chat started before the plugin was installed and ClawLink tools are still unavailable, tell the user to start a fresh chat so OpenClaw reloads the plugin tool catalog.\n\n### Pairing ClawLink\n\nIf ClawLink reports that the plugin is not configured, the plugin has not been paired with the user's ClawLink account yet.\n\n1. Call `clawlink_begin_pairing`.\n2. Tell the user to open the returned pairing URL in their browser.\n3. The user signs in to ClawLink if needed and approves the OpenClaw device.\n4. After the user confirms approval, call `clawlink_get_pairing_status` to finish local setup.\n\nThe resulting device credential is stored locally in OpenClaw's plugin config and is only sent to `claw-link.dev`. The user should not paste raw credentials into chat.\n\n### Connecting Strava\n\nTell the user to open https://claw-link.dev/dashboard?add=strava and connect Strava there. The page opens the add-connection panel filtered to Strava. ClawLink's hosted page runs the Strava provider connection flow. When they confirm it is done, call `clawlink_list_integrations` to verify, then call `clawlink_list_tools` with integration `strava`.\n\n## Using Strava tools\n\nClawLink provides tools dynamically based on what the user has connected. You do not need to know tool names or schemas in advance.\n\n### Discovery\n\n1. Call `clawlink_list_integrations` to confirm Strava is connected.\n2. Call `clawlink_list_tools` with integration `strava`.\n3. Treat the returned list as the source of truth. Do not guess or assume what tools exist.\n4. If the user describes a capability but the exact tool is unclear, call `clawlink_search_tools` with a short query and integration `strava`.\n5. If no Strava tools appear, direct the user to https://claw-link.dev/dashboard?add=strava.\n\n### Execution\n\n1. Call `clawlink_describe_tool` before using an unfamiliar tool, before any write, or when the request is ambiguous.\n2. Use the returned schema, `whenToUse`, `askBefore`, `safeDefaults`, `examples`, and `followups`.\n3. Prefer athlete, activity, route, segment, and club reads before creating or uploading activity data.\n4. For writes or anything marked as requiring confirmation, call `clawlink_preview_tool` first, then confirm with the user.\n5. Execute with `clawlink_call_tool`.\n6. If it fails, report the real error. Do not invent results or restate the failure as a missing capability unless the live catalog supports that conclusion.\n\n## What you can do\n\nTypical Strava tasks (actual availability depends on the user's connected account, permissions, scopes, and current ClawLink tool catalog):\n\n- List athlete activities and inspect activity details\n- Review activity streams, laps, and heart-rate or power zones\n- Get athlete profile data and summary stats\n- Explore routes, segments, and club activity\n- Create manual activities or upload activity files after confirmation\n\n## Rules\n\n- Always use ClawLink tools for Strava. Do not ask the user for separate Strava credentials.\n- Do not claim a capability is missing without checking the live ClawLink catalog in the current turn.\n- Do not invent slash commands or ask the user to paste raw credentials.\n- Ask for confirmation before creating activities, uploading files, or changing external fitness data.\n- If Strava is not connected, direct the user to https://claw-link.dev/dashboard?add=strava.\n- Never echo or repeat the user's ClawLink credential.\n\n## Resources\n\n- ClawLink: https://claw-link.dev\n- ClawLink Docs: https://docs.claw-link.dev/openclaw\n- ClawLink Verification: https://claw-link.dev/verify\n- ClawLink Source: https://github.com/hith3sh/clawlink\n- Strava API: https://developers.strava.com/docs/reference/\n\nFile v0.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn713pxvayh8fjhb503zjb8yxh815j54\",\n  \"slug\": \"strava-activities\",\n  \"version\": \"0.1.0\",\n  \"publishedAt\": 1779633072851\n}\n\nFile v0.1.0:skill-card.md\n\n## Description: <br>\nTrack workouts, inspect athlete data, explore routes or segments, and manage club activity in Strava - powered by ClawLink. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[hith3sh](https://clawhub.ai/user/hith3sh) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and developers use this skill to connect Strava through ClawLink, discover available Strava tools, inspect athlete and activity data, and perform write-capable fitness-data actions only after preview and confirmation. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Write-capable Strava actions can create, upload, or change external fitness data. <br>\nMitigation: Preview write actions with ClawLink and require explicit user confirmation before execution. <br>\nRisk: Connection setup involves ClawLink device credentials and a hosted Strava connection flow. <br>\nMitigation: Use the ClawLink pairing and dashboard flow, avoid asking for raw Strava credentials, and never echo ClawLink credentials back to chat. <br>\nRisk: Available Strava capabilities can vary by connected account, permissions, scopes, and the current ClawLink catalog. <br>\nMitigation: Discover integrations and tools in the current turn and treat the live ClawLink catalog as authoritative. <br>\n\n\n## Reference(s): <br>\n- [ClawLink](https://claw-link.dev) <br>\n- [ClawLink Docs](https://docs.claw-link.dev/openclaw) <br>\n- [ClawLink Verification](https://claw-link.dev/verify) <br>\n- [ClawLink Source](https://github.com/hith3sh/clawlink) <br>\n- [Strava API](https://developers.strava.com/docs/reference/) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Guidance, Shell commands, Configuration instructions, API Calls] <br>\n**Output Format:** [Markdown guidance with inline shell commands and ClawLink tool calls] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Uses live ClawLink tool discovery and schemas as the source of truth for available Strava actions.] <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: Strava Owner: hith3sh Summary: Track and manage Strava workouts, athlete stats, routes, segments, and club activities via the Strava API. Use this skill when users want to log activities,... Tags: latest:1.0.5 Version history: v1.0.5 | 2026-06-09T07:19:15.539Z | user Add UTM attribution tags (utm_source=clawhub) to ClawLink branding links so visits from this skill page are tracked as a distinct traffic source.","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"┌─────────────────┐     ┌──────────────┐     ┌──────────────────┐\n│   OpenClaw      │────▶│   ClawLink   │────▶│   Strava API     │\n│   (User Chat)   │     │   (OAuth)    │     │                  │\n└─────────────────┘     └──────────────┘     └──────────────────┘\n         │                       │                       │\n         │  1. Install Plugin    │                       │\n         │  2. Pair Device       │                       │\n         │  3. Connect Strava    │                       │\n         │                       │  4. Secure Token      │\n         │                       │  5. Proxy Requests    │\n         │                       │                       │\n         ▼                       ▼                       ▼\n   ┌──────────┐           ┌──────────┐           ┌──────────┐\n   │  SKILL   │           │ Dashboard│           │  Strava  │\n   │  File    │           │ Auth     │           │  Account │\n   └──────────┘           └──────────┘           └──────────┘"},{"language":"bash","snippet":"openclaw plugins install clawhub:clawlink-plugin\nopenclaw config set tools.alsoAllow '[\"clawlink-plugin\"]' --strict-json\nopenclaw gateway restart"},{"language":"bash","snippet":"# Get athlete profile\nclawlink_call_tool --tool \"strava_get_athlete\" --params '{}'\n\n# List recent activities\nclawlink_call_tool --tool \"strava_list_activities\" --params '{\"limit\": 10}'\n\n# Get activity details\nclawlink_call_tool --tool \"strava_get_activity\" --params '{\"activity_id\": \"ACTIVITY_ID\"}'"},{"language":"bash","snippet":"clawlink_list_integrations"},{"language":"bash","snippet":"clawlink_list_tools --integration strava"},{"language":"bash","snippet":"clawlink_call_tool --tool \"strava_get_athlete_stats\" \\\n  --params '{\"athlete_id\": \"ATHLETE_ID\"}'"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: strava-activities\ndescription: Track and manage Strava workouts, athlete stats, routes, segments, and club activities via the Strava API. Use this skill when users want to log activities, review athletic performance, explore routes, or manage club data in Strava.\n---\n\n# Strava\n\n![Strava](https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/brand-logos/strava.svg)\n\nTrack and manage Strava activities, athlete data, routes, segments, and club activity from chat via the Strava API.\n\nThis skill uses [ClawLink](https://claw-link.dev/?utm_source=clawhub&utm_medium=referral&utm_content=strava-activities) for hosted connection flows and credentials so you do not need to configure Strava API access yourself.\n\n### Setup in 3 Steps\n\n| Step 1: Install | Step 2: Pair Account | Step 3: Connect Strava |\n|:---:|:---:|:---:|\n| ![Install](https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/pairing/initialstep_1.gif) | ![Pair](https://raw.githubusercontent.com/ClawLink-HQ/clawlink/main/public/images/approve_process.gif) | *App-specific connection GIF coming soon* |\n| Run the install command in OpenClaw | Sign in and approve the device | Open the dashboard and connect Strava |\n\n## How It Works\n\n```\n┌─────────────────┐     ┌──────────────┐     ┌──────────────────┐\n│   OpenClaw      │────▶│   ClawLink   │────▶│   Strava API     │\n│   (User Chat)   │     │   (OAuth)    │     │                  │\n└─────────────────┘     └──────────────┘     └──────────────────┘\n         │                       │                       │\n         │  1. Install Plugin    │                       │\n         │  2. Pair Device       │                       │\n         │  3. Connect Strava    │                       │\n         │                       │  4. Secure Token      │\n         │                       │  5. Proxy Requests    │\n         │                       │                       │\n         ▼                       ▼                       ▼\n   ┌──────────┐           ┌──────────┐           ┌──────────┐\n   │  SKILL   │           │ Dashboard│           │  Strava  │\n   │  File    │           │ Auth     │           │  Account │\n   └──────────┘           └──────────┘           └──────────┘\n```\n\n## Install\n\nInstall the verified ClawLink plugin from ClawHub. After the user confirms, complete the full setup so ClawLink tools are visible in the next OpenClaw chat.\n\n```bash\nopenclaw plugins install clawhub:clawlink-plugin\nopenclaw config set tools.alsoAllow '[\"clawlink-plugin\"]' --strict-json\nopenclaw gateway restart\n```\n\nThen tell the user: \"OpenClaw has been restarted. Send `/new` as a standalone message to start a fresh chat, then ask for Strava again.\"\n\n## Quick Start\n\n```bash\n# Get athlete profile\nclawlink_call_tool --tool \"strava_get_athlete\" --params '{}'\n\n# List recent activities\nclawlink_call_tool --tool \"strava_list_activities\" --params '{\"limit\": 10}'\n\n# Get activity details\nclawlink_call_tool --tool \"strava_get_activity\" --params '{\"a"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn713pxvayh8fjhb503zjb8yxh815j54\",\n  \"slug\": \"strava-activities\",\n  \"version\": \"1.0.5\",\n  \"publishedAt\": 1780989555539\n}"},{"path":"skill-card.md","content":"## Description:\n\nTrack and manage Strava workouts, athlete stats, routes, segments, and club activities via the Strava API.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[hith3sh](https://clawhub.ai/user/hith3sh)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and developers use this skill to connect a Strava account through ClawLink, inspect activities and athlete data, explore routes and segments, and perform account-authorized Strava actions from an agent chat.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill asks users to install and allowlist an unpinned third-party plugin that can persist across chats and mediate sensitive Strava account access.\n\nMitigation: Install only if the user trusts ClawLink and the ClawHub plugin source; revoke the Strava connection and remove the plugin when it is no longer needed.\n\nRisk: Write operations can change or delete activities, routes, equipment, comments, kudos, and club membership.\n\nMitigation: Prefer read-only OAuth scopes where possible, describe and preview write actions, and execute them only after explicit user confirmation.\n\nRisk: Strava activity data may include sensitive fitness, location, route, and privacy-controlled account information.\n\nMitigation: Limit OAuth scopes to the user's intended task and avoid exposing private activity details unless the user has requested that access.\n\n## Reference(s):\n\n- [Strava API Documentation](https://developers.strava.com/docs/reference/)\n- [Strava API Overview](https://developers.strava.com/)\n- [Strava Authentication](https://developers.strava.com/docs/auth/)\n- [ClawLink](https://claw-link.dev/?utm_source=clawhub&utm_medium=referral&utm_content=strava-activities)\n- [ClawLink Docs](https://docs.claw-link.dev/openclaw)\n- [ClawLink Verification](https://claw-link.dev/verify)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Code, Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown with inline shell commands and JSON tool parameters]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Uses authenticated ClawLink Strava tools and should preview or confirm write actions before execution.]\n\n## Skill Version(s):\n\n1.0.5 (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":"Track and manage Strava workouts, athlete stats, routes, segments, and club activities via the Strava API. Use this skill when users want to log activities,... Skill: Strava Owner: hith3sh Summary: Track and manage Strava workouts, athlete stats, routes, segments, and club activities via the Strava API. Use this skill when users want to log activities,... Tags: latest:1.0.5 Version history: v1.0.5 | 2026-06-09T07:19:15.539Z | user Add UTM attribution tags (utm_source=clawhub) to ClawLink branding links so visits from this skill page are tracked as a distinct traffic source.","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1097,"uniquenessScore":49,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T14:41:31.767Z","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-09T14:41:31.767Z","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-09T20:52:31.522Z","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"}]}}}