安全扫描
OpenClaw
可疑
medium confidenceThe skill's code implements a straightforward Strava OAuth integration and matches its description, but the package metadata and declared requirements are inconsistent (missing required env vars in registry, mismatched owner/version), so the packaging/manifest integrity is questionable.
评估建议
The code itself appears to correctly implement Strava OAuth and API usage (no hidden endpoints), but the package metadata is inconsistent: the SKILL.md and scripts require STRAVA_CLIENT_ID, STRAVA_CLIENT_SECRET, and STRAVA_REDIRECT_URI while the registry entry lists none. Also ownerId/version in _meta.json don't match the registry data. Before installing: (1) verify the skill's source/owner (compare the published registry entry to the bundled _meta.json), (2) be prepared to provide your Strava c...详细分析 ▾
ℹ 用途与能力
The name/description match the included scripts: OAuth login, token management, activity fetch, normalization, and rendering. The network calls are only to Strava's documented endpoints. However, registry metadata claims no required env vars while SKILL.md and the scripts require STRAVA_CLIENT_ID, STRAVA_CLIENT_SECRET, and STRAVA_REDIRECT_URI — an inconsistency in the manifest. Also _meta.json ownerId/version differ from registry metadata.
✓ 指令范围
SKILL.md instructs only to run the included Python scripts for OAuth and activity fetching/processing. The runtime instructions do not ask the agent to read unrelated system files or send data to unexpected endpoints; network traffic is limited to Strava's API. The scripts write a token file (default ~/.config/openclaw/strava/token.json) which is expected for OAuth flows.
✓ 安装机制
There is no install spec (instruction-only skill with bundled Python scripts). No downloads or external package installs are performed; scripts use only the Python standard library. This is a low-risk install mechanism.
⚠ 凭证需求
The code legitimately needs STRAVA_CLIENT_ID, STRAVA_CLIENT_SECRET, and STRAVA_REDIRECT_URI (plus optional STRAVA_TOKEN_PATH, STRAVA_SCOPES, STRAVA_TZ), but the registry metadata lists no required environment variables. The omission in the manifest is a packaging/integrity problem and could mislead automated permission reviews. The scripts will persist OAuth tokens to a file in the user's home directory (sensitive secrets).
✓ 持久化与权限
The skill is not marked always:true and does not auto-modify other skills. It writes/maintains its own token file under ~/.config/openclaw/strava/token.json (normal for an OAuth integration). No system-wide privileged changes are performed.
安全有层次,运行前请审查代码。
运行时依赖
无特殊依赖
版本
latestv1.0.02026/4/15
Initial release of Strava OAuth integration for OpenClaw. - Enables secure Strava account connection and authorization via OAuth. - Stores and refreshes access tokens automatically. - Fetches and normalizes workout/activity data (runs, rides, etc.) for specific dates or ranges. - Provides tools to generate training summaries, weekly mileage, and activity lists. - Output is formatted for use in the OpenClaw Wellness hub or for generic channel delivery.
● 无害
安装命令
点击复制官方npx clawhub@latest install strava-api
镜像加速npx clawhub@latest install strava-api --registry https://cn.longxiaskill.com
技能文档
Keep this skill source-only: connect to Strava, fetch activities, normalize output, and render a short message. Delivery is channel-agnostic.
Configuration
Required env vars:
STRAVA_CLIENT_IDSTRAVA_CLIENT_SECRETSTRAVA_REDIRECT_URI
Optional:
STRAVA_TOKEN_PATH(default:~/.config/openclaw/strava/token.json)STRAVA_TZ(default:Asia/Shanghai)
Connect (OAuth)
Choose one mode:
- Phone/remote mode (recommended):
python3 scripts/strava_oauth_login.py
- Desktop loopback mode (optional): if you are authorizing in a browser on the same machine that runs OpenClaw and your
STRAVA_REDIRECT_URIis a loopback URL (e.g.http://127.0.0.1:58539/callback):
python3 scripts/strava_oauth_login.py --loopback
Fetch activities for a day
python3 scripts/strava_fetch_activities.py --date today --out /tmp/strava_raw_today.json
python3 scripts/strava_normalize_daily.py /tmp/strava_raw_today.json --out /tmp/strava_today.json
python3 scripts/strava_render.py /tmp/strava_today.json --format markdown --channel generic
Notes
- API details:
references/strava_api.md - Normalized output contract (for Wellness hub):
references/output_schema.md