Claude
Skills
Sign in
Back

pp-myfitnesspal

Included with Lifetime
$97 forever

Pull every meal you ever logged out of MyFitnessPal — per-food CSV, agent-shaped trends, and a local SQLite store. Trigger phrases: `what did I eat this week`, `export my food diary`, `find every time I logged X`, `top foods driving my protein`, `am I hitting my calorie streak`, `use myfitnesspal`, `run myfitnesspal`.

AI Agents

What this skill does

<!-- GENERATED FILE — DO NOT EDIT.
     This file is a verbatim mirror of library/productivity/myfitnesspal/SKILL.md,
     regenerated post-merge by tools/generate-skills/. Hand-edits here are
     silently overwritten on the next regen. Edit the library/ source instead.
     See the repository agent guide, section "Generated artifacts: registry.json, cli-skills/". -->

# MyFitnessPal — Printing Press CLI

## Prerequisites: Install the CLI

This skill drives the `myfitnesspal-pp-cli` binary. **You must verify the CLI is installed before invoking any command from this skill.** If it is missing, install it first:

1. Install via the Printing Press installer. It defaults binaries to `$HOME/.local/bin` on macOS/Linux and `%LOCALAPPDATA%\Programs\PrintingPress\bin` on Windows:
   ```bash
   npx -y @mvanhorn/printing-press-library install myfitnesspal --cli-only
   ```
2. Verify: `myfitnesspal-pp-cli --version`
3. Ensure the reported install directory is on `$PATH` for the agent/runtime that will invoke this skill.

If the `npx` install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.3 or newer):

```bash
go install github.com/mvanhorn/printing-press-library/library/productivity/myfitnesspal/cmd/myfitnesspal-pp-cli@latest
```

If `--version` reports "command not found" after install, the runtime cannot see the binary directory on `$PATH`. Do not proceed with skill commands until verification succeeds.

## When to Use This CLI

Reach for this CLI when an agent needs to reason over a user's actual eating, exercise, or weight history — especially across windows longer than today. The local SQLite store + agent-shaped `context` command means one tool call replaces the back-and-forth of pasting yesterday's diary into the chat. Use it for nutrition coaching, deficit calibration, macro analysis, recall questions ('every time I logged X'), and anywhere the official MFP UI's per-meal rollup blocks the question.

## Unique Capabilities

These capabilities aren't available in any other tool for this API.

### Local state that compounds
- **`export csv`** — Export your food diary to CSV with one row per logged food, not per meal. Premium MFP only ships per-meal CSVs.

  _Reach for this when an agent needs the user's full eating history at food granularity for analysis, training, or long-form coaching memory._

  ```bash
  myfitnesspal-pp-cli export csv --from 2026-01-01 --to 2026-05-08 --out diary.csv
  ```
- **`analytics top-foods`** — Pareto query: which N foods drove X% of your protein/carbs/fat/fiber/sugar/calories over a window?

  _Use when an agent is helping the user understand what's actually driving a macro target, not what they think is._

  ```bash
  myfitnesspal-pp-cli analytics top-foods --nutrient protein --days 60 --cumulative-percent 80 --json
  ```
- **`find`** — Full-text search across every diary entry and food in the local store. Returns date, meal, servings, calories per match.

  _Use when an agent needs to recall every time the user logged a specific food without scrolling through months of diary._

  ```bash
  myfitnesspal-pp-cli find --food "Chipotle Bowl" --from 2026-01-01 --json
  ```
- **`analytics streak`** — Longest run of consecutive days where calorie totals fall within ±tolerance of your goal.

  _Use when the user asks how their adherence is trending — answer arrives without subjective interpretation._

  ```bash
  myfitnesspal-pp-cli analytics streak --days 60 --tolerance 0.05 --json
  ```

### Agent-native plumbing
- **`context`** — Single-call snapshot of the last N days: diary totals, weight trend, current goals, recent foods, macro deltas — sized for an agent context window.

  _First call any agent should make before reasoning about a user's nutrition — gives the full picture in one shot._

  ```bash
  myfitnesspal-pp-cli context --days 14 --json
  ```

## Command Reference

**api-user** — Authenticated user record on the v2 API (preferences, paid subs, profiles).

- `myfitnesspal-pp-cli api-user` — Get the v2 user record (units, goals preferences, paid subs, profiles).

**diary** — Daily food diary (per-meal entries with full nutrient panel).

- `myfitnesspal-pp-cli diary get-day` — Get one day's food diary as scraped HTML (legacy surface python-myfitnesspal uses).
- `myfitnesspal-pp-cli diary load-recent` — Load the recent-foods quick-pick list for a meal.

**exercise** — Cardio and strength exercises logged on a given day.

- `myfitnesspal-pp-cli exercise` — Get one day's exercise log (cardio + strength) as scraped HTML.

**food** — Search the public food database, view food details, log custom foods.

- `myfitnesspal-pp-cli food details` — Get full nutrient panel for a single food by MFP food id.
- `myfitnesspal-pp-cli food search` — Search the food database.
- `myfitnesspal-pp-cli food suggested-servings` — Get common serving-size suggestions for a food (powers the '1 cup / 100g / medium' picker).

**goals** — Daily calorie / macro / water / weight goals.

- `myfitnesspal-pp-cli goals` — Get your current daily goals (calorie target, macro split, water target) as scraped HTML.

**measurement** — Weight, body fat, and other body measurements (time series).

- `myfitnesspal-pp-cli measurement get-range` — Get a date range of values for one measurement type as scraped HTML.
- `myfitnesspal-pp-cli measurement types` — List the measurement types defined for your account (Weight, BodyFat, Neck, Waist, Hips, plus custom).

**note** — Free-text notes attached to a day's food or exercise diary.

- `myfitnesspal-pp-cli note` — Get the food note for a single day.

**reports** — Aggregated time-series reports (any nutrient or weight as a date->value series).

- `myfitnesspal-pp-cli reports` — Get a time-series report (e.g. nutrition/Net%20Calories/30 returns the last 30 days of net calories).

**user** — Authenticated user account info, units, and preferences.

- `myfitnesspal-pp-cli user auth-token` — Bootstrap a v2 bearer token from your session cookies.
- `myfitnesspal-pp-cli user top-foods-server` — Get your top-logged foods over a date range, computed server-side (powers the 'your most-eaten' insights).

**water** — Daily water intake tracking.

- `myfitnesspal-pp-cli water` — Get water intake for a single day.


### Finding the right command

When you know what you want to do but not which command does it, ask the CLI directly:

```bash
myfitnesspal-pp-cli which "<capability in your own words>"
```

`which` resolves a natural-language capability query to the best matching command from this CLI's curated feature index. Exit code `0` means at least one match; exit code `2` means no confident match — fall back to `--help` or use a narrower query.

## Recipes


### Build agent context for a coaching question

```bash
myfitnesspal-pp-cli context --days 30 --json --select diary_totals,weight_trend,goals
```

One tool call gives the agent everything it needs to answer 'should I cut more this week?' without back-and-forth pasting.

### Find every time you logged a food

```bash
myfitnesspal-pp-cli find --food "Greek yogurt" --from 2026-01-01 --json --select date,meal,servings,calories
```

Local FTS over your synced diary; instant answer to recall questions the MFP web UI requires scrolling for.

### Per-food CSV for a quarter

```bash
myfitnesspal-pp-cli export csv --from 2026-01-01 --to 2026-03-31 --out q1-2026.csv
```

One row per food entry with full nutrients — the export premium MFP doesn't deliver.

### Top foods driving a macro

```bash
myfitnesspal-pp-cli analytics top-foods --nutrient protein --days 60 --cumulative-percent 0.8 --json
```

Pareto query over the local diary: which foods drove most of your protein over the last 60 days.

### Adherence streak

```bash
myfitnesspal-pp-cli analytics streak --days 60 --tolerance 0.05 --json
```

Longest run of days inside ±5% of your calorie goal. Goal value is read from the most recent `goal_snapshot` synced into the local store; pass `--goal-calo

Related in AI Agents