You track every run on Strava. But checking your stats means opening the app, navigating through menus, and piecing together your own insights from the data.
This tutorial shows you how to connect Strava to OpenClaw, so you can ask your AI agent for activity summaries, training analysis, and weekly reports through any messaging app you use.
By the end, you’ll be able to send messages like “show me this week’s runs” or “compare my pace on segment XYZ” and get instant answers without leaving your chat.
What You’ll Build
An OpenClaw agent connected to your Strava account that can:
- Fetch recent activities and display summaries
- Analyze training patterns and volume trends
- Track performance on specific segments
- Generate weekly training reports
- Compare activities across time periods
All through natural language queries to Moltbot (your OpenClaw agent) on Telegram, WhatsApp, Discord, or any messaging platform you’ve configured.
Prerequisites
Before starting, make sure you have:
-
OpenClaw installed and running If you haven’t set it up yet, follow the Getting Started guide first. You need a working OpenClaw agent before adding Strava integration.
-
A Strava account You’ll need an existing Strava account with activity data. Free accounts work fine.
-
Strava API credentials You’ll create these in Step 1. No payment required.
-
A messaging channel configured Telegram, Discord, or WhatsApp connected to your OpenClaw agent.
Time commitment: 15-20 minutes for the full setup.
Understanding the Integration
The Strava integration works through a skill that connects your OpenClaw agent to the Strava API using OAuth2. Here’s what happens:
- You authorize your agent to access your Strava data
- The agent receives an access token that lets it read your activities
- When you ask about your training, the agent fetches data from Strava’s API
- Claude (the AI model powering OpenClaw) analyzes the data and responds in natural language
The integration is read-only. Your agent can view your activities and stats, but it cannot post activities or modify your Strava data.
Strava API Rate Limits
Strava limits API requests to 100 per 15 minutes and 1,000 per day. The OpenClaw skill is designed to stay well under these limits for typical personal use. Each query you make to your agent typically consumes 1-3 API calls depending on the complexity.
Step 1: Create a Strava API Application
First, register your OpenClaw agent as a Strava API application.
1. Navigate to Strava’s API Settings
Go to strava.com/settings/api and log in to your Strava account.
2. Create Your Application
Click “Create & Manage Your App” or “My API Application” (the exact text varies based on your account status).
Fill in the form:
| Field | What to Enter |
|---|---|
| Application Name | OpenClaw Agent (or any name you prefer) |
| Category | Choose Visualizer or Data Importer |
| Club | Leave blank unless you’re building for a specific club |
| Website | http://localhost (required field, but not used) |
| Authorization Callback Domain | localhost |
Accept the Strava API Agreement and submit.
3. Save Your Credentials
After creation, Strava displays your application details. You need two values:
- Client ID — A number like
123456 - Client Secret — A string like
abcdef1234567890abcdef1234567890
Keep these handy for Step 3.
Step 2: Install the Strava Skill
OpenClaw uses a modular skill system. The Strava integration is a skill you install from ClawHub.
Install via ClawHub
clawhub install strava-api
This downloads the strava-api skill to ~/.openclaw/skills/strava-api/ and adds it to your agent’s capabilities.
Verify Installation
Check that the skill loaded:
openclaw skills list | grep strava
You should see strava-api in the output.
What This Skill Does
The strava-api skill teaches your agent how to:
- Authenticate with Strava using OAuth2
- Fetch activity data (runs, rides, swims, etc.)
- Parse activity details (distance, pace, elevation, heart rate)
- Track segment performance over time
- Generate training summaries and comparisons
The skill is a single SKILL.md file that contains instructions for Claude on how to interact with the Strava API. You can read it at ~/.openclaw/skills/strava-api/SKILL.md if you want to see exactly what it does.
Step 3: Configure OAuth Credentials
Now connect your Strava API application to the OpenClaw skill.
Set Your Client ID and Secret
Use the values from Step 1:
openclaw config set skill.strava.client-id YOUR_CLIENT_ID
openclaw config set skill.strava.client-secret YOUR_CLIENT_SECRET
Replace YOUR_CLIENT_ID and YOUR_CLIENT_SECRET with the actual values from your Strava API application page.
Verify Configuration
Check that the credentials are set:
openclaw config get skill.strava.client-id
If it returns your Client ID, you’re configured correctly.
Step 4: Authorize Strava Access
Now authorize your OpenClaw agent to access your Strava data.
Start the OAuth Flow
Send this message to your agent (through Telegram, Discord, or your configured channel):
Authorize Strava
The agent responds with an authorization URL. It looks like:
https://www.strava.com/oauth/authorize?client_id=123456&response_type=code&redirect_uri=http://localhost:8888/callback&scope=activity:read_all
Complete Authorization
- Open the URL in your browser
- Log in to Strava if you’re not already logged in
- Review the permissions (the agent requests read access to your activities)
- Click “Authorize”
Strava redirects you to http://localhost:8888/callback?code=.... The page won’t load (that’s normal), but the URL contains an authorization code.
Copy the Authorization Code
Look at the URL in your browser’s address bar. Copy everything after code= and before the next & (if there is one).
Example URL:
http://localhost:8888/callback?code=abc123def456&scope=read,activity:read_all
The code is: abc123def456
Send the Code to Your Agent
Paste the code back to your agent:
Strava code: abc123def456
Your agent exchanges this code for an access token and confirms the connection is successful.
Step 5: Test the Integration
Now test that everything works.
Query Recent Activities
Show me my last 5 runs
Your agent fetches your recent runs from Strava and displays them in a summary format:
Recent Runs:
1. Morning Run - Feb 11, 2026
Distance: 8.2 km
Pace: 5:15 /km
Elevation: 120m
2. Easy Recovery - Feb 9, 2026
Distance: 5.0 km
Pace: 5:45 /km
Elevation: 45m
[...]
Ask for Training Analysis
What's my total distance this week?
Weekly Summary (Feb 5-11, 2026):
Total Distance: 42.3 km
Total Activities: 5 runs
Average Pace: 5:22 /km
Total Elevation: 580m
Active Days: 5 of 7
Check Segment Performance
How am I doing on the Main Street climb segment?
The agent fetches your segment efforts and shows your performance trend.
If these queries work, your integration is complete and ready to use.
What You Can Ask Your Agent
The Strava skill supports a wide range of queries. Here are the most useful ones.
Activity Summaries
| Query | What It Returns |
|---|---|
Show me today's run | Details of your most recent activity from today |
What did I do yesterday? | Activities from the previous day |
My last 10 activities | Summary of your 10 most recent activities |
Rides this month | All cycling activities from the current month |
Training Analysis
| Query | What It Returns |
|---|---|
Weekly summary | Total distance, time, elevation for the past 7 days |
Compare this week to last week | Week-over-week training volume comparison |
Monthly total | Aggregate stats for the current month |
How many kilometers in January? | Total distance for a specific month |
Performance Tracking
| Query | What It Returns |
|---|---|
My fastest 5k this year | Your best 5k time from year-to-date activities |
Show my pace trend | Average pace over recent activities with trend direction |
Longest run this month | Your longest activity by distance |
Segment Queries
| Query | What It Returns |
|---|---|
Segment performance for [segment name] | Your efforts on a specific segment with dates and times |
My best time on [segment] | Your PR for that segment |
Compare my times on [segment] | Trend analysis of your segment efforts |
Custom Reports
Generate a report of my training in February
The agent analyzes all your February activities and produces a structured report with totals, averages, and notable achievements.
Advanced Configuration
Automatic Weekly Reports
You can configure your agent to send weekly training summaries automatically.
Create a cron job (or use OpenClaw’s built-in scheduler if available):
# Send weekly summary every Monday at 8 AM
0 8 * * 1 openclaw send "Weekly Strava summary"
This sends the message to your agent, which triggers the Strava skill to generate and send you a training report.
Multi-Sport Athletes
If you do multiple sports (running, cycling, swimming), you can filter by type:
Show me all my rides this week
Only my runs from February
The skill understands activity types and filters accordingly.
Heart Rate and Power Data
If your Strava activities include heart rate or power data, you can query those metrics:
What was my average heart rate on yesterday's run?
Show me power data from Sunday's ride
The skill parses these fields when available and includes them in responses.
Troubleshooting
”Authorization failed” Error
If authorization doesn’t work:
-
Verify your Client ID and Secret are correct:
openclaw config get skill.strava.client-id openclaw config get skill.strava.client-secret -
Check that the authorization callback domain in your Strava API application is set to
localhost -
Make sure you copied the entire authorization code from the URL (no spaces or extra characters)
“No activities found” Response
If the agent says it can’t find activities:
-
Verify the authorization succeeded:
Check Strava connection -
Confirm you have activities on Strava by logging into the Strava website
-
Check the API scope — it should include
activity:read_all. Re-authorize if needed.
Rate Limit Errors
If you see errors about rate limits:
- You’ve exceeded 100 requests in 15 minutes or 1,000 in a day
- Wait for the limit to reset (shown in the error message)
- Avoid rapid-fire queries — batch your questions instead
Token Expiration
Strava access tokens expire after 6 hours. The skill automatically refreshes them using your refresh token. If you see authentication errors:
Re-authorize Strava
This starts a new OAuth flow and gets fresh tokens.
Alternative: Using Clawdbot Strava
If you’re running an older version of OpenClaw (pre-2.0), the skill might be named clawdbot-strava instead of strava-api. The installation and setup are identical, just use:
clawhub install clawdbot-strava
Configuration keys are the same (skill.strava.client-id and skill.strava.client-secret). OpenClaw and Clawdbot are the same framework — Clawdbot was renamed to OpenClaw in version 2.0.
Security Considerations
What Access the Agent Has
The Strava integration requests activity:read_all scope, which gives read-only access to your activities (including private activities). It cannot:
- Post new activities
- Modify or delete existing activities
- Access your personal profile information beyond basic details
- Interact with other Strava users on your behalf
Where Tokens Are Stored
Access tokens are stored in OpenClaw’s config directory (~/.openclaw/config/). This directory should have restricted permissions (readable only by your user account). Check with:
ls -la ~/.openclaw/config/
Permissions should show drwx------ (700) or similar — no access for other users.
Revoking Access
To revoke your agent’s access to Strava:
- Go to strava.com/settings/apps
- Find “OpenClaw Agent” (or whatever you named your application)
- Click “Revoke Access”
Your agent will immediately lose access. To reconnect, repeat Step 4 (authorization).
For broader security practices when running OpenClaw with third-party skills, read the ClawHub Security Guide.
Going Further
Custom Strava Skills
Want to add functionality the standard skill doesn’t cover? You can write your own Strava skill or extend the existing one.
The Strava API supports:
- Detailed activity streams (GPS data, cadence, watts)
- Training plan adherence tracking
- Gear and equipment usage
- Club activities and leaderboards
- Route planning data
Read the How to Build OpenClaw Skills guide for a walkthrough of the skill creation process, then check the Strava API documentation for endpoint details.
Combine with Other Skills
The real power comes from combining Strava data with other skills. Examples:
- fal-ai — Generate visualization graphics of your training volume
- smart-ocr — Extract splits from race photos
- diagram-gen — Create training plan diagrams
Install multiple skills and ask your agent to combine their capabilities:
Generate a chart showing my weekly mileage for the past 3 months
Your agent uses the Strava skill to fetch data and the visualization skill to create the chart.
Explore Other Integrations
If you found the Strava integration useful, check out other fitness and health integrations on Claw Directory:
- Garmin Connect — Pull data from Garmin devices
- Apple Health — Aggregate iOS Health app data
- MyFitnessPal — Nutrition tracking and calorie analysis
Browse by category: Health & Fitness Skills
Summary
| Step | Action | Command |
|---|---|---|
| 1 | Create Strava API application | strava.com/settings/api |
| 2 | Install Strava skill | clawhub install strava-api |
| 3 | Configure credentials | openclaw config set skill.strava.client-id YOUR_ID |
| 4 | Authorize access | Send “Authorize Strava” to your agent |
| 5 | Test integration | Send “Show me my last 5 runs” |
You now have a working connection between OpenClaw and Strava. Your AI agent can access your training data and answer questions through natural language queries, without opening the Strava app.
Start with basic queries like “weekly summary” or “show my runs this week.” As you get comfortable, try more complex analysis requests. The agent understands natural language, so phrase your questions however makes sense to you — it’ll figure out what you’re asking for.
For more ways to extend your OpenClaw agent, browse the Best Skills of 2026 or read What Is Claw AI for an overview of the entire ecosystem.