用于批量上传 .fit 和 .gpx 运动文件到 Garmin Connect 中国区或国际区的本地 CLI 工具,并可选支持个人 OneDrive 网页下载。
Local CLI for batch-uploading .fit and .gpx activity files into Garmin Connect China or Global, with optional personal OneDrive web download support.
cd garmin-sync
python3 -m venv .venv
.venv/bin/python -m pip install -e ".[dev]"
.venv/bin/python -m playwright install chromiumPYTHONPATH=src .venv/bin/python -m garmin_sync.cli upload /path/to/files --site cn
PYTHONPATH=src .venv/bin/python -m garmin_sync.cli login --site global
PYTHONPATH=src .venv/bin/python -m garmin_sync.cli config set-default-site cn
PYTHONPATH=src .venv/bin/python -m garmin_sync.cli config set-default-dir /path/to/files
PYTHONPATH=src .venv/bin/python -m garmin_sync.cli config show
PYTHONPATH=src .venv/bin/python -m garmin_sync.cli onedrive login
PYTHONPATH=src .venv/bin/python -m garmin_sync.cli onedrive pick-folder
PYTHONPATH=src .venv/bin/python -m garmin_sync.cli onedrive show-folder
PYTHONPATH=src .venv/bin/python -m garmin_sync.cli onedrive pull-fit --dir /path/to/files- 运行
onedrive login,并在浏览器窗口中完成正常的 OneDrive 网页登录。
Runonedrive loginand finish normal OneDrive web login in the browser window. - 运行
onedrive pick-folder,在浏览器中手动打开源文件夹,然后回到终端确认。
Runonedrive pick-folder, manually open the source folder in the browser, then confirm in the terminal. - 运行
onedrive pull-fit,把选中文件夹的内容从 OneDrive 下载到本地,并在保留子目录结构的同时提取.fit文件。
Runonedrive pull-fitto download the selected folder contents from OneDrive and extract.fitfiles locally while preserving nested subdirectories. - 需要上传到 Garmin 时,运行
upload。
Runuploadwhen you want to send local.fitand.gpxfiles to Garmin.
- 源
.fit和.gpx文件会保留在原位置,不会被移动或删除。
Source.fitand.gpxfiles are left in place. - 在 macOS 上,上传状态和浏览器会话存储在
~/Library/Application Support/garmin-sync。
Upload state and browser session storage live under~/Library/Application Support/garmin-syncon macOS. - OneDrive 拉取状态也保存在同一个应用数据目录下。
OneDrive pull state lives in the same app data directory. - OneDrive 网页流程依赖当前网页 UI,首次真实登录后可能仍需要少量选择器微调。
The OneDrive browser flow depends on the current web UI and may need small selector adjustments after the first real login.
如果这台 Mac 上的浏览器自动化会异常打开后立刻关闭,或与用户平时使用的 Chrome 会话表现不同,请查看共享的 Aion 集成说明:
If browser automation on this Mac opens and closes unexpectedly, or behaves differently from the user's normal Chrome session, see the shared Aion integration notes:
- Skill 入口 / Skill entry: docs/skills/aion-browser-integration/SKILL.md
- 详细说明 / Detailed reference: docs/skills/aion-browser-integration/references/garmin-sync-aion-integration.md
如果要在另一套 Codex 环境中复用这个 skill,把 docs/skills/aion-browser-integration 目录复制到 $CODEX_HOME/skills 或 ~/.codex/skills。
To reuse the skill in another Codex setup, copy the docs/skills/aion-browser-integration folder into $CODEX_HOME/skills or ~/.codex/skills.
如果你准备把这个仓库发布到 GitHub,请先阅读清理说明:
If you plan to publish this repository to GitHub, read the cleanup note first: