thinkfleetai/thinkfleet-engine

oura-analytics

Oura Ring data integration and analytics.

First seen Mar 1, 2026

Installation

$ npx skills add thinkfleetai/thinkfleet-engine --skill oura-analytics

Summary

  • Oura Ring data integration and analytics.
  • Fetch sleep scores, readiness, activity, HRV, and trends from the Oura Cloud API.
  • Generate automated reports, correlations with productivity, and trigger-based alerts for low recovery days.
  • Requires OURA_API_TOKEN (get at cloud.ouraring.com).

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from thinkfleetai/thinkfleet-engine · top by installs.

npx skills add thinkfleetai/thinkfleet-engine

Browse all from thinkfleetai/thinkfleet-engine

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

License LICENSE
Default branch main
Open issues 0
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,290 B
  • docs SUMMARY.md 306 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 2 installs

SKILL.md

Oura Analytics

Quick Start

# Set Oura API token
export OURA_API_TOKEN="your_personal_access_token"

# Fetch sleep data (last 7 days)
python {baseDir}/scripts/oura_api.py sleep --days 7

# Get readiness summary
python {baseDir}/scripts/oura_api.py readiness --days 7

# Generate weekly report
python {baseDir}/scripts/oura_api.py report --type weekly

When to Use

Use this skill when:

  • Fetching Oura Ring metrics (sleep, readiness, activity, HRV)
  • Analyzing recovery trends over time
  • Correlating sleep quality with productivity/events
  • Setting up automated alerts for low readiness
  • Generating daily/weekly/monthly health reports

Core Workflows

1. Data Fetching

export PYTHONPATH="{baseDir}/scripts"
python - <<'PY'
from oura_api import OuraClient

client = OuraClient(token="YOUR_TOKEN")
sleep_data = client.get_sleep(start_date="2026-01-01", end_date="2026-01-16")
readiness_data = client.get_readiness(start_date="2026-01-01", end_date="2026-01-16")
print(len(sleep_data), len(readiness_data))
PY

2. Trend Analysis

export PYTHONPATH="{baseDir}/scripts"
python - <<'PY'
from oura_api import OuraClient, OuraAnalyzer

client = OuraClient(token="YOUR_TOKEN")
sleep_data = client.get_sleep(start_date="2026-01-01", end_date="2026-01-16")
readiness_data = client.get_readiness(start_date="2026-01-01", end_date="2026-01-16")

analyzer = OuraAnalyzer(sleep_data, readiness_data)
avg_sleep = analyzer.average_metric(sleep_data, "score")
avg_readiness = analyzer.average_metric(readiness_data, "score")
trend = analyzer.trend(sleep_data, "average_hrv")
print(avg_sleep, avg_readiness, trend)
PY

3. Alerts

python {baseDir}/scripts/alerts.py --days 7 --readiness 60 --efficiency 80

Environment

Required:

  • OURAAPITOKEN

Optional (used for alerts/reports/timezone/output):

  • KESSLERTELEGRAMBOTTOKEN (fallback to TELEGRAMBOT_TOKEN)
  • TELEGRAMCHATID
  • USER_TIMEZONE
  • OURAOUTPUTDIR

Scripts

  • scripts/oura_api.py - Oura Cloud API wrapper with OuraAnalyzer and OuraReporter classes
  • scripts/alerts.py - Threshold-based notifications (CLI: python {baseDir}/scripts/alerts.py --days 7 --readiness 60)
  • scripts/weekly_report.py - Weekly report generator

References

  • references/api.md - Oura Cloud API documentation
  • references/metrics.md - Metric definitions and interpretations

Automation (Cron Jobs)

Cron jobs are configured in ThinkFleet's gateway, not in this repo. Add these to your ThinkFleet setup:

Daily Morning Briefing (8:00 AM)

thinkfleet cron add \
  --name "Daily Oura Health Report (Hybrid)" \
  --cron "0 8 * * *" \
  --tz "America/Los_Angeles" \
  --session isolated \
  --wake next-heartbeat \
  --deliver \
  --channel telegram \
  --target "<YOUR_TELEGRAM_CHAT_ID>" \
  --message "Run the daily Oura health report with hybrid format: Execute bash /path/to/your/scripts/daily-oura-report-hybrid.sh"

Weekly Sleep Report (Sunday 8:00 AM)

thinkfleet cron add \
  --name "Weekly Oura Sleep Report" \
  --cron "0 8 * * 0" \
  --tz "America/Los_Angeles" \
  --session isolated \
  --wake next-heartbeat \
  --deliver \
  --channel telegram \
  --target "<YOUR_TELEGRAM_CHAT_ID>" \
  --message "Run weekly Oura sleep report: bash /path/to/your/oura-weekly-sleep-alert.sh"

Daily Obsidian Note (8:15 AM)

thinkfleet cron add \
  --name "Daily Obsidian Note" \
  --cron "15 8 * * *" \
  --tz "America/Los_Angeles" \
  --session isolated \
  --wake next-heartbeat \
  --message "Create daily Obsidian note with Oura data. Run: source /path/to/venv/bin/activate && python /path/to/daily-note.py"

Note: Replace /path/to/your/ with your actual paths and <YOURTELEGRAMCHAT_ID> with your Telegram channel/group ID.