Token导航 LogoToken导航TokenDH.com
研究检索敏感数据github未标认证来源可访问许可证需确认审计提醒

intervals-icu间隔 ICU

Agent Skill

intervals-icu 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

264

周安装

11

GitHub Stars

2

下载量

88
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:intervals-icu(间隔 ICU)
来源仓库:https://github.com/disco-trooper/skills
仓库路径:skills/intervals-icu
安装命令:
npx skills add https://github.com/disco-trooper/skills --skill intervals-icu
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/disco-trooper/skills --skill intervals-icu

简介

用于从 intervals.icu API 获取骑行训练数据。

  • 适合配合其他技能分析活动、计算区间功率或管理训练负荷。
  • 使用时需先获取数据再交由专用分析模块处理,保持职责分离。
  • 安装前请确认权限范围和维护状态,注意可能触发网络请求。
  • intervals-icu 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Intervals.icu API Skill

Skill Relationship

┌─────────────────┐     fetch data      ┌───────────────────┐
│  intervals-icu  │ ──────────────────► │ cycling-training  │
│   (DATA API)    │                     │    (ANALYSIS)     │
│                 │ ◄────────────────── │                   │
│ • wellness      │   interpret results │ • zone calc       │
│ • activities    │                     │ • periodization   │
│ • power curves  │                     │ • workout design  │
│ • fitness       │                     │ • load management │
└─────────────────┘                     └───────────────────┘

Usage pattern:

  1. Use intervals-icu to fetch data from API
  2. Use cycling-training to analyze and interpret
  3. Use intervals-icu to update wellness/events

API wrapper for intervals.icu cycling training platform. Designed to work alongside the cycling-training skill.

Quick Start

# Set credentials (one-time)
export INTERVALS_API_KEY="your_api_key"
export INTERVALS_ATHLETE_ID="iXXXXX"

# Use the API helper
~/.claude/skills/intervals-icu/scripts/api.sh wellness today
~/.claude/skills/intervals-icu/scripts/api.sh activities 2024-01-01 2024-01-31

Authentication

Get your API key from https://intervals.icu/settings → Developer Settings → API Key.

Find athlete ID in the URL when logged in: intervals.icu/athlete/iXXXXX/...

Rate Limiting

Intervals.icu API has rate limits. The script handles this with:

  • Automatic retry with exponential backoff (default: 3 attempts)
  • Configurable via INTERVALS_MAX_RETRIES environment variable
# Increase retries for bulk operations
export INTERVALS_MAX_RETRIES=5

If you hit rate limits frequently:

  • Add delays between bulk requests: sleep 1
  • Use date ranges instead of individual requests
  • Cache responses locally for analysis

Prerequisites

  • curl - Pre-installed on most systems
  • jq - brew install jq (macOS) / apt install jq (Linux)
  • bats-core - Optional, for tests: brew install bats-core

API Helper Script

Use scripts/api.sh to handle authentication and common operations:

CommandDescription
api.sh wellness [date]Get wellness for date (default: today)
api.sh wellness-range <start> <end>Get wellness for date range
api.sh wellness-update <date> <json>Update wellness fields
api.sh activities <start> <end> [format] [--all]List activities (--all for pagination)
api.sh activity <id>Get single activity details
api.sh activity-streams <id> [types]Get activity data streams
api.sh activity-upload <file>Upload activity (.fit,.gpx,.tcx)
api.sh athleteGet athlete profile
api.sh fitnessGet current CTL/ATL/TSB
api.sh zonesGet power/HR zone settings
api.sh events <start> <end>Get planned events/workouts
api.sh event-create <date> <json>Create planned workout/event
api.sh power-curves <start> <end> [format]Power curves (json/summary/seconds)

Examples

# Get today's wellness
~/.claude/skills/intervals-icu/scripts/api.sh wellness

# Get wellness for specific date
~/.claude/skills/intervals-icu/scripts/api.sh wellness 2024-01-15

# Update wellness (weight and sleep)
~/.claude/skills/intervals-icu/scripts/api.sh wellness-update 2024-01-15 '{"weight": 72.5, "sleepSecs": 28800}'

# Get last month's activities
~/.claude/skills/intervals-icu/scripts/api.sh activities 2024-01-01 2024-01-31

# Export activities as CSV
~/.claude/skills/intervals-icu/scripts/api.sh activities 2024-01-01 2024-01-31 csv > activities.csv

Direct curl Examples

For custom operations not covered by the helper:

# Base URL
BASE="https://intervals.icu/api/v1"

# Auth header
AUTH="Authorization: Basic $(echo -n "API_KEY:$INTERVALS_API_KEY" | base64)"

# Get power curve
curl -s -H "$AUTH" "$BASE/athlete/$INTERVALS_ATHLETE_ID/power-curves?oldest=2024-01-01&newest=2024-12-31"

# Get streams for activity
curl -s -H "$AUTH" "$BASE/activity/iXXXX/streams?types=watts,heartrate,cadence"

# Upload activity
curl -s -H "$AUTH" -F "file=@ride.fit" "$BASE/athlete/$INTERVALS_ATHLETE_ID/activities"

Key Endpoints Reference

EndpointMethodPurpose
/athlete/{id}GETAthlete profile
/athlete/{id}/wellness/{date}GET/PUTWellness data
/athlete/{id}/wellnessGETWellness range (add ?oldest=&newest=)
/athlete/{id}/activitiesGETActivities list
/activity/{id}GETActivity details
/activity/{id}/streamsGETActivity data streams
/athlete/{id}/eventsGETPlanned workouts/events
/athlete/{id}/power-curvesGETPower duration curves

Wellness Fields

FieldTypeRangeDescription
weightfloat30-200 kgBody weight
restingHRint30-100 bpmResting heart rate
hrvfloat10-150 msHRV RMSSD (typical: 20-80)
hrvSDNNfloat10-200 msHRV SDNN
sleepSecsint0-43200Sleep duration (0-12h in seconds)
sleepScorefloat0-100Sleep quality percentage
sleepQualityint1-51=poor, 5=excellent
fatigueint1-51=fresh, 5=exhausted
moodint1-51=bad, 5=great
motivationint1-5Training motivation
readinessint1-5Training readiness
stressint1-5Stress level
sorenessint1-5Muscle soreness
ctlfloat0-200Chronic Training Load (fitness)
atlfloat0-300Acute Training Load (fatigue)
rampRatefloat-10 to +10CTL weekly change rate

Integrate with cycling-training

Use both skills together:

  1. Fetch data with intervals-icu skill: ~/.claude/skills/intervals-icu/scripts/api.sh wellness-range 2024-01-01 2024-01-31 > wellness.json ~/.claude/skills/intervals-icu/scripts/api.sh activities 2024-01-01 2024-01-31 > activities.json
  2. Analyze with cycling-training skill:

- Calculate training load distribution - Check polarization index - Evaluate recovery status based on HRV trends - Plan next mesocycle based on CTL/ATL/TSB

  1. Update wellness after morning check-in: ~/.claude/skills/intervals-icu/scripts/api.sh wellness-update today '{"weight": 72.5, "sleepSecs": 28800, "readiness": 4}'

End-to-End Workflow Example

Complete example: Morning HRV-based workout adjustment using both skills.

Scenario

You wake up, check HRV, and want to adjust today's planned workout based on recovery status.

Step 1: Fetch morning wellness data

# Get today's wellness (HRV from device sync)
WELLNESS=$(~/.claude/skills/intervals-icu/scripts/api.sh wellness today)
echo "$WELLNESS" | jq '{hrv, restingHR, sleepSecs, ctl, atl}'

Output:

{
  "hrv": 42.5,
  "restingHR": 54,
  "sleepSecs": 25200,
  "ctl": 65.3,
  "atl": 72.1
}

Step 2: Analyze with cycling-training skill

Based on the data:

  • HRV: 42.5 ms (below your baseline of 50 ms = -15%)
  • TSB: 65.3 - 72.1 = -6.8 (slightly fatigued)
  • Sleep: 7 hours (adequate but not optimal)

cycling-training recommendation: Reduce intensity. Convert threshold workout to endurance/recovery.

Step 3: Update today's planned event

# Find today's planned workout
TODAY=$(date +%Y-%m-%d)
EVENTS=$(~/.claude/skills/intervals-icu/scripts/api.sh events $TODAY $TODAY)
EVENT_ID=$(echo "$EVENTS" | jq -r '.[0].id')

# Update to easier workout
~/.claude/skills/intervals-icu/scripts/api.sh event-update "$EVENT_ID" '{
  "name": "Recovery Ride (HRV adjusted)",
  "description": "Original: Threshold intervals. Adjusted due to low HRV (-15% from baseline).",
  "icu_training_load": 40
}'

Step 4: Log subjective wellness

~/.claude/skills/intervals-icu/scripts/api.sh wellness-update today '{
  "readiness": 3,
  "fatigue": 3,
  "mood": 4,
  "soreness": 2
}'

Decision Matrix

HRV vs BaselineTSBRecommendation
>+10%>0Execute as planned or add intensity
±10%>0Execute as planned
±10%<0Execute but monitor
<-10%AnyReduce intensity or rest
<-20%AnyRest day

Testing

Run the test suite:

# Requires: bats-core
# Install: brew install bats-core (macOS) or apt install bats (Linux)

~/.claude/skills/intervals-icu/tests/run_tests.sh

Tests verify:

  • Help and argument validation
  • Environment variable checks
  • Date parsing (cross-platform)
  • JSON parsing with mock fixtures
  • Power curve calculations

Troubleshooting

Common Errors

ErrorCauseSolution
HTTP 401Invalid API keyRegenerate key in settings
HTTP 403No permissionCheck athlete ID ownership
HTTP 404Resource not foundVerify date format (YYYY-MM-DD)
HTTP 429Rate limitedWait 60s, reduce request frequency
"jq: command not found"jq not installedbrew install jq (macOS) / apt install jq (Linux)
Empty responseNo data for date rangeCheck date range contains activities
"Invalid JSON"Malformed JSON payloadValidate JSON: `echo '{"key": "value"}'

Debug Mode

Enable verbose output for debugging:

# Show curl commands
export INTERVALS_DEBUG=1
~/.claude/skills/intervals-icu/scripts/api.sh wellness today

Common Issues

Issue: Activities not syncing from Garmin/Wahoo

  • Check device sync in intervals.icu settings
  • Verify connection status with fitness platform
  • Manual upload: api.sh activity-upload ride.fit

Issue: HRV not appearing in wellness

  • HRV requires compatible device (Garmin, Wahoo, Oura, etc.)
  • Check device sync completed before fetching
  • Some devices sync HRV with delay (up to 2 hours)

Issue: Power curves show 0 for some durations

  • Need activity with sustained effort at that duration
  • Indoor trainers may have gaps in data
  • Check activity streams: api.sh activity-streams <id> watts

Issue: CSV export has wrong encoding

  • Intervals.icu returns UTF-8
  • If Excel shows garbled text: Import as UTF-8, not auto-detect

Undocumented Endpoints

For endpoints not covered by api.sh, use Context7:

// Find Intervals.icu docs
mcp__plugin_context7_context7__resolve-library-id({
  libraryName: "intervals.icu"
})

// Query specific endpoint
mcp__plugin_context7_context7__query-docs({
  libraryId: "/websites/intervals_icu_api_v1",
  query: "how to create workout library entry"
})

Common Workflows

Morning Wellness Check-in

# Get HRV device data (if synced)
~/.claude/skills/intervals-icu/scripts/api.sh wellness today

# Update subjective metrics
~/.claude/skills/intervals-icu/scripts/api.sh wellness-update today '{"readiness": 4, "mood": 4, "soreness": 2}'

Weekly Training Review

# Get last 7 days
END=$(date +%Y-%m-%d)
START=$(date -v-7d +%Y-%m-%d 2>/dev/null || date -d "7 days ago" +%Y-%m-%d)

~/.claude/skills/intervals-icu/scripts/api.sh activities $START $END
~/.claude/skills/intervals-icu/scripts/api.sh wellness-range $START $END
~/.claude/skills/intervals-icu/scripts/api.sh fitness  # Current CTL/ATL/TSB

Export for Analysis

# CSV export for spreadsheet analysis
~/.claude/skills/intervals-icu/scripts/api.sh activities 2024-01-01 2024-12-31 csv > yearly_activities.csv
~/.claude/skills/intervals-icu/scripts/api.sh wellness-range 2024-01-01 2024-12-31 csv > yearly_wellness.csv

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

36.33%
按下载量换算32

Claude

31.5%
按下载量换算28

Cursor

17.07%
按下载量换算15

Gemini CLI

8.89%
按下载量换算8

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills