Automated summary
Queries Strava fitness data — activities, athlete stats, segments, routes, clubs and gear — through the `strava` CLI.
Strengths
- The `strava context` command bundles athlete, stats, gear, clubs and recent activities into a single call
- Broad surface area: date-filtered activity lists, streams, laps, zones, segments, efforts, routes and clubs
- Explicitly documents data units (meters, m/s, seconds, ISO8601) and exit codes, making output easier to interpret correctly
- Pairs naturally with jq for sport_type filtering and distance totals, and supports GPX/TCX route export
Limitations
- Requires installing a third-party CLI from a remote install script plus OAuth credentials (`STRAVA_CLIENT_ID`, `STRAVA_CLIENT_SECRET`) before anything works
- Raw values are SI units (meters, m/s), so km and km/h conversions are left to the user
- Read-only in practice: no activity upload, creation or editing is described
Use it when the user asks about their own Strava activities, training, stats, segments or routes and expects real data back.
Skip it when no Strava OAuth credentials are configured, or when the user wants to upload or edit activities rather than read them.
Security analysis
CautionThe document is a straightforward CLI reference for querying Strava data. There is no destructive behavior, no obfuscated payload, no instruction to exfiltrate tokens, and no safety-disabling. The only meaningful risks are the `curl | sh` install pattern (unpinned remote script executed by the shell) and handling of Strava OAuth credentials, which are standard for such integrations but warrant a caution rating rather than safe.
- •Prerequisite instructs installing the CLI via `curl -fsSL https://raw.githubusercontent.com/eddmann/strava-cli/main/install.sh | sh`, i.e. piping a remote, unpinned script directly into a shell — supply-chain risk with no checksum or version pinning.
- •Requires the user to supply `STRAVA_CLIENT_ID` and `STRAVA_CLIENT_SECRET` to authenticate, so the skill touches real OAuth secrets (though it does not instruct sending them anywhere).
- •Skill performs network calls to Strava and writes credential/token state locally (auth login/refresh/logout).
Examples
Pull my last 10 Strava activities and tell me my total running distance this month.Get activity 12345678901 from Strava and show my heart rate and power zones plus the lap breakdown.Export my Strava route 9876543 as a GPX file so I can load it onto my bike computer.name: strava description: Query Strava fitness data including activities, athlete stats, segments, routes, clubs, and gear. Use when the user asks about cycling, running, swimming, workouts, training, or Strava data.
Strava CLI Skill
Query and manage Strava data via the strava CLI.
Prerequisites
- Install CLI:
curl -fsSL https://raw.githubusercontent.com/eddmann/strava-cli/main/install.sh | sh - Authenticate:
strava auth login(requiresSTRAVA_CLIENT_ID,STRAVA_CLIENT_SECRET)
Quick Context
Get aggregated athlete data in one call:
strava context # Full context: athlete, stats, gear, clubs, activities
strava context --activities 10 # More recent activities
strava context --focus stats,gear # Specific sections only
Commands
Run strava --help or strava <command> --help to discover all options.
Activities
strava activities list [--after DATE] [--before DATE] [--limit N]
strava activities get <ID>
strava activities streams <ID> [--keys time,distance,heartrate,watts]
strava activities laps <ID>
strava activities zones <ID>
strava activities comments <ID>
strava activities kudos <ID>
Athlete
strava athlete # Profile
strava athlete stats # YTD and all-time totals
strava athlete zones # HR/power zones
Segments & Efforts
strava segments get <ID>
strava segments starred
strava segments explore --bounds SW_LAT,SW_LNG,NE_LAT,NE_LNG
strava efforts get <ID>
strava efforts list --segment-id <ID>
Routes, Clubs, Gear
strava routes list
strava routes get <ID>
strava routes streams <ID>
strava routes export <ID> --format gpx|tcx
strava clubs list
strava clubs get <ID>
strava clubs members <ID> [--limit N]
strava clubs activities <ID> [--limit N]
strava gear get <GEAR_ID>
Data Units
| Field | Unit | | ------------------------- | ------- | | distance | meters | | moving_time, elapsed_time | seconds | | average_speed, max_speed | m/s | | elevation | meters | | dates | ISO8601 |
Common Patterns
# Recent activities
strava activities list --limit 10
# This month's activities
strava activities list --after 2025-12-01
# Filter with jq
strava activities list | jq '[.[] | select(.sport_type=="Run")]'
# Total distance
strava activities list | jq '[.[].distance] | add'
Auth Status
strava auth status # Check if authenticated
strava auth refresh # Refresh token
strava auth logout # Clear credentials
Sport Types
Run, TrailRun, Walk, Hike, Ride, MountainBikeRide, GravelRide, EBikeRide, VirtualRide, VirtualRun, Swim, Workout, WeightTraining, Yoga, CrossFit, Rowing, Kayaking, Surf, Ski, Snowboard, IceSkate, Golf, Soccer, Tennis
Exit Codes
- 0 = Success
- 1 = General error
- 2 = Auth error (run
strava auth login)
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/query-strava-fitness-data-mrx3y0lq/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/query-strava-fitness-data-mrx3y0lq' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/query-strava-fitness-data-mrx3y0lq/download' --output '.skill-downloads/query-strava-fitness-data-mrx3y0lq/SKILL.md.part' && mv '.skill-downloads/query-strava-fitness-data-mrx3y0lq/SKILL.md.part' '.skill-downloads/query-strava-fitness-data-mrx3y0lq/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
Original excerpt: Prerequisites
- Install CLI:
curl -fsSL https://raw.githubusercontent.com/eddmann/strava-cli/main/install.sh | sh - Authenticate:
strava auth login(requiresSTRAVA_CLIENT_ID,STRAVA_CLIENT_SECRET)
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/query-strava-fitness-data-mrx3y0lq/SKILL.md' && test -s '.skill-downloads/query-strava-fitness-data-mrx3y0lq/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/strava' && cp -R '.skill-downloads/query-strava-fitness-data-mrx3y0lq' '.claude/skills/strava'Cursor
test -f '.skill-downloads/query-strava-fitness-data-mrx3y0lq/SKILL.md' && test -s '.skill-downloads/query-strava-fitness-data-mrx3y0lq/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/strava' && cp -R '.skill-downloads/query-strava-fitness-data-mrx3y0lq' '.cursor/skills/strava'Codex
test -f '.skill-downloads/query-strava-fitness-data-mrx3y0lq/SKILL.md' && test -s '.skill-downloads/query-strava-fitness-data-mrx3y0lq/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/strava' && cp -R '.skill-downloads/query-strava-fitness-data-mrx3y0lq' '.agents/skills/strava'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/query-strava-fitness-data-mrx3y0lq'openskills read 'query-strava-fitness-data-mrx3y0lq'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/query-strava-fitness-data-mrx3y0lq/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
PDF Reader
Productivity
Read and extract text from PDF files, including documents, reports, contracts, and spreadsheets. Works with local files, URLs, and WhatsApp attachments. Use whenever PDF content is needed, even if not explicitly requested.
Discord Messaging Workflows
Productivity
Use the message tool to send, edit, and moderate Discord messages with interactive components.
Interactive Verdict Preview
Productivity
Generate an interactive HTML preview of keep/drop verdicts for maintainer review, then process the pasted feedback JSON.