oura
# Oura Ring CLI Skill
What this skill does
# Oura Ring CLI Skill
## Description
This tool allows retrieving health and biometric data from the Oura Ring API (V2) via a command-line interface. Use this to answer questions about the user's sleep, activity, readiness, and physiological stats.
Repository: [https://github.com/ruhrpotter/oura-cli](https://github.com/ruhrpotter/oura-cli)
## Installation
### 1. Build the CLI
```bash
cd ~
git clone https://github.com/ruhrpotter/oura-cli.git
cd oura-cli
go build -o oura ./cmd/oura
```
### 2. Create Oura OAuth App
1. Go to [Oura Developer Portal](https://cloud.ouraring.com/oauth/developer)
2. Create a new application
3. Set Redirect URI to: `http://localhost:8080/callback`
4. Note down your **Client ID** and **Client Secret**
### 3. Authenticate
```bash
export OURA_CLIENT_ID="your_client_id"
export OURA_CLIENT_SECRET="your_client_secret"
./oura auth login
```
A browser will open for OAuth authorization. Tokens are stored in `~/.config/oura-cli/config.json`.
## Prerequisite
The CLI must be authenticated. If a command fails with an auth error, notify the user to run `./oura auth login`.
## Syntax
`./oura get <category> [flags]`
## Categories
- `personal`: User profile (age, weight, height, email).
- `sleep`: Daily sleep scores and efficiency.
- `activity`: Daily activity scores, steps, and movement.
- `readiness`: Daily readiness scores indicating recovery.
- `heartrate`: Time-series heart rate data.
- `workout`: Detailed workout sessions.
- `spo2`: Blood oxygen saturation levels.
- `sleep-details`: Detailed sleep sessions including hypnograms.
- `sessions`: Activity sessions (e.g. naps, rest).
- `sleep-times`: Optimal bedtime guidance.
- `stress`: Daily stress levels.
- `resilience`: Daily resilience scores and recovery.
- `cv-age`: Cardiovascular age estimates.
- `vo2-max`: VO2 Max measurements.
- `ring-config`: Ring hardware configuration (color, size, etc.).
- `rest-mode`: Rest mode periods.
- `tags`: Enhanced tags (notes, lifestyle choices).
## Arguments
- `--start <YYYY-MM-DD>`: REQUIRED for most time-series data. The start date of the range.
- `--end <YYYY-MM-DD>`: OPTIONAL. The end date of the range. If omitted, it may default to the start date or return a single day depending on context.
## Agent Instructions
1. **Date Resolution**: You **MUST** resolve all relative date terms (e.g., "today", "yesterday", "last week", "this month") into absolute `YYYY-MM-DD` string format based on the current operational date.
2. **Date ranges**:
- For "today": Set `--start` to today's date.
- For "yesterday": Set `--start` to yesterday's date.
- For "last 7 days": Set `--start` to 7 days ago and `--end` to today.
3. **Path**: Assume the binary is `./oura` in the current working directory unless the user specifies otherwise.
4. **Output**: The CLI returns JSON. Parse the JSON `data` array to formulate a natural language response.
## Examples
**User Request**: "How was my sleep last night?"
**Context**: Today is 2024-03-15. "Last night" usually implies the sleep session ending on the morning of today, or the previous day's data depending on how Oura dates it (Oura dates sleep by the morning it ends).
**Reasoning**: Sleep for the night of the 14th to 15th is logged as `2024-03-15`.
**Command**:
```bash
./oura get sleep --start 2024-03-15
```
**User Request**: "What is my readiness score today?"
**Context**: Today is 2024-03-15.
**Command**:
```bash
./oura get readiness --start 2024-03-15
```
**User Request**: "Show my heart rate for the first week of January 2024."
**Command**:
```bash
./oura get heartrate --start 2024-01-01 --end 2024-01-07
```
**User Request**: "Who am I?"
**Command**:
```bash
./oura get personal
```
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.