Back to skill
Skillv1.0.2
ClawScan security
Lovefromio Garmin Connect · ClawHub's context-aware review of the artifact, metadata, and declared behavior.
Scanner verdict
SuspiciousApr 27, 2026, 2:05 AM
- Verdict
- suspicious
- Confidence
- medium
- Model
- gpt-5-mini
- Summary
- The skill mostly does what it says (sync Garmin data) but has several inconsistencies and risky instructions (password-on-CLI, advice to disable 2FA, missing dependency in requirements, hardcoded example paths/emails) that warrant caution before installing.
- Guidance
- This skill appears to implement Garmin sync functionality, but exercise caution before installing or running it: - Do not pass your Garmin password on the command line where it can be viewed by other processes; prefer browser-based OAuth (garth-cli) as described in some scripts. - The SKILL.md and scripts suggest disabling 2FA or using an app password — do not disable 2FA for your primary account; instead create/apply an app-specific token if Garmin supports it, or use the browser OAuth flow. - The requirements.txt omits the 'garth' dependency used in code. When installing, explicitly install garth/garth-cli and verify package sources. - Review and, if needed, change hardcoded paths and example emails in scripts (e.g., /home/mamotec/, moritz.vogt@vogges.de) before running; they are developer leftovers and not suitable for production. - Session and cache files are written to ~/.garth/session.json and ~/.clawdbot/.garmin-cache.json; ensure those files have appropriate filesystem permissions and consider storing them in a secure directory. - If you are not comfortable inspecting or modifying Python scripts, run this in an isolated environment (VM/container) and inspect network behavior. Prefer the garth-cli/browser OAuth path rather than the username/password script. What would change this assessment: a clear, trusted upstream source (homepage or repo), a corrected requirements.txt that lists all runtime dependencies, removal of advice to disable 2FA, and removal of hardcoded developer-specific credentials/paths. With those fixes the skill would likely be classified as benign.
Review Dimensions
- Purpose & Capability
- noteFiles and scripts implement Garmin data sync and caching (OAuth / garth + garminconnect) which matches the stated purpose. However the repository mixes two auth approaches (browser-based OAuth guidance alongside a username/password login script), and requirements.txt omits the 'garth' dependency that many scripts import. Hardcoded example paths and email addresses (e.g., /home/mamotec/.garth/session.json, moritz.vogt@vogges.de) are leftover developer artifacts but not required for the stated feature.
- Instruction Scope
- concernSKILL.md and scripts instruct the user to run an authentication script with email and password on the command line (python3 scripts/garmin-auth.py <email> <password>) and even suggest disabling 2FA — these broaden the scope to collecting sensitive credentials and encourage insecure practices. Scripts read/write local session and cache files (e.g., ~/.garth/session.json, ~/.clawdbot/.garmin-cache.json) — expected — but instructions are inconsistent about using OAuth/browser login vs username/password and include hardcoded user-specific instructions.
- Install Mechanism
- noteNo install spec (instruction-only skill). It relies on pip installing requirements.txt, which lists garminconnect/requests/dateutil but omits 'garth'/'garth-cli' that many scripts require. That mismatch may lead users to run manual installs; otherwise there is no remote download or archive-extract behavior in the install metadata.
- Credentials
- concernThe skill declares no required environment variables or credentials, yet its runtime requires sensitive authentication (Garmin credentials or browser OAuth session). The SKILL.md explicitly instructs supplying email/password on the CLI and advises disabling 2FA, which is disproportionate and insecure. There are also hardcoded example email and home paths embedded in scripts, which leak developer-specific identifiers and could mislead users.
- Persistence & Privilege
- okThe skill stores session and cache files in user-local paths (~/.garth and ~/.clawdbot) which is consistent with a sync tool. It does not request 'always: true', does not modify other skills, and has no system-wide install behavior in the manifest. Autonomous invocation is allowed but is the platform default.
