strava-cli

🏃 Strava 运动数据命令行管理工具

基于 strava-client-cli 的 Strava 数据命令行工具,支持活动查询与批量导出,为开发者提供高效本地数据管理体验。

收藏
2.8k
安装
1.2k
版本
v0.1.0
CLS 安全性认证2026-05-08
点击查看完整报告 >

使用说明

核心用法
该 Skill 是 strava-client-cli 工具的文档指南,提供完整的 Strava 命令行交互方案。用户需先创建 Strava 账号并注册 API 应用获取 Client ID 和 Secret,通过 OAuth2 流程完成授权。安装支持 uvx 临时运行或 uv 持久化安装。主要功能包括:查看运动员资料(profile)、获取运动统计(stats)、查询活动列表(支持按类型/日期过滤)、查看单个活动详情,以及批量导出数据(JSON 格式)。Token 自动刷新机制(每 6 小时)确保长期可用性,配置和凭证分别存储于 ~/.config/strava-cli/ 目录下的 config.json 和 tokens.json。

显著优点
作为纯文档型 Skill,其最大优势是零代码执行风险,仅提供使用指南而不包含任何可执行脚本。内容透明度高,所有操作示例清晰可查,无隐藏功能。功能覆盖全面,从基础查询到数据导出一应俱全,满足运动员数据管理需求。依托 Strava 官方 API,数据获取稳定可靠。命令行交互方式适合自动化脚本和批量处理,显著提升数据管理效率。MIT 许可证开源,使用无商业限制。

潜在缺点与局限性
首要限制来自 Strava API 政策:新创建的应用仅允许连接 1 名运动员,多用户场景需频繁撤销/重新授权。作为个人开发者项目(T3 来源),社区验证和长期维护存在不确定性,且依赖的外部 PyPI 包版本较新(v0.1.1),稳定性待观察。OAuth 配置流程对非技术用户门槛较高,需要手动创建 API 应用和处理 Token。此外,实际功能完全依赖外部 Python 包 strava-client-cli,该包使用宽松的版本依赖约束(>=),可能带来潜在的依赖冲突风险。

适合的目标群体
主要面向熟悉命令行操作的开发者和数据分析师,特别是需要批量处理 Strava 运动数据的用户。适合 Strava 重度使用者进行个人数据备份和分析,以及需要将运动数据集成到自动化工作流的技术用户。对隐私敏感且希望本地存储数据的用户也会受益。不适合普通非技术用户(OAuth 配置复杂)、需要多账户管理的企业场景,以及对第三方包安全性要求极高的生产环境。

使用风险
需关注 Token 本地存储安全,建议设置文件权限为 600 防止泄露。外部依赖包由个人开发者维护,建议隔离安装(venv/uvx)。Strava API 存在调用频率限制和单用户限制,可能影响使用体验。OAuth 流程涉及浏览器操作,在不支持浏览器的环境(如纯服务器)需手动处理 Token 交换,增加使用复杂度。

安全解读

技能概述

Strava CLI 技能提供了一套通过命令行与 Strava 平台交互的完整指引。它并非一个内置的可执行程序,而是一个以纯 Markdown 文档形式呈现的操作手册,旨在指导用户从零开始安装、配置并使用 strava-client-cli 这个第三方开源 Python 工具。通过该技能,用户只需在终端输入简单指令,即可快速查看个人运动资料、统计数据、近期活动记录,并支持批量导出数据,为深度分析或备份提供了便利。

核心用法

技能的文档结构清晰,涵盖了完整的生命周期。首先,它指导用户如何安装 strava-client-cli,推荐使用现代化的 uvxuv tool install 命令。接着,它提供了详细的设置指南,包括注册 Strava 账户、创建 Strava API 应用以获取客户端凭证,并引导用户完成标准的 OAuth 2.0 授权流程,最终将访问令牌安全地保存在本地。文档中不仅提供了自动化认证方式,还贴心地为无浏览器环境(如服务器)提供了手动完成 Token 交换的脚本化步骤。最后,它通过一系列示例展示了 strava 命令的强大功能,如查看个人运动档案(profile)、获取骑行/跑步等运动统计(stats)、按条件筛选活动列表(activities)以及将数据批量导出为 JSON 格式(export)。

显著优点

  • 上手简单,流程完整:技能文档以清晰、步骤化的方式呈现,即使是对命令行或 OAuth 不太熟悉的用户,也能循着指南顺利完成从安装到成功获取数据的全过程。
  • 轻量级与无侵入:该技能本身只是一个 98 行的 Markdown 文件,无任何可执行代码,对系统零负担。它借由标准化工具 uv 安装和运行外部程序,遵循 "batteries included but separate" 的理念。
  • 满足核心需求:精准覆盖了 Strava 用户最常见的数据查看和导出需求,让用户无需打开网页或 App,即可在终端快速获取关键运动指标,非常适合习惯键盘操作的用户或需要集成到自动化工作流中的场景。
  • 高安全合规性:安全性认证报告中所有自动化扫描项均为零发现。技能引导的 OAuth 2.0 流程请求的是 activity:read_allprofile:read_all 只读权限,严格遵循最小权限原则,不会对用户的 Strava 数据进行任何写入或修改,并将敏感 Token 存储于标准的本地配置文件目录中。

潜在缺点与局限性

  • 完全依赖外部工具:技能的效用 100% 取决于 strava-client-cli 这个 PyPI 包的功能和稳定性。如果该上游工具停止维护、出现 Bug 或其 API 与 Strava 官方更新不兼容,本技能将即刻失效。
  • 功能限于工具本身:技能本身不提供任何自定义逻辑或增强功能,它仅仅是对外部工具用法的呈现。因此,它无法实现 strava-client-cli 本身不支持的功能,例如创建或修改活动、复杂的社交互动等。
  • 需用户自行管理 API 应用:技能要求用户前往 Strava 开发者设置页面自行创建 API 应用,这对于非技术背景的纯运动爱好者可能存在一定的认知门槛。同时,Strava API 新应用仅限连接一名运动员的规则也可能带来不便。
  • 数据导出格式单一:文档示例中仅展示了导出为 JSON 格式,虽然底层工具可能支持更多格式,但技能未作说明,可能会限制部分用户多样化处理数据的需求。

适合的目标群体

该技能尤其适合那些习惯使用命令行、注重效率的开发者和高级用户,他们希望将 Strava 数据快速整合到本地分析脚本(如 Jupyter Notebook)、个人数据看板或自动化报告中。其次,它也适用于重视隐私并希望在不登录网页端的情况下,于本地终端安全、快速地查看自己运动数据的 Strava 用户。此外,对于需要进行大量数据备份或离线分析的深度运动爱好者,其提供的批量导出功能非常有价值。

使用风险与注意事项

尽管技能本身安全,但在使用时仍存在一些常规风险。最主要的风险是供应链安全:其引用的 strava-client-cli PyPI 包来自个人开发者(T3 来源),未经本次审计。用户有责任在安装前自行审查该包的源码、下载量和社区活跃度,以防依赖混淆或包被恶意篡改的风险。其次,凭证管理风险不容忽视,虽然技能将 Token 存储在本地 ~/.config/ 目录下,但用户必须确保该文件权限设置正确(如 chmod 600),以防同一系统上的其他用户或进程窃取访问凭证。最后是服务可用性风险,技能的正常运作强依赖于 Strava 官方 API 的服务条款、速率限制和稳定性,任何一方的政策或接口变更都可能导致功能异常。建议始终使用最小只读权限范围,并定期检查上游依赖的健康状况。

strava-cli 内容

手动下载zip · 1.7 kB
SKILL.mdtext/markdown
请选择文件