Fitness Agent — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Fitness Agent (Plugin) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Fitness Agent is a local-first Strava to Obsidian workflow for athletes, coaches, and personal knowledge base users.
It authenticates with Strava, fetches recent activities plus fine-grained streams, renders structured Obsidian notes, writes directly into a local vault, and generates a ready-to-use dashboard with weekly and monthly review notes.
The repository also includes two post-sync skills:
fitness-insights analyzes notes already stored in Obsidian and generates deeper trend views, load-proxy reports, and visualization notes.fitness-planner turns those historical notes into forward-looking next-week or next-two-week training plans.Fitness Dashboard.basefitness-insightsFitness Insights.base, snapshot, and trend notesfitness-plannerTraining Plans.base and plan notes for the next 7 or 14 daysRunning a sync creates or updates files like:
Fitness/Strava/
├── Activities/2026/03/2026-03-15-run-123456789.md
├── Dashboard/Fitness Dashboard.base
├── Dashboard/Fitness Dashboard.md
├── Insights/Fitness Insights.base
├── Insights/Fitness Snapshot.md
├── Insights/Training Trends.md
├── Plans/Training Plans.base
├── Plans/Fitness Planner.md
├── Plans/Generated/2026-03-16-next-7-days-auto.md
├── Reports/Weekly/2026-W11.md
└── Reports/Monthly/2026-03.mdThe dashboard files use Obsidian Bases views over the generated activity notes, so one sync gives you both raw notes and analysis surfaces. Running fitness-insights adds deeper post-sync analysis, and fitness-planner adds an upcoming plan built from the same note history.
Recommended Strava redirect URI:
http://localhost:33371/callbackpython3 fitness_agent.py auth login \
--client-id YOUR_CLIENT_ID \
--client-secret YOUR_CLIENT_SECRETpython3 fitness_agent.py config set-vault \
--vault-path "/path/to/YourVault" \
--default-folder "Fitness/Strava"python3 fitness_agent.py sync latest --limit 5python3 skills/fitness-insights/fitness_insights.py analyze refreshpython3 skills/fitness-planner/fitness_planner.py plan generate --days 7List recent activities:
python3 fitness_agent.py activities list --limit 5Export a single activity as Markdown:
python3 fitness_agent.py activities export --activity-id 123456789Write a single activity into the vault:
python3 fitness_agent.py vault write --activity-id 123456789Show CLI help:
python3 fitness_agent.py --helpRefresh the advanced analysis package:
python3 skills/fitness-insights/fitness_insights.py analyze refresh --weeks 16Generate a future plan:
python3 skills/fitness-planner/fitness_planner.py plan generate --days 14 --goal auto.claude-plugin/marketplace.json Marketplace manifest for Claude-compatible plugin installs
plugins/fitness-agent/ Claude-compatible plugin package
plugins/fitness-insights/ Claude-compatible plugin package for post-sync analysis
plugins/fitness-planner/ Claude-compatible plugin package for future plan generation
skills/fitness-agent/ Standalone Codex skill package
skills/fitness-insights/ Standalone Codex skill package for advanced analysis
skills/fitness-planner/ Standalone Codex skill package for plan generation
skills/fitness-agent/src/ Python implementation
skills/fitness-insights/src/ Python implementation
skills/fitness-planner/src/ Python implementation
tests/ Unit tests
fitness_agent.py Root CLI entrypointFor a Chinese guide focused on local installation and local skill usage, see:
docs/local_skill_usage.mdThis repository ships two installation shapes:
skills/fitness-agentskills/fitness-insightsskills/fitness-plannerplugins/fitness-agent.claude-plugin/marketplace.json.plugins/fitness-insightsplugins/fitness-plannerThe standalone skill and the plugin package are both self-contained and do not rely on machine-specific absolute paths.
Default config path:
~/.fitness-agent/config.jsonOverride with:
export FITNESS_AGENT_CONFIG_PATH=/custom/path/config.jsonThe local config stores:
Fitness Agent is local-first by design. Activity data and generated notes are written to your machine unless you explicitly publish or sync them elsewhere.
Run the test suite with:
python3 -m unittest discover -s tests~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.