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.
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共 1 个版本