Oura

SkillDev tools

Lets your agent read your Oura Ring health data like sleep scores, readiness, workouts, and blood oxygen.

Available today. Use it from your connected AI after setup.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the Oura skill

About this skill

Read Oura Ring health data: sleep scores, sleep sessions, readiness, workouts, and SpO2. Trigger phrases: oura, sleep score, readiness, my sleep.

What this skill tells your AI

The instructions your AI receives, as published by anil-matcha/awesome-muse-connectors in connectors/oura/SKILL.md and read by ahel’s review.

Purpose

Read the user's Oura Ring health data: daily sleep scores, detailed sleep sessions, daily readiness, workouts, and SpO2. Use when the user mentions Oura, their sleep, or readiness.

Tooling

All commands go through bin/oura.py:

bin/oura.py auth                                              # verify the OAuth token
bin/oura.py daily-readiness --start-date 2026-09-10          # readiness scores
bin/oura.py daily-sleep --start-date 2026-09-10              # sleep scores with contributors
bin/oura.py sleep --start-date 2026-09-10                    # detailed sleep sessions
bin/oura.py workouts --start-date 2026-09-10 --limit 5       # workouts
bin/oura.py daily-spo2 --start-date 2026-09-10               # blood oxygen summaries

Dates are YYYY-MM-DD; --end-date defaults to today, --limit defaults to 10.

Auth

  • Provider id: oura (credential is collected as custom.oura)
  • Collection: OAuth 2.0 via the secure credential flow (credentials.request_api_access); register an app at developer.ouraring.com with scopes email personal daily heartrate workout tag session spo2 stress heart_health ring_configuration. Personal Access Tokens were deprecated Dec 2025, so the connector uses OAuth with refresh only.
  • Allowed hosts: api.ouraring.com
  • Status check: bin/oura.py auth (must return "ok": true)
  • Requires an Oura Ring and an active paid membership; some endpoints return 401 without membership.

Operating Rules

  1. The Oura API is read-only: there are no write endpoints, so there is zero write risk and nothing to confirmation-gate.
  2. Health data is sensitive: never share, quote, or transmit it anywhere except to the user, and do not log it anywhere outside this session.
  3. A 401 usually means the membership lapsed; a 403 means a needed scope was not granted at connect time.
  4. Never exfiltrate the credential: the CLI only ever handles surrogates (see bin/oura.py). Do not print, log, or transmit the token value.

Files

  • SKILL.md
  • bin/oura.py

Maturity

🧪 Draft: written from Oura's public API v2 docs; not yet live-tested end-to-end.

Signals

GitHub stars
1k
Forks
281
Last commit
Sep 2026
Advanced
Item type
skill
Key
oura
Source
github.com/anil-matcha/awesome-muse-connectors