Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Access 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.
Access 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.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
Retrieves 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. Token location: secrets/oura.env or ~/.secrets/oura.env If commands fail with authentication errors, inform the user to obtain a token from: https://cloud.ouraring.com/personal-access-tokens
activity - Daily activity (steps, MET values, calories) sleep - Sleep data (stages, efficiency, heart rate) readiness - Readiness scores and contributors heartrate - Time-series heart rate data (5-minute resolution) spo2 - Blood oxygen saturation data stress - Daily stress levels
workout - Workout sessions session - Activity sessions tag - User-added tags rest-mode - Rest mode periods personal-info - User profile information all - 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: Low score (19, 47) = RHR elevated vs. baseline (negative impact) High score (95, 100) = RHR optimal vs. baseline (positive impact) Actual BPM values are in the heartrate command output DO NOT interpret contributor scores as actual heart rate measurements.
Single-day queries sometimes return empty results due to timezone issues Use date ranges (e.g., "YYYY-MM-DD 2 days") for more reliable results When querying specific dates, consider adding a buffer day
Ring must be synced recently for current data Historical data availability depends on user's Oura subscription If no data is returned, suggest broader date range or check sync status
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: Try a broader date range: ouracli activity "7 days" --json Add buffer days: ouracli activity "2025-12-25 2 days" --json Check if Ring has synced recently Verify date is within available data range
ouracli 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 IntentCommandToday's activityouracli activity today --jsonLast week's sleepouracli sleep "7 days" --jsonCurrent readinessouracli readiness today --jsonHeart rate todayouracli heartrate today --jsonMonthly summaryouracli all "30 days" --jsonSpecific date rangeouracli [TYPE] "YYYY-MM-DD N days" --jsonAll data typesouracli all "7 days" --json
Always prefer --json format for AI analysis Use quotes for all date ranges with spaces Calculate day counts for specific date ranges Check authentication if commands fail Consider timezone quirks when querying specific dates
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.