前言¶
顽鹿(OneLap)和 Strava 各自有账号体系,官方也没有一条「点一下就两边都有记录」的通道。自建同步服务往往要申请 Strava 开发者应用、维护令牌和定时任务;手动则是去顽鹿下 FIT,再开 Strava 网页上传,还要自己判断轨迹坐标要不要纠偏。
DeepSeek Harness(DSH)支持通过插件把 Agent Skill 挂进会话。下面介绍社区插件 wanlu-strava-sync(维护者 bananaive,分类:联网工具):它把「读顽鹿记录 → 校验 FIT → 检查坐标系 → 浏览器上传到 Strava」拆成 agent 可执行的步骤,无需发布 App、部署同步服务或申请 Strava 开发者应用。插件本身只注册 Skill 与资源,不代替你登录、不上传活动;同步仍依赖会话里的浏览器与文件访问能力,以及你的授权。
这是什么¶
wanlu-strava-sync 是面向 agent 的 Skill 包,目标是让 agent 把指定日期的顽鹿运动 / OneLap 骑行同步到 Strava:读取记录,下载并校验原始 FIT,检查坐标系,再通过 Strava 网页上传并核实结果。实现参考 WanSync,为独立实现,不是顽鹿或 Strava 官方产品。
- 目录页:SkillHub - wanlu-strava-sync
- 源码:GitHub - bananaive/wanlu-strava-sync
- 发行版本(package.json):0.1.0
- 许可证:MIT
核心功能¶
经 README 核实,Skill 覆盖的能力如下。
- 按日期选记录:读取顽鹿记录,核对时间和距离并选择记录 ID。
- FIT 校验:下载原始 FIT,检查文件长度和 CRC,生成 SHA-256。
- 坐标审计与纠偏:由 agent 根据来源说明或可靠地图参照判断坐标系;确认大陆 GCJ-02 后才生成 WGS-84 副本,原始文件保留。不自动处理 BD-09、港澳台、跨境或混合坐标;缺少可靠证据时保持原坐标。
- Strava 网页上传:通过已登录的 Strava 网页上传;未指定隐私时默认「只有你」,逐条核实最终活动链接。
- 结果落盘与防重复:保存本地结果;上传结果不确定时先查已有活动,不自动重复提交。
离线脚本仅使用 Python 3.9+ 标准库;Skill 不包含浏览器自动化引擎,不会为 agent 增加权限。仅有文本对话能力的模型不能独立完成上传。
安装与启用¶
通过 DSH 安装¶
将 web 换成你自己的 profile。命令来自仓库 README:
dsh plugin --profile web add github:bananaive/wanlu-strava-sync
安装后在技能列表选择 wanlu-strava-sync,再说明要同步的日期和活动可见性。插件支持 DSH 0.2.1-rc.2 及后续 0.2.x(含 0.2.2 预发布版);发行包没有安装时执行的脚本。package.json 中 engines 要求 Node >=22,dsh 版本区间与上述一致。
也可把 skills/wanlu-strava-sync 复制到 ~/.dsh/skills/,与 dsh plugin add 两种方式任选其一。
手动放入 agent 的 skills 目录¶
若不经过 DSH 注册,可将仓库内 skills/wanlu-strava-sync 整目录放入 agent 支持的 skills 目录。以 Codex 为例:
mkdir -p ~/.codex/skills
cp -R skills/wanlu-strava-sync ~/.codex/skills/
若目标目录已存在,先检查已有内容,按需更新,避免嵌套复制。其他 agent 按各自的 Skill 加载方式安装,或让 agent 直接读取 skills/wanlu-strava-sync/SKILL.md。
典型用法¶
对 agent 的提示可参照 README 示例:
使用 $wanlu-strava-sync,把我昨天的顽鹿骑行同步到 Strava,仅自己可见,并检查坐标是否需要纠偏。
运行前需要:
- 能连接顽鹿接口的网络与你自己的顽鹿账号;
- 可正常登录 Strava、支持文件选择和结果读取的浏览器工具;
- 浏览器能读取下载脚本生成的 FIT,或工具支持本地文件传输到远程浏览器。
账号密码仅用于当次登录,通过隐藏终端输入或安全运行环境提供;不写进命令参数、配置文件或源码。Strava 使用正常网页登录会话,不要求导出 Cookie 或填写开发者密钥。登录验证码可能需要你协助完成。
本地自检脚本(不访问真实运动账号的单元测试另见仓库 tests/):
python3 skills/wanlu-strava-sync/scripts/wanlu.py --help
python3 skills/wanlu-strava-sync/scripts/fit_coordinates.py --help
python3 -m unittest discover -s tests -v
Skill 目录结构要点:
skills/wanlu-strava-sync/
├── SKILL.md
├── agents/openai.yaml
├── scripts/wanlu.py
├── scripts/fit_coordinates.py
└── references/
├── onelap.md
├── strava-browser.md
└── coordinates.md
适用场景与注意¶
适合谁:已在 DSH 或其它支持 Skill 的 agent 环境里开发、希望用对话驱动「顽鹿 → Strava」单次或按日同步的骑行用户;能接受浏览器参与上传、并愿意在敏感步骤上配合登录与文件权限。
权限与数据:插件以当前 dsh 进程权限运行;安装前建议阅读源码与 MIT 许可证。FIT、清单和坐标审计留在执行环境本地目录,含敏感位置和运动数据;不要放进公开仓库或 Issue。下载直连顽鹿,上传由浏览器连 Strava,无项目自建中转。
当前边界(README 如实说明):
- 顽鹿接口未公开承诺稳定,Strava 网页结构也可能改变;
- 单靠经纬度不能保证识别坐标系,AI 在真实轨迹上的识别准确率尚未全面验证;
- 不是常驻后台自动同步服务,亦未验证 iPhone 本地独立运行整套 agent。
社区目录 SkillHub 是独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,本件归类为联网工具,仓库星标数为 0(以目录页线索为准)。
结尾¶
wanlu-strava-sync 把顽鹿读取、FIT 校验、坐标审查和 Strava 网页上传收敛进一条 Agent Skill,在 DSH 里用官方 dsh plugin add 即可挂载;真实同步仍取决于会话中的浏览器与文件能力以及你的账号授权。更多细节见 SkillHub 目录页 与 GitHub 仓库。