Crawler Summary

garmin-workout answer-first brief

Generate Garmin-compatible workout files (.FIT and .JSON) for Garmin Connect and devices. Supports multi-step workouts with duration, intensity targets, and various exercise types. Compatible with fulippo/share-your-garmin-workout Chrome extension. --- name: garmin-workout description: Generate Garmin-compatible workout files (.FIT and .JSON) for Garmin Connect and devices. Supports multi-step workouts with duration, intensity targets, and various exercise types. Compatible with fulippo/share-your-garmin-workout Chrome extension. license: Garmin FIT SDK - SEE LICENSE IN LICENSE.txt metadata: openclaw: emoji: "πŸƒ" requires: bins: ["node"] install: - id: npm kind Capability contract not published. No trust telemetry is available yet. Last updated 4/14/2026.

Freshness

Last checked 4/14/2026

Best For

garmin-workout is best for easily, be, both workflows where OpenClaw compatibility matters.

Not Ideal For

Contract metadata is missing or unavailable for deterministic execution.

Evidence Sources Checked

editorial-content, GITHUB OPENCLEW, runtime-metrics, public facts pack

Claim this agent
Agent DossierGitHubSafety: 94/100

garmin-workout

Generate Garmin-compatible workout files (.FIT and .JSON) for Garmin Connect and devices. Supports multi-step workouts with duration, intensity targets, and various exercise types. Compatible with fulippo/share-your-garmin-workout Chrome extension. --- name: garmin-workout description: Generate Garmin-compatible workout files (.FIT and .JSON) for Garmin Connect and devices. Supports multi-step workouts with duration, intensity targets, and various exercise types. Compatible with fulippo/share-your-garmin-workout Chrome extension. license: Garmin FIT SDK - SEE LICENSE IN LICENSE.txt metadata: openclaw: emoji: "πŸƒ" requires: bins: ["node"] install: - id: npm kind

OpenClawself-declared

Public facts

4

Change events

1

Artifacts

0

Freshness

Apr 14, 2026

Verifiededitorial-contentNo verified compatibility signals

Capability contract not published. No trust telemetry is available yet. Last updated 4/14/2026.

Trust evidence available

Trust score

Unknown

Compatibility

OpenClaw

Freshness

Apr 14, 2026

Vendor

Linksawakening

Artifacts

0

Benchmarks

0

Last release

Unpublished

Executive Summary

Key links, install path, and a quick operational read before the deeper crawl record.

Verifiededitorial-content

Summary

Capability contract not published. No trust telemetry is available yet. Last updated 4/14/2026.

Setup snapshot

git clone https://github.com/linksawakening/garmin-workout.git
  1. 1

    Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.

  2. 2

    Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.

Evidence Ledger

Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.

Verifiededitorial-content
Vendor (1)

Vendor

Linksawakening

profilemedium
Observed Apr 14, 2026Source linkProvenance
Compatibility (1)

Protocol compatibility

OpenClaw

contractmedium
Observed Apr 14, 2026Source linkProvenance
Security (1)

Handshake status

UNKNOWN

trustmedium
Observed unknownSource linkProvenance
Integration (1)

Crawlable docs

6 indexed pages on the official domain

search_documentmedium
Observed Apr 15, 2026Source linkProvenance

Release & Crawl Timeline

Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.

Self-declaredagent-index

Artifacts Archive

Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.

Self-declaredGITHUB OPENCLEW

Extracted files

0

Examples

6

Snippets

0

Languages

typescript

Parameters

Executable Examples

bash

# No --output specified β†’ creates both workout.fit and workout.json in current directory
node /home/claw/.openclaw/workspace/skills/garmin-workout/skill.js --name "Morning Run" --steps '[
  {"name": "Warm up", "duration": 300, "intensity": "warmup", "targetType": "heartRate", "targetMin": 120, "targetMax": 140},
  {"name": "Run", "duration": 1800, "intensity": "active", "targetType": "speed", "targetMin": 8, "targetMax": 10},
  {"name": "Cool down", "duration": 300, "intensity": "cooldown", "targetType": "heartRate", "targetMin": 100, "targetMax": 120}
]'

bash

# Output ends in .fit β†’ creates only .FIT file
node /home/claw/.openclaw/workspace/skills/garmin-workout/skill.js --name "Run" --output /tmp/run.fit --steps '[{"name": "Run", "duration": 1800, "intensity": "active"}]'

# Output ends in .json β†’ creates only .JSON file
node /home/claw/.openclaw/workspace/skills/garmin-workout/skill.js --name "Run" --output /tmp/run.json --steps '[{"name": "Run", "duration": 1800, "intensity": "active"}]'

# Output is a directory β†’ creates both .fit and .json in that directory
node /home/claw/.openclaw/workspace/skills/garmin-workout/skill.js --name "Run" --output /tmp/workouts/ --steps '[{"name": "Run", "duration": 1800, "intensity": "active"}]'

bash

node /home/claw/.openclaw/workspace/skills/garmin-workout/skill.js \
  --name "HIIT Session" \
  --output /tmp/hiit.fit \
  --sport running \
  --steps '[
    {"name": "Warm up", "duration": 300, "intensity": "warmup", "targetType": "heartRate", "targetMin": 110, "targetMax": 130},
    {"name": "Sprint", "duration": 60, "intensity": "active", "targetType": "heartRate", "targetMin": 160, "targetMax": 175},
    {"name": "Rest", "duration": 60, "intensity": "rest", "targetType": "heartRate", "targetMin": 100, "targetMax": 120}
  ]'

text

βœ… Files written:
   β€’ test-run.json (JSON, 456 bytes)

--- JSON OUTPUT (copy for Garmin Connect import) ---
{
  "workoutName": "Test Run",
  "sportType": {
    "sportTypeId": 1,
    "sportTypeKey": "running"
  },
  ...
}
--- END JSON OUTPUT ---

bash

node scripts/skill.js --name "Run" --steps '[...]' | jq '.workoutName'

## Step Object Fields

Each step in the steps array requires:

| Field | Type | Description |
|-------|------|-------------|
| `name` | string | Step name |
| `duration` | number | Duration in seconds |
| `intensity` | string | Intensity: "warmup", "active", "cooldown", "rest" |
| `targetType` | string | Target metric: "heartRate", "speed", "power", "cadence", "pace" (optional) |
| `targetMin` | number | Minimum target value (FIT only, optional) |
| `targetMax` | number | Maximum target value (FIT only, optional) |
| `durationType` | string | Duration type: "time" (default) or "distance" (optional) |

## JSON Schema (for fulippo Chrome Extension)

The JSON output follows the exact schema used by the [fulippo/share-your-garmin-workout](https://github.com/fulippo/share-your-garmin-workout) Chrome extension.

### JSON Output Example

text

### JSON Schema Reference

| Field | Type | Description |
|-------|------|-------------|
| `workoutName` | string | Name of the workout |
| `sportType` | object | Sport type with `sportTypeId` and `sportTypeKey` |
| `workoutSegments` | array | Array of workout segments |

### Sport Types

| Sport | sportTypeId | sportTypeKey |
|-------|-------------|--------------|
| running | 1 | running |
| cycling | 2 | cycling |
| swimming | 4 | swimming |
| walking | 8 | walking |
| fitness | 12 | fitness |
| strength | 13 | strength |
| cardio | 15 | cardio |
| hiking | 18 | hiking |
| rowing | 19 | rowing |
| elliptical | 21 | elliptical |
| stairClimbing | 22 | stairClimbing |

### Step Types

| Type | stepTypeId | stepTypeKey |
|------|-------------|-------------|
| time | 3 | time |
| distance | 1 | distance |

### Intensities

| Intensity | intensityId | intensityKey |
|-----------|-------------|--------------|
| warmup | 0 | warmup |
| active | 1 | active |
| cooldown | 2 | cooldown |
| rest | 3 | rest |

### Target Types

| Target | stepTargetId | stepTargetKey |
|--------|---------------|---------------|
| noTarget | 0 | noTarget |
| heartRate | 2 | heartRate |
| speed | 3 | speed |
| power | 5 | power |
| cadence | 7 | cadence |
| pace | 9 | pace |

## Validation

### FIT Validation

- Uses official `@garmin/fitsdk` package for encoding
- Generates standard Garmin FIT profile-compliant files
- All messages are validated against FIT profile definitions
- Compatible with Garmin's validation requirements

### JSON Validation

The skill includes built-in JSON schema validation that checks:

- **Required top-level fields**: `workoutName`, `sportType`, `workoutSegments`
- **Sport type**: Valid `sportTypeId` and `sportTypeKey`
- **Workout segments**: Non-empty array with valid segment order
- **Step validation** per step:
  - `stepId` (can be null or number)
  - `stepName` (string)
  - `stepType` with `stepTypeId` and `stepTypeKey`
  - `duration` with `type` and `value`
  - 

Docs & README

Full documentation captured from public sources, including the complete README when available.

Self-declaredGITHUB OPENCLEW

Docs source

GITHUB OPENCLEW

Editorial quality

ready

Generate Garmin-compatible workout files (.FIT and .JSON) for Garmin Connect and devices. Supports multi-step workouts with duration, intensity targets, and various exercise types. Compatible with fulippo/share-your-garmin-workout Chrome extension. --- name: garmin-workout description: Generate Garmin-compatible workout files (.FIT and .JSON) for Garmin Connect and devices. Supports multi-step workouts with duration, intensity targets, and various exercise types. Compatible with fulippo/share-your-garmin-workout Chrome extension. license: Garmin FIT SDK - SEE LICENSE IN LICENSE.txt metadata: openclaw: emoji: "πŸƒ" requires: bins: ["node"] install: - id: npm kind

Full README

name: garmin-workout description: Generate Garmin-compatible workout files (.FIT and .JSON) for Garmin Connect and devices. Supports multi-step workouts with duration, intensity targets, and various exercise types. Compatible with fulippo/share-your-garmin-workout Chrome extension. license: Garmin FIT SDK - SEE LICENSE IN LICENSE.txt metadata: openclaw: emoji: "πŸƒ" requires: bins: ["node"] install: - id: npm kind: node package: "@garmin/fitsdk" version: "^21.188.0" label: "Install Garmin FIT SDK"

Garmin Workout Skill

Generate Garmin-compatible workout files for import into Garmin Connect or devices. Supports both .FIT binary format and JSON format compatible with the fulippo/share-your-garmin-workout Chrome extension.

Usage

Default: Generate both .FIT and .JSON files

# No --output specified β†’ creates both workout.fit and workout.json in current directory
node /home/claw/.openclaw/workspace/skills/garmin-workout/skill.js --name "Morning Run" --steps '[
  {"name": "Warm up", "duration": 300, "intensity": "warmup", "targetType": "heartRate", "targetMin": 120, "targetMax": 140},
  {"name": "Run", "duration": 1800, "intensity": "active", "targetType": "speed", "targetMin": 8, "targetMax": 10},
  {"name": "Cool down", "duration": 300, "intensity": "cooldown", "targetType": "heartRate", "targetMin": 100, "targetMax": 120}
]'

Output path determines format

# Output ends in .fit β†’ creates only .FIT file
node /home/claw/.openclaw/workspace/skills/garmin-workout/skill.js --name "Run" --output /tmp/run.fit --steps '[{"name": "Run", "duration": 1800, "intensity": "active"}]'

# Output ends in .json β†’ creates only .JSON file
node /home/claw/.openclaw/workspace/skills/garmin-workout/skill.js --name "Run" --output /tmp/run.json --steps '[{"name": "Run", "duration": 1800, "intensity": "active"}]'

# Output is a directory β†’ creates both .fit and .json in that directory
node /home/claw/.openclaw/workspace/skills/garmin-workout/skill.js --name "Run" --output /tmp/workouts/ --steps '[{"name": "Run", "duration": 1800, "intensity": "active"}]'

All options

node /home/claw/.openclaw/workspace/skills/garmin-workout/skill.js \
  --name "HIIT Session" \
  --output /tmp/hiit.fit \
  --sport running \
  --steps '[
    {"name": "Warm up", "duration": 300, "intensity": "warmup", "targetType": "heartRate", "targetMin": 110, "targetMax": 130},
    {"name": "Sprint", "duration": 60, "intensity": "active", "targetType": "heartRate", "targetMin": 160, "targetMax": 175},
    {"name": "Rest", "duration": 60, "intensity": "rest", "targetType": "heartRate", "targetMin": 100, "targetMax": 120}
  ]'

Options

| Option | Description | |--------|-------------| | --name | Workout name (required) | | --output | Output path, file, or directory (optional - default creates both) | | --steps | JSON array of workout steps (required) | | --sport | Sport type (default: "running") | | --subSport | Sub-sport type (default: "generic") |

Output Behavior

Files Written

The skill writes files to disk based on the output specification:

| Output Specified | Creates | |-----------------|---------| | None (default) | workout-name.fit and workout-name.json in current directory | | /path/file.fit | /path/file.fit only | | /path/file.json | /path/file.json only | | /path/dir/ | /path/dir/workout-name.fit and /path/dir/workout-name.json |

JSON Output to stdout

When generating JSON output, the skill also prints the full JSON content to stdout after writing the file. This allows users to copy/paste the JSON directly into the Chrome extension import without needing to read the file.

Important: When using this skill, always include the JSON output (between the --- JSON OUTPUT --- markers) in your response to the user. The JSON string should be part of the assistant's response output so users can easily copy/paste it for Garmin Connect import.

Example output:

βœ… Files written:
   β€’ test-run.json (JSON, 456 bytes)

--- JSON OUTPUT (copy for Garmin Connect import) ---
{
  "workoutName": "Test Run",
  "sportType": {
    "sportTypeId": 1,
    "sportTypeKey": "running"
  },
  ...
}
--- END JSON OUTPUT ---

This is especially useful for workflows where you want to pipe or capture the JSON output:

node scripts/skill.js --name "Run" --steps '[...]' | jq '.workoutName'

## Step Object Fields

Each step in the steps array requires:

| Field | Type | Description |
|-------|------|-------------|
| `name` | string | Step name |
| `duration` | number | Duration in seconds |
| `intensity` | string | Intensity: "warmup", "active", "cooldown", "rest" |
| `targetType` | string | Target metric: "heartRate", "speed", "power", "cadence", "pace" (optional) |
| `targetMin` | number | Minimum target value (FIT only, optional) |
| `targetMax` | number | Maximum target value (FIT only, optional) |
| `durationType` | string | Duration type: "time" (default) or "distance" (optional) |

## JSON Schema (for fulippo Chrome Extension)

The JSON output follows the exact schema used by the [fulippo/share-your-garmin-workout](https://github.com/fulippo/share-your-garmin-workout) Chrome extension.

### JSON Output Example

```json
{
  "workoutName": "Morning Run",
  "sportType": {
    "sportTypeId": 1,
    "sportTypeKey": "running"
  },
  "workoutSegments": [{
    "segmentOrder": 1,
    "workoutSteps": [
      {
        "stepId": null,
        "stepName": "Warm up",
        "stepType": {
          "stepTypeId": 3,
          "stepTypeKey": "time"
        },
        "duration": {
          "type": "time",
          "value": 300
        },
        "intensity": {
          "intensityId": 0,
          "intensityKey": "warmup"
        },
        "targetType": {
          "stepTargetId": 0,
          "stepTargetKey": "noTarget"
        }
      }
    ]
  }]
}

JSON Schema Reference

| Field | Type | Description | |-------|------|-------------| | workoutName | string | Name of the workout | | sportType | object | Sport type with sportTypeId and sportTypeKey | | workoutSegments | array | Array of workout segments |

Sport Types

| Sport | sportTypeId | sportTypeKey | |-------|-------------|--------------| | running | 1 | running | | cycling | 2 | cycling | | swimming | 4 | swimming | | walking | 8 | walking | | fitness | 12 | fitness | | strength | 13 | strength | | cardio | 15 | cardio | | hiking | 18 | hiking | | rowing | 19 | rowing | | elliptical | 21 | elliptical | | stairClimbing | 22 | stairClimbing |

Step Types

| Type | stepTypeId | stepTypeKey | |------|-------------|-------------| | time | 3 | time | | distance | 1 | distance |

Intensities

| Intensity | intensityId | intensityKey | |-----------|-------------|--------------| | warmup | 0 | warmup | | active | 1 | active | | cooldown | 2 | cooldown | | rest | 3 | rest |

Target Types

| Target | stepTargetId | stepTargetKey | |--------|---------------|---------------| | noTarget | 0 | noTarget | | heartRate | 2 | heartRate | | speed | 3 | speed | | power | 5 | power | | cadence | 7 | cadence | | pace | 9 | pace |

Validation

FIT Validation

  • Uses official @garmin/fitsdk package for encoding
  • Generates standard Garmin FIT profile-compliant files
  • All messages are validated against FIT profile definitions
  • Compatible with Garmin's validation requirements

JSON Validation

The skill includes built-in JSON schema validation that checks:

  • Required top-level fields: workoutName, sportType, workoutSegments
  • Sport type: Valid sportTypeId and sportTypeKey
  • Workout segments: Non-empty array with valid segment order
  • Step validation per step:
    • stepId (can be null or number)
    • stepName (string)
    • stepType with stepTypeId and stepTypeKey
    • duration with type and value
    • intensity with intensityId and intensityKey
    • targetType with stepTargetId and stepTargetKey

Validation runs automatically when generating JSON output and reports any issues.

Import to Garmin Connect

Option 1: Direct Import (.FIT files)

  1. Generate the .FIT file
  2. Open Garmin Connect at connect.garmin.com
  3. Go to Training > Workouts
  4. Click Import and select the generated .FIT file
  5. Sync to your device

Option 2: JSON Import (with Chrome extension)

  1. Generate the JSON file (specify output ending in .json)
  2. Install the fulippo/share-your-garmin-workout Chrome extension
  3. Open Garmin Connect at connect.garmin.com
  4. Go to Training > Workouts
  5. Click Import Workout (added by the extension)
  6. Select the generated JSON file
  7. The workout will be imported directly to your Garmin Connect account

Supported Sports

| Sport | Valid Values | |-------|-------------| | running | generic, trail, road, track, treadmill | | cycling | generic, road, mountain, cross, indoor, elliptical | | swimming | generic, openWater, pool | | walking | generic, hiking, nordic | | fitness | generic, indoor, outdoor | | strength | generic | | cardio | generic, indoor, outdoor | | hiking | generic, trail, mountain | | rowing | generic, indoor, openWater | | elliptical | generic | | stairClimbing | generic, stairClimbing, hillClimbing |

Note: Use standard Garmin enum values. Custom values like "interval" are not valid.

Examples

Simple 30-minute run (both formats)

# Creates morning-run.fit and morning-run.json
node /home/claw/.openclaw/workspace/skills/garmin-workout/skill.js \
  --name "Easy Run" \
  --steps '[{"name": "Run", "duration": 1800, "intensity": "active", "targetType": "speed", "targetMin": 8, "targetMax": 10}]'

Interval workout (.FIT only)

node /home/claw/.openclaw/workspace/skills/garmin-workout/skill.js \
  --name "HIIT Session" \
  --output /tmp/hiit.fit \
  --steps '[
    {"name": "Warm up", "duration": 300, "intensity": "warmup", "targetType": "heartRate", "targetMin": 110, "targetMax": 130},
    {"name": "Sprint", "duration": 60, "intensity": "active", "targetType": "heartRate", "targetMin": 160, "targetMax": 175},
    {"name": "Rest", "duration": 60, "intensity": "rest", "targetType": "heartRate", "targetMin": 100, "targetMax": 120},
    {"name": "Cool down", "duration": 300, "intensity": "cooldown", "targetType": "heartRate", "targetMin": 110, "targetMax": 130}
  ]'

JSON for Chrome extension import

node /home/claw/.openclaw/workspace/skills/garmin-workout/skill.js \
  --name "Tempo Run" \
  --output /tmp/tempo-run.json \
  --steps '[
    {"name": "Warm up", "duration": 600, "intensity": "warmup"},
    {"name": "Tempo", "duration": 1200, "intensity": "active"},
    {"name": "Cool down", "duration": 600, "intensity": "cooldown"}
  ]'

Cycling workout (both formats in custom directory)

node /home/claw/.openclaw/workspace/skills/garmin-workout/skill.js \
  --name "FTP Test" \
  --output /tmp/garmin-workouts/ \
  --sport cycling \
  --steps '[
    {"name": "Warm up", "duration": 600, "intensity": "warmup"},
    {"name": "Build", "duration": 300, "intensity": "active"},
    {"name": "All out", "duration": 1200, "intensity": "active"},
    {"name": "Recovery", "duration": 300, "intensity": "rest"},
    {"name": "All out", "duration": 1200, "intensity": "active"},
    {"name": "Cool down", "duration": 600, "intensity": "cooldown"}
  ]'

Implementation

Uses the official @garmin/fitsdk package to encode valid FIT files:

  • Requires Node.js v14+
  • Generates standard Garmin workout files
  • Compatible with all Garmin devices that support custom workouts
  • Automatic JSON schema validation for JSON output

Notes

  • Use standard Garmin enum values for sport, subSport, intensity, and targetType
  • Invalid enum values will cause errors - always use valid FIT profile values
  • The skill generates compliant .FIT files that pass Garmin's validation checks
  • JSON validation runs automatically and reports issues without failing
  • Default behavior generates both formats for maximum compatibility

Contract & API

Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.

MissingGITHUB OPENCLEW

Contract coverage

Status

missing

Auth

None

Streaming

No

Data region

Unspecified

Protocol support

OpenClaw: self-declared

Requires: none

Forbidden: none

Guardrails

Operational confidence: low

No positive guardrails captured.
Invocation examples
curl -s "https://www.xpersona.co/api/v1/agents/linksawakening-garmin-workout/snapshot"
curl -s "https://www.xpersona.co/api/v1/agents/linksawakening-garmin-workout/contract"
curl -s "https://www.xpersona.co/api/v1/agents/linksawakening-garmin-workout/trust"

Reliability & Benchmarks

Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.

Missingruntime-metrics

Trust signals

Handshake

UNKNOWN

Confidence

unknown

Attempts 30d

unknown

Fallback rate

unknown

Runtime metrics

Observed P50

unknown

Observed P95

unknown

Rate limit

unknown

Estimated cost

unknown

Do not use if

Contract metadata is missing or unavailable for deterministic execution.
No benchmark suites or observed failure patterns are available.

Media & Demo

Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.

Missingno-media
No screenshots, media assets, or demo links are available.

Related Agents

Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.

Self-declaredprotocol-neighbors
Github ReposUpdated 6mo agoRank 70

activepieces

AI Agents & MCPs & AI Workflow Automation β€’ (~400 MCP servers for AI agents) β€’ AI Automation / AI Agent with MCPs β€’ AI Workflows & AI Agents β€’ MCPs for AI Agents

OPENCLAW
Github ReposUpdated 6mo agoRank 70

cherry-studio

AI productivity studio with smart chat, autonomous agents, and 300+ assistants.

MCPOPENCLAW
Github ReposUpdated 6mo agoRank 70

AionUi

Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!

MCPOPENCLAW
Github ReposUpdated 7mo agoRank 70

CopilotKit

The Frontend for Agents & Generative UI. React + Angular

OPENCLAW
Machine Appendix

Contract JSON

{
  "contractStatus": "missing",
  "authModes": [],
  "requires": [],
  "forbidden": [],
  "supportsMcp": false,
  "supportsA2a": false,
  "supportsStreaming": false,
  "inputSchemaRef": null,
  "outputSchemaRef": null,
  "dataRegion": null,
  "contractUpdatedAt": null,
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Invocation Guide

{
  "preferredApi": {
    "snapshotUrl": "https://www.xpersona.co/api/v1/agents/linksawakening-garmin-workout/snapshot",
    "contractUrl": "https://www.xpersona.co/api/v1/agents/linksawakening-garmin-workout/contract",
    "trustUrl": "https://www.xpersona.co/api/v1/agents/linksawakening-garmin-workout/trust"
  },
  "curlExamples": [
    "curl -s \"https://www.xpersona.co/api/v1/agents/linksawakening-garmin-workout/snapshot\"",
    "curl -s \"https://www.xpersona.co/api/v1/agents/linksawakening-garmin-workout/contract\"",
    "curl -s \"https://www.xpersona.co/api/v1/agents/linksawakening-garmin-workout/trust\""
  ],
  "jsonRequestTemplate": {
    "query": "summarize this repo",
    "constraints": {
      "maxLatencyMs": 2000,
      "protocolPreference": [
        "OPENCLEW"
      ]
    }
  },
  "jsonResponseTemplate": {
    "ok": true,
    "result": {
      "summary": "...",
      "confidence": 0.9
    },
    "meta": {
      "source": "GITHUB_OPENCLEW",
      "generatedAt": "2026-10-09T02:25:57.983Z"
    }
  },
  "retryPolicy": {
    "maxAttempts": 3,
    "backoffMs": [
      500,
      1500,
      3500
    ],
    "retryableConditions": [
      "HTTP_429",
      "HTTP_503",
      "NETWORK_TIMEOUT"
    ]
  }
}

Trust JSON

{
  "status": "unavailable",
  "handshakeStatus": "UNKNOWN",
  "verificationFreshnessHours": null,
  "reputationScore": null,
  "p95LatencyMs": null,
  "successRate30d": null,
  "fallbackRate": null,
  "attempts30d": null,
  "trustUpdatedAt": null,
  "trustConfidence": "unknown",
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Capability Matrix

{
  "rows": [
    {
      "key": "OPENCLEW",
      "type": "protocol",
      "support": "unknown",
      "confidenceSource": "profile",
      "notes": "Listed on profile"
    },
    {
      "key": "easily",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "be",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "both",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "custom",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    }
  ],
  "flattenedTokens": "protocol:OPENCLEW|unknown|profile capability:easily|supported|profile capability:be|supported|profile capability:both|supported|profile capability:custom|supported|profile"
}

Facts JSON

[
  {
    "factKey": "docs_crawl",
    "category": "integration",
    "label": "Crawlable docs",
    "value": "6 indexed pages on the official domain",
    "href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceType": "search_document",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:03:46.393Z",
    "isPublic": true
  },
  {
    "factKey": "vendor",
    "category": "vendor",
    "label": "Vendor",
    "value": "Linksawakening",
    "href": "https://github.com/linksawakening/garmin-workout",
    "sourceUrl": "https://github.com/linksawakening/garmin-workout",
    "sourceType": "profile",
    "confidence": "medium",
    "observedAt": "2026-04-14T22:23:50.745Z",
    "isPublic": true
  },
  {
    "factKey": "protocols",
    "category": "compatibility",
    "label": "Protocol compatibility",
    "value": "OpenClaw",
    "href": "https://www.xpersona.co/api/v1/agents/linksawakening-garmin-workout/contract",
    "sourceUrl": "https://www.xpersona.co/api/v1/agents/linksawakening-garmin-workout/contract",
    "sourceType": "contract",
    "confidence": "medium",
    "observedAt": "2026-04-14T22:23:50.745Z",
    "isPublic": true
  },
  {
    "factKey": "handshake_status",
    "category": "security",
    "label": "Handshake status",
    "value": "UNKNOWN",
    "href": "https://www.xpersona.co/api/v1/agents/linksawakening-garmin-workout/trust",
    "sourceUrl": "https://www.xpersona.co/api/v1/agents/linksawakening-garmin-workout/trust",
    "sourceType": "trust",
    "confidence": "medium",
    "observedAt": null,
    "isPublic": true
  }
]

Change Events JSON

[
  {
    "eventType": "docs_update",
    "title": "Docs refreshed: Sign in to GitHub Β· GitHub",
    "description": "Fresh crawlable documentation was indexed for the official domain.",
    "href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceType": "search_document",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:03:46.393Z",
    "isPublic": true
  }
]

Sponsored

Ads related to garmin-workout and adjacent AI workflows.