← Back to Skills Marketplace
ericrosenberg

Strava Cycling Coach

by EricRosenberg · GitHub ↗ · v1.0.0
cross-platform ⚠ suspicious
1801
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install strava-cycling-coach
Description
Track and analyze cycling performance from Strava. Use when analyzing ride data, reviewing fitness trends, understanding workout performance, or providing insights on cycling training. Automatically monitors new rides and provides performance analysis.
Usage Guidance
This skill appears to do what it claims: it connects to Strava, stores the OAuth client ID/secret and tokens in ~/.config/strava/config.json, caches activities in ~/.cache/strava, and can be scheduled by cron. Before installing or running it: 1) Review the bundled scripts yourself (they are included) and verify network calls are only to Strava (https://www.strava.com). 2) Note the README/SKILL.md refer to a few non-existent filenames (e.g., analyze_ride.py, monitor_rides.sh) — use the actual scripts in the repo (analyze_and_notify.py, monitor_new_rides.py, etc.) or fix the docs. 3) If you expect Telegram notifications, inspect/modify send_telegram_message to use the real Telegram API or your messaging tooling; currently it prints the message and assumes a 'Clawdbot' message tool. 4) Keep your client_secret and saved tokens protected (the setup script sets 0o600 but verify). 5) If you plan to add the cron job, prefer using an absolute path to the script (not relying on $(pwd)) and review the crontab changes before applying. If you want more assurance, run the scripts in an isolated environment (different user account or container) the first time and monitor outbound traffic.
Capability Analysis
Type: OpenClaw Skill Name: strava-cycling-coach Version: 1.0.0 The skill is classified as suspicious due to its use of persistence mechanisms. The `SKILL.md` file explicitly instructs the user to modify `~/.bashrc` to export an environment variable and to set up a cron job using `crontab` for automatic monitoring. While these actions are documented and aligned with the stated purpose of the skill (automatic ride analysis and notifications), modifying user shell profiles and system cron tables constitutes a meaningful high-risk behavior and a form of persistence, which elevates it beyond a benign classification. All network communication is legitimately directed to the Strava API, and there is no evidence of data exfiltration to unauthorized endpoints or malicious prompt injection against the agent.
Capability Assessment
Purpose & Capability
The skill's name/description (Strava ride analysis, monitoring, notifications) matches the code: it uses the Strava OAuth endpoints, activity and streams APIs, caches activities, analyzes power/HR metrics, and can be run on a schedule. The required secrets (client_id/client_secret) are requested via the setup flow and stored in ~/.config/strava/config.json, which is appropriate for a Strava integration.
Instruction Scope
Runtime instructions and scripts only access the user's Strava config (~/.config/strava), a local cache (~/.cache/strava), and the Strava API. They do not attempt to read unrelated system files or unknown remote endpoints. However, SKILL.md/README contain several inconsistent script names (e.g., references to analyze_ride.py and monitor_rides.sh that don't exist), and some examples assume a 'Clawdbot message tool' via subprocess but the provided send function currently prints the message (no Telegram API call). Those mismatches can confuse users and should be corrected.
Install Mechanism
There is no automatic install step or remote code download; all code is bundled with the skill and there is no install spec. That reduces supply-chain risk. The setup.sh script is local and only writes config files under the user's home directory.
Credentials
The skill does not declare required environment variables in registry metadata, but it does optionally read STRAVA_TELEGRAM_CHAT_ID for notifications and asks the user for client_id/client_secret during setup to store in config.json. Requesting Strava credentials is proportional and expected. Be aware the token/credentials are stored on disk (complete_auth.py sets file mode to 0o600).
Persistence & Privilege
The skill does persist user data (config and cache) under ~/.config/strava and ~/.cache/strava and suggests optionally adding a cron job for periodic runs, but it does not request elevated privileges or force installation (always:false). No modifications to other skills or system-wide agent settings are present.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install strava-cycling-coach
  3. After installation, invoke the skill by name or use /strava-cycling-coach
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release: automatic ride analysis with power metrics, HR zones, and PR tracking. Monitors for new rides every 30 minutes and sends detailed performance insights.
Metadata
Slug strava-cycling-coach
Version 1.0.0
License
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Strava Cycling Coach?

Track and analyze cycling performance from Strava. Use when analyzing ride data, reviewing fitness trends, understanding workout performance, or providing insights on cycling training. Automatically monitors new rides and provides performance analysis. It is an AI Agent Skill for Claude Code / OpenClaw, with 1801 downloads so far.

How do I install Strava Cycling Coach?

Run "/install strava-cycling-coach" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Strava Cycling Coach free?

Yes, Strava Cycling Coach is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Strava Cycling Coach support?

Strava Cycling Coach is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Strava Cycling Coach?

It is built and maintained by EricRosenberg (@ericrosenberg); the current version is v1.0.0.

💬 Comments