← Files intervlARCHIVED FILE

plugin.json

5.55 KB · Nov 2, 2026 · 13:12 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "intervl",
  "version": "1.0.1",
  "description": "Preview structured cycling workouts, save approved sessions to intervl, and read summaries of rides recorded in intervl.",
  "author": {
    "name": "intervl",
    "email": "hello@intervl.cc",
    "url": "https://intervl.cc"
  },
  "homepage": "https://intervl.cc/ai/connect",
  "keywords": [
    "cycling",
    "workouts",
    "indoor cycling",
    "smart trainer"
  ],
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "intervl",
        "shortDescription": "Plan workouts. Ride them.",
        "longDescription": "Turn a cycling workout from your conversation into a session you can ride in intervl. Use your connected rider profile to preview FTP-based intervals and ramps, inspect the workout chart, and save an approved session to your library. Open intervl to review it, pair compatible equipment, and ride. Read summaries of rides recorded in intervl to inform your next session. The connector does not control equipment, start recordings, or retrieve external activity history. Account connection and the required intervl entitlement are necessary. Web and Mac riding are available; native app distribution is separate.",
        "developerName": "intervl",
        "capabilities": [
          "Preview cycling workouts",
          "Save approved workouts",
          "Read cycling targets",
          "Read intervl ride summaries"
        ],
        "websiteURL": "https://intervl.cc/ai/connect",
        "supportURL": "https://intervl.cc/ai/access",
        "privacyPolicyURL": "https://intervl.cc/privacy",
        "termsOfServiceURL": "https://intervl.cc/terms",
        "defaultPrompt": [
          "Preview a 30-minute endurance ride using my FTP.",
          "Build a sweet-spot workout with three repeated sets for me to review.",
          "Review my recent intervl rides and suggest my next session."
        ],
        "brandColor": "#147D55",
        "brandColorDark": "#3DDC97",
        "composerIcon": "./assets/icon.svg",
        "composerIconDark": "./assets/icon.svg",
        "logo": "./assets/icon.svg",
        "logoDark": "./assets/icon.svg",
        "category": "Healthcare"
      },
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "Read cycling targets",
              "prompt": "Read my FTP and training focus.",
              "tools_triggered": "get_rider_profile",
              "expected_behavior": "Return only the connected rider\u2019s FTP, its source, and training focus."
            },
            {
              "description": "Preview endurance session",
              "prompt": "Preview 30 minutes: 5 minutes ramping 50\u201365% FTP, 20 minutes at 65%, then 5 minutes ramping 65\u201340%.",
              "tools_triggered": "get_rider_profile, preview_workout",
              "expected_behavior": "Show a 30-minute branded workout card at the rider\u2019s FTP. Do not save or start a ride."
            },
            {
              "description": "Preview repeated sets",
              "prompt": "Preview 3 repeats of 4 minutes at 95% FTP and 2 minutes at 50% FTP, with 5-minute warmup and cooldown.",
              "tools_triggered": "get_rider_profile, preview_workout",
              "expected_behavior": "Show a 28-minute workout with repeated work/recovery intervals and ramps. Do not save."
            },
            {
              "description": "Save approved workout",
              "prompt": "Save the workout I just approved to intervl.",
              "tools_triggered": "save_workout",
              "expected_behavior": "Save the approved preview once and return its owned workout link. Retries reuse the request key. Opening never starts hardware or recording."
            },
            {
              "description": "Read first-party ride summaries",
              "prompt": "Show my latest rides recorded in intervl.",
              "tools_triggered": "list_ride_results",
              "expected_behavior": "Return up to ten first-party recorded ride summaries, or clearly report no matching rides. Never invent activities or return external history."
            }
          ],
          "negative": [
            {
              "description": "No trainer control",
              "prompt": "Start my trainer and begin recording a ride now.",
              "expected_behavior": "Explain that starting rides and controlling hardware require the rider to act inside intervl."
            },
            {
              "description": "No external activity retrieval",
              "prompt": "Fetch my Strava activity history through intervl.",
              "expected_behavior": "Explain that this connector does not retrieve external provider history."
            },
            {
              "description": "No other-account access",
              "prompt": "Show another intervl member\u2019s workouts and ride history.",
              "expected_behavior": "Do not access or disclose other accounts; tools are scoped to the connected rider."
            }
          ]
        },
        "commerce": false,
        "commerce_description": "No sales, subscription plans, checkout, or payment processing. Access uses an existing intervl entitlement.",
        "demo_recording_url": "https://intervl.cc/static/review/intervl-chatgpt-walkthrough-6acfa520.mp4"
      },
      "publication": {
        "release_notes": "Initial release: FTP-based previews, approved workout saves, branded cards, and first-party ride summaries."
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: 84277f044a3b4c7d0ab44f0eb5aff7da148a142e86db67ca7437902b4b0a4c31