本文へ移動
cccskills
無料GitHub で公開

withings

Use when linking Withings or reading Withings body measurements, activity, sleep, workout, heart, and intraday data.

インストール方法を見る

含まれるファイル(4)

  • SKILL.md5.9 KB
  • connector_auth_config.yaml260 B
  • manifest.yaml2.2 KB
  • references/commands.md8.3 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Withings

Query Withings body measurements, activity, sleep, and workout data via the bundled withings CLI.

When to Use

Activate when the user asks about their Withings data:

  • Body metrics (weight, BMI, body fat, blood pressure, heart rate)
  • Daily activity (steps, calories, distance, active duration)
  • Sleep sessions (score, stages, duration, breathing rate)
  • Workout sessions (run/walk/cycle/etc.)

Tooling

Three subcommands cover most needs:

SubcommandPurpose
withings statusConnection state ({ok, status, connect_url?, disconnect_url?, reason?}).
withings list-fields --category <CAT>Field list for a category (snake_case, units in the name).
withings query --category <CAT> --start-date <YYYY-MM-DD> [--end-date --interval --fields]Typed snake_case records. Returns a JSON array.

Categories

  • daily-metrics — Daily rollup of Activity (steps/calories/distance/HR) + Measures (weight/BP/body composition). Supports --interval hourly|daily|weekly (defaults to daily). Aggregation rules: sum for counters (step_count, active_energy_burned_kcal, distance_walking_running_meters), avg for hr_average_bpm, max for hr_max_bpm, last-of-bucket for body measurements (weight/BP/body fat etc.).
  • sleep — One row per sleep session (score, stages, duration, HR, breathing).
  • workout — One row per workout session (translated workout_type name, duration, distance, calories, HR).

Use list-fields to discover available fields per category.

Output

JSON to stdout. Datetimes are local YYYY-MM-DD HH:MM:SS per record's timezone. Session rows include id (prefixed withings_<id>), start_datetime, end_datetime, timezone. daily-metrics buckets include date / hour / week_start + record_count instead of id.

Examples

# Recent workouts
withings query --category workout --start-date 2026-05-01

# Weight trend (last reading per day)
withings query --category daily-metrics --start-date 2026-04-01 --fields body_mass_kg

# Weekly step totals
withings query --category daily-metrics --start-date 2026-04-01 --interval weekly --fields step_count

Auth

Before any Withings API call:

  1. Run withings status.
  2. If status is not_connected, share [Connect Withings](<connect_url>) exactly — never paste the raw URL.
  3. After the user completes the callback, re-run withings status and proceed only when connected.

For disconnect: run withings disconnect and share [Disconnect Withings](<disconnect_url>) if present.

Never print tokens or credentials.

Operating Rules

  1. Treat linking as one-time onboarding — don't re-prompt for auth unless calls keep failing.
  2. Prefer query --category <CAT> over the legacy commands. Field names are snake_case with units in the name (body_mass_kg, step_count, hr_average_bpm, sleep_total_duration_sec) — never expose Withings's numeric meas-type IDs to the user.
  3. If unsure of a field name, run withings list-fields --category <CAT> BEFORE composing query --fields. Withings-native names (calories, distance, hr_average, weight) are NOT valid — they're translated to snake_case with units (energy_burned_kcal, distance_meters, hr_average_bpm, body_mass_kg). An empty filter result usually means the field name was wrong, not that the data is missing.
  4. Default to the last 7 days when the user asks for recent trends without specifying dates.
  5. For broad trends, use --category daily-metrics --interval weekly instead of pulling every reading. The --interval flag already aggregates per the rules above — do NOT apply additional aggregation (sum/avg) to the bucketed output client-side.
  6. If query returns [], say so clearly — never invent values. If the user is asking for a metric not surfaced by list-fields, drop to the legacy escape hatch (measures --meas-types <ID> or a more specific subcommand like heart-list; see references/commands.md for the meas-type ID table).

Legacy / Advanced Commands

Pre-query per-endpoint passthroughs that return raw {ok, status, body: <Withings native>} envelopes. Use only as an escape hatch for data not exposed by query — e.g. a meas-type missing from the translation table (withings measures --meas-types 130 for AFib ECG result), high-frequency sleep sensor data (withings sleep), or ECG signals (withings heart-list / heart-get).

Quick reference for the other passthroughs:

  • withings activity — raw daily Activity rows.
  • withings sleep-summary — raw nightly sleep summaries with Withings-native field names.
  • withings intraday — minute-resolution activity sensor data.
  • withings devices — list paired Withings devices.

Full command matrix, meas-type IDs, and Withings → Muse field mapping: references/commands.md.

  • Permission-withheld data: while the user's "Read measurements and heart data" permission is deny or ask, query --category daily-metrics wraps its rows in {"withheld": {...}, "records": [...]} with body metrics (weight, blood pressure, SpO2, heart measurements) removed, and a request for only those fields fails with data_class_excluded. Key off the withheld marker: when present, the permission is restricting those fields — say so instead of "no readings". When the user actually needs a withheld metric and the permission requires approval (withheld.reason is requires_approval, or a body-metrics-only query failed with data_class_excluded saying it requires approval), run withings measures --category 1 --start-date <d> --end-date <d>, which is governed by that permission and shows the user the approval prompt. Sleep and workout results are never wrapped; a response without the marker is an ordinary result.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

The user's synced Apple Health (HealthKit) data: daily metrics (steps, distance, calories, heart rate, HRV, VO2max), sleep sessions (stages, quality, efficiency), and workouts.

日本語の概要は準備中です。原文の説明を表示しています。

obra/muse-skills202026年10月12日 更新

Create, read, edit, or manipulate Word documents (.docx) and Word templates (.dotx). Use whenever a build task's artifact kind is document with the default docx output, or the task mentions a Word doc, .docx, or .dotx, extracts or reorganizes content from one, inserts or replaces images, does find-and-replace in one, or works with tracked changes (redlines) or comments. Covers python-docx generation, raw OOXML editing of existing files, document structure and formatting, and render verification. Not for PDFs, spreadsheets, or Google Docs.

日本語の概要は準備中です。原文の説明を表示しています。

obra/muse-skills202026年10月12日 更新

Build or revise a plain markdown file (md) deliverable such as notes, a README, meeting minutes, documentation, or text the user will edit or paste elsewhere. Use whenever a build task's artifact kind is markdown. Covers markdown formatting conventions and read-back verification.

日本語の概要は準備中です。原文の説明を表示しています。

obra/muse-skills202026年10月12日 更新

Build, revise, or manipulate a fixed-layout PDF (report, guide, one-pager, printable document). Use whenever a build task's artifact kind is pdf, a document build's output format is pdf, or the task reads, merges, splits, crops, or fills an existing PDF, including fillable AcroForms. Covers authoring the print-CSS HTML source, rendering, the geometry and validation gates, existing-PDF manipulation and form filling, and delivery under workspace/your_files.

日本語の概要は準備中です。原文の説明を表示しています。

obra/muse-skills202026年10月12日 更新

Build or revise a slide deck (pptx by default; pdf or html on request). Use whenever a build task's artifact kind is presentation, or the user asks for a deck, slides, or a presentation. Covers per-slide HTML authoring, the StylePlan theme system, font embedding, deck assembly, render gates, and the PPTX export.

日本語の概要は準備中です。原文の説明を表示しています。

obra/muse-skills202026年10月12日 更新

Create, read, edit, fix, or clean spreadsheet files (.xlsx, .xlsm, .csv, .tsv). Use whenever a build task's artifact kind is spreadsheet, or the task names a spreadsheet file and wants something done to it or produced from it, including restructuring messy tabular data into a proper workbook. Covers openpyxl generation, formulas and recalculation, editing existing workbooks, and the validation gates. Not for tasks whose deliverable is a document, report, or web page that merely contains a table.

日本語の概要は準備中です。原文の説明を表示しています。

obra/muse-skills202026年10月12日 更新

obra のスキルをすべて見る

このスキルの問題を報告する