Fitness agent
npx -y skills add zxt6991-source/fitness-agent --skill fitness-agentAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Operate the local Fitness Agent CLI for Strava and Obsidian workflows. Use when Codex needs to authenticate with Strava, list or fetch Strava activities, export workout data as Obsidian-compatible Markdown, configure a local Obsidian vault path, or write/sync workout notes into a vault from the local fitness-agent project.
SKILL.md
3.6 KB, 732 tokens by cl100k_base, as published. Nobody here has run it
Fitness Agent
Use the bundled wrapper script to run the local CLI:
scripts/run_fitness_agent.sh --help
The skill is self-contained. The wrapper resolves the skill root relative to its own location, so it works after cloning the repository or after copying the skill directory into a local skills folder.
Workflow
- Authenticate first if no Strava token is configured.
- Configure the Obsidian vault path before attempting vault writes or syncs.
- List activities to identify target activity ids when the user does not provide one.
- Export Markdown when the user wants reviewable output.
- Use
sync latestwhen the user wants the full Obsidian analysis surface, because it writes activity notes plus dashboard and weekly/monthly reports. - Write or sync into the vault only after confirming the destination path is configured.
Prefer the CLI defaults unless the user asks otherwise. Do not add --overwrite unless the user explicitly wants to replace an existing file or note.
Commands
Authenticate with Strava:
scripts/run_fitness_agent.sh auth login \
--client-id YOUR_CLIENT_ID \
--client-secret YOUR_CLIENT_SECRET
Configure the default Obsidian vault:
scripts/run_fitness_agent.sh config set-vault \
--vault-path "/path/to/YourVault" \
--default-folder "Fitness/Strava"
List recent activities:
scripts/run_fitness_agent.sh activities list --limit 5
Export one activity as Obsidian Markdown:
scripts/run_fitness_agent.sh activities export --activity-id 123456789
Write one activity into the configured vault:
scripts/run_fitness_agent.sh vault write --activity-id 123456789
Sync the latest activities into the configured vault:
scripts/run_fitness_agent.sh sync latest --limit 3
This sync now writes:
- activity notes under
Activities/YYYY/MM/ Dashboard/Fitness Dashboard.baseDashboard/Fitness Dashboard.md- weekly reports under
Reports/Weekly/ - monthly reports under
Reports/Monthly/
Guardrails
- Surface the exact note path after successful vault writes or syncs.
- Stop and report the CLI error if Strava auth, token refresh, network access, or vault path validation fails.
- Treat
~/.fitness-agent/config.jsonas the default local config unless the user provides--config-path. - Use
activities exportbefore vault writes when the user wants to inspect or revise the generated Markdown first. - Mention that the OAuth callback defaults to
http://localhost:33371/callbackwhen the user asks how auth works. - Explain that single-activity exports include streams when available, while
sync latestalso backfills affected week/month context to keep reports complete.
Trigger Examples
$fitness-agent 帮我登录 Strava 并配置我的 Obsidian vault$fitness-agent 列出最近 10 条 Strava 活动$fitness-agent 把活动 123456789 导出成 Obsidian Markdown$fitness-agent 把最近 3 条 Strava 活动同步到我的 vault
Resources
fitness_agent.py: Self-contained CLI entrypoint packaged with the skill.src/fitness_agent/: Python implementation for Strava auth, activity fetch, Markdown rendering, and vault writes.scripts/run_fitness_agent.sh: Stable wrapper that dispatches to the packaged CLI.