Install
openclaw skills install ouracliAccess Oura Ring health data using the ouracli CLI tool. Use when user asks about "oura data", "sleep stats", "activity data", "heart rate", "readiness score", "stress levels", or wants health metrics from their Oura Ring.
openclaw skills install ouracliRetrieves health and fitness data from the Oura Ring using the ouracli command-line interface.
ALWAYS check for authentication before running ouracli commands. The tool requires a PERSONAL_ACCESS_TOKEN environment variable.
secrets/oura.env or ~/.secrets/oura.envactivity - Daily activity (steps, MET values, calories)sleep - Sleep data (stages, efficiency, heart rate)readiness - Readiness scores and contributorsheartrate - Time-series heart rate data (5-minute resolution)spo2 - Blood oxygen saturation datastress - Daily stress levelsworkout - Workout sessionssession - Activity sessionstag - User-added tagsrest-mode - Rest mode periodspersonal-info - User profile informationall - All available data types# Single date (no quotes needed)
ouracli activity 2025-12-25
ouracli sleep today
ouracli heartrate yesterday
# Relative ranges from today (MUST use quotes)
ouracli activity "7 days" # Last 7 days including today
ouracli sleep "30 days" # Last 30 days
ouracli readiness "2 weeks" # Last 2 weeks
ouracli stress "1 month" # Last month
# Date + duration (MUST use quotes)
ouracli activity "2025-12-01 28 days" # 28 days starting Dec 1
ouracli sleep "2025-09-23 7 days" # Week starting Sept 23
⚠️ CRITICAL: Use quotes when the date range contains spaces!
# ❌ WRONG - Two separate dates
ouracli activity 2025-09-23 2025-09-30
# ❌ WRONG - "to" syntax
ouracli activity "2025-09-23 to 2025-09-30"
# ❌ WRONG - Range operators
ouracli activity "2025-09-23..2025-09-30"
# ❌ WRONG - Relative past expressions
ouracli activity "3 months ago"
If user requests data between two specific dates:
Step 1: Calculate the number of days (inclusive)
Example: Sept 23 to Sept 30 = 7 days
Dec 1 to Dec 31 = 30 days
Step 2: Use the "date + duration" format
# ✅ CORRECT
ouracli activity "2025-09-23 7 days"
ouracli activity "2025-12-01 30 days"
ALWAYS use --json for programmatic data analysis. This is the most reliable format for parsing.
# ✅ RECOMMENDED for AI analysis
ouracli activity "7 days" --json
# Other formats (human-readable)
ouracli activity today --tree # Default: tree structure
ouracli activity "7 days" --markdown # Markdown with charts
ouracli activity "7 days" --html > activity.html # Interactive HTML charts
ouracli activity "7 days" --dataframe # Pandas DataFrame format
# Today's activity
ouracli activity today --json
# Recent sleep data
ouracli sleep "7 days" --json
# Current readiness
ouracli readiness today --json
# Weekly health summary
ouracli all "7 days" --json
# Monthly activity report
ouracli activity "30 days" --json
# Heart rate for specific date
ouracli heartrate "2025-12-15 1 days" --json
# All data grouped by day (HTML report)
ouracli all "7 days" --by-day --html > weekly-report.html
# All data grouped by type
ouracli all "7 days" --by-method --json
⚠️ IMPORTANT: The contributors.resting_heart_rate field in readiness data is a SCORE (0-100), NOT actual BPM:
heartrate command outputDO NOT interpret contributor scores as actual heart rate measurements.
Cause: Used two separate date arguments instead of one quoted range
# ❌ WRONG
ouracli activity 2025-09-23 2025-09-30
# ✅ CORRECT
ouracli activity "2025-09-23 7 days"
Cause: Used unsupported syntax like "to", "..", or relative expressions
# ❌ WRONG
ouracli activity "2025-09-23 to 2025-09-30"
# ✅ CORRECT
ouracli activity "2025-09-23 7 days"
Solutions:
ouracli activity "7 days" --jsonouracli activity "2025-12-25 2 days" --jsonouracli activity "7 days" --json
ouracli sleep today --json
ouracli readiness "2025-12-01 30 days" --json
# Calculate: Sept 30 - Sept 23 = 7 days
ouracli all "2025-09-23 7 days" --json
ouracli heartrate yesterday --json
| User Intent | Command |
|---|---|
| Today's activity | ouracli activity today --json |
| Last week's sleep | ouracli sleep "7 days" --json |
| Current readiness | ouracli readiness today --json |
| Heart rate today | ouracli heartrate today --json |
| Monthly summary | ouracli all "30 days" --json |
| Specific date range | ouracli [TYPE] "YYYY-MM-DD N days" --json |
| All data types | ouracli all "7 days" --json |
--json format for AI analysis