← Files Zone2AIARCHIVED FILE
plugin.json
6.94 KB · Nov 3, 2026 · 18:58 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "zone2ai",
"version": "1.0.0",
"description": "Estimate your Zone 2 heart rate range from your age and resting heart rate, with the same method as the Zone2AI app.",
"author": {
"name": "Unbounded Technologies LLC",
"email": "support@zone2ai.com",
"url": "https://www.zone2ai.com"
},
"homepage": "https://www.zone2ai.com",
"keywords": [
"zone 2",
"zone 2 heart rate",
"heart rate zones",
"aerobic base",
"MAF heart rate",
"easy run heart rate",
"conversational pace",
"fat burning zone",
"Garmin",
"Apple Watch"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "Zone2AI",
"shortDescription": "Your real Zone 2 heart rate",
"longDescription": "Zone2AI estimates your Zone 2 heart rate range, the easy aerobic intensity that builds endurance, using the same method as the Zone2AI app. Give your age, and your resting heart rate if you know it; a max heart rate you have actually measured makes it more precise. You get the range in beats per minute, a plain line on how it was estimated, and the talk test to check it in your next session. It works for running, cycling and walking, for people aged 16 to 90 who train for general fitness. No sign-in is needed.\n\nIf you mention a heart condition, chest pain, heart-rate medication or pregnancy, ChatGPT tells Zone2AI only that, so it can decline to give a range; nothing is stored. In those cases Zone2AI gives no range and suggests asking your clinician instead.\n\nLimitations: the range is an estimate for general fitness, not medical advice. Zone2AI covers Zone 2 only, not other heart-rate zones, workout plans or medical questions. The result card includes a link to the Zone2AI app and one to its website.",
"developerName": "Unbounded Technologies LLC",
"category": "Healthcare",
"capabilities": [
"Estimate your Zone 2 heart rate range"
],
"websiteURL": "https://www.zone2ai.com",
"supportURL": "https://www.zone2ai.com/about#key-facts",
"privacyPolicyURL": "https://www.zone2ai.com/privacy-policy#chatgpt",
"termsOfServiceURL": "https://www.zone2ai.com/terms-of-service",
"defaultPrompt": [
"What's my zone 2 heart rate? I'm 42 and my resting heart rate is 55.",
"Is 140 bpm zone 2 for a 45 year old?",
"My Apple Watch says zone 2 is 130 to 140. Is that right for me?"
],
"brandColor": "#351C75",
"brandColorDark": "#9B7FE6",
"composerIcon": "./assets/composer-icon.png",
"logo": "./assets/logo.png"
},
"review": {
"test_cases": {
"positive": [
{
"description": "Personal Zone 2 range from age and resting heart rate",
"prompt": "What's my zone 2 heart rate? I'm 42 and my resting heart rate is 55.",
"tools_triggered": "zone2.estimate_range",
"expected_behavior": "Calls zone2.estimate_range with age 42 and resting_hr 55. The card shows 122 to 146 bpm, labelled an estimate, on a heart-rate scale from Resting 55 to Estimated max 178, with the method line, the talk test, and a Get the Zone2AI app button. The chat reply gives the same range in a sentence or two."
},
{
"description": "Age only, so a typical resting heart rate for the age is used",
"prompt": "I'm 38, how do I find my zone 2?",
"tools_triggered": "zone2.estimate_range",
"expected_behavior": "Calls zone2.estimate_range with age 38 (ChatGPT may first ask for a resting heart rate; if none is given it calls with age only). The card and reply show 128 to 151 bpm, and the method line says a typical resting heart rate for the age (65 bpm) was used."
},
{
"description": "Measured max heart rate and resting heart rate",
"prompt": "I'm 60, resting heart rate 58, and my measured max is 172. What's my zone 2?",
"tools_triggered": "zone2.estimate_range",
"expected_behavior": "Calls zone2.estimate_range with age 60, resting_hr 58 and max_hr 172. The card and reply show 120 to 142 bpm, and the method line names both numbers (max 172 bpm, resting 58 bpm)."
},
{
"description": "50 and over with no heart-rate data starts from a conservative range",
"prompt": "I'm 50 and a woman, what's my zone 2?",
"tools_triggered": "zone2.estimate_range",
"expected_behavior": "Calls zone2.estimate_range with age 50 and sex female. The card and reply show 104 to 121 bpm, and the method line says that at 50 and over, with no resting or max heart rate to go on, Zone2AI starts from a conservative range until it sees the person's own heart-rate data."
},
{
"description": "Heart-rate medication returns no range",
"prompt": "I take beta blockers. What's my zone 2? I'm 55.",
"tools_triggered": "zone2.estimate_range",
"expected_behavior": "Calls zone2.estimate_range with age 55 and safety_flags [heart_rate_medication] (or declines without calling the tool). No range is given anywhere. The reply says heart-rate targets change on these medicines, beta blockers make heart-rate zones unreliable, and to ask a clinician for a target. No app button or link is shown with this result."
}
],
"negative": [
{
"description": "Other heart-rate zones and workout plans are out of scope",
"prompt": "Build me a zone 5 interval session.",
"expected_behavior": "zone2.estimate_range is not called. The tool covers Zone 2 only, so ChatGPT answers on its own without the Zone2AI card."
},
{
"description": "Zone 4 is out of scope",
"prompt": "What's my zone 4 heart rate for intervals? I'm 40.",
"expected_behavior": "zone2.estimate_range is not called. The tool description excludes other heart-rate zones, so no Zone2AI card or Zone 2 range is shown."
},
{
"description": "Children are out of scope",
"prompt": "My 10-year-old wants to train in zone 2, what range should she use?",
"expected_behavior": "zone2.estimate_range is not called, because the tool excludes children. If it were called, the server refuses ages under 16 with the message: I need an age between 16 and 90 to estimate a Zone 2 range. No range is given."
}
]
},
"demo_recording_url": "https://www.youtube.com/watch?v=Hkd_3cHE6n4",
"commerce": false,
"commerce_description": "Zone2AI in ChatGPT does not sell anything or process payments."
},
"publication": {
"countries": [],
"release_notes": "Initial release"
},
"apps": "./.app.json"
}
}
}
SHA-256: 13effc90afd4cddaa2ee8e06f64b7ef23297c7a73ba07d873d79adc1d7032ea5