Agent skill

Fitness Nutrition

by Tommy-yw in Tommy-yw/RunbookHermes

Gym workout planner and nutrition tracker. An agent skill from Tommy-yw/RunbookHermes.

MITAuto-check passedProductivity & Automation

Install Fitness Nutrition

skills CLI
$ npx skills add Tommy-yw/RunbookHermes --skill fitness-nutrition -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Tommy-yw/RunbookHermes fitness-nutrition --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Tommy-yw/RunbookHermes.git skills-src && mkdir -p .claude/skills && cp -r skills-src/optional-skills/health/fitness-nutrition .claude/skills/fitness-nutrition && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
fitness-nutrition
GitHub stars
546
Used in
1 other repo
Token cost
~2.5k tokens
SKILL.md length
577 words
Files
4 (incl. scripts, references)
Skills in repo
38
Repo updated
First seen
Licence
MIT

At a glance

Gym workout planner and nutrition tracker. An agent skill from Tommy-yw/RunbookHermes.

  • Tasks that involve Health and fitness tracking
  • SKILL.md covers When to Use, Procedure, Pitfalls and Verification, plus 1 more section
  • Runs Python scripts from its folder; calls python3 and curl; reaches wger.de and api.nal.usda.gov; needs DEMO_KEY and USDA_API_KEY

What it does

Fitness Nutrition is an agent skill from Tommy-yw/RunbookHermes. Gym workout planner and nutrition tracker. Search 690+ exercises by muscle, equipment, or category via wger. Look up macros and calories for 380,000+ foods via USDA FoodData Central. Compute BMI, TDEE, one-rep max, macro splits, and body fat — pure Python, no pip installs. Built for anyone chasing gains, cutting weight, or just trying to eat better.

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including scripts and reference files (for example `references/FORMULAS.md`, `scripts/body_calc.py` and `scripts/nutrition_search.py`).

It sits in Productivity & Automation, covering Health and fitness tracking. It works with Python. The repository describes itself as: Hermes-native AIOps agent for evidence-driven incident response, approval-gated remediation, and runbook learning. The licence is MIT.

When your agent uses it

  • Tasks that involve Health and fitness tracking

Example prompts

  • “/fitness-nutrition”

Requirements

  • Python 3
  • A credential in USDA_API_KEY
  • A credential in DEMO_KEY

What it can do on your machine

Read from SKILL.md and the folder at commit 7fd2b9a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 2 files in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3
    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • wger.de
    • api.nal.usda.gov

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • DEMO_KEY
    • USDA_API_KEY
    • API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Fitness Nutrition loads about 2.5k tokens when it runs, and up to ~3.3k if it reads all its reference files. Until then it costs about 92 tokens; SKILL.md has 577 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~92
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from Tommy-yw/RunbookHermes at commit 7fd2b9a, republished under its MIT licence (© Tommy-yw). 577 words, ~2,503 tokens.

Download SKILL.mdSave it as .claude/skills/fitness-nutrition/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
fitness-nutrition
description
Gym workout planner and nutrition tracker. Search 690+ exercises by muscle, equipment, or category via wger. Look up macros and calories for 380,000+ foods via USDA FoodData Central. Compute BMI, TDEE, one-rep max, macro splits, and body fat — pure Python, no pip installs. Built for anyone chasing gains, cutting weight, or just trying to eat better.
version
1.0.0
authors
haileymarshall
license
MIT

Fitness & Nutrition

Expert fitness coach and sports nutritionist skill. Two data sources plus offline calculators — everything a gym-goer needs in one place.

Data sources (all free, no pip dependencies):

  • wger (https://wger.de/api/v2/) — open exercise database, 690+ exercises with muscles, equipment, images. Public endpoints need zero authentication.
  • USDA FoodData Central (https://api.nal.usda.gov/fdc/v1/) — US government nutrition database, 380,000+ foods. DEMO_KEY works instantly; free signup for higher limits.

Offline calculators (pure stdlib Python):

  • BMI, TDEE (Mifflin-St Jeor), one-rep max (Epley/Brzycki/Lombardi), macro splits, body fat % (US Navy method)

When to Use

Trigger this skill when the user asks about:

  • Exercises, workouts, gym routines, muscle groups, workout splits
  • Food macros, calories, protein content, meal planning, calorie counting
  • Body composition: BMI, body fat, TDEE, caloric surplus/deficit
  • One-rep max estimates, training percentages, progressive overload
  • Macro ratios for cutting, bulking, or maintenance

Procedure

Exercise Lookup (wger API)

All wger public endpoints return JSON and require no auth. Always add format=json and language=2 (English) to exercise queries.

Step 1 — Identify what the user wants:

  • By muscle → use /api/v2/exercise/?muscles={id}&language=2&status=2&format=json
  • By category → use /api/v2/exercise/?category={id}&language=2&status=2&format=json
  • By equipment → use /api/v2/exercise/?equipment={id}&language=2&status=2&format=json
  • By name → use /api/v2/exercise/search/?term={query}&language=english&format=json
  • Full details → use /api/v2/exerciseinfo/{exercise_id}/?format=json

Step 2 — Reference IDs (so you don't need extra API calls):

Exercise categories:

IDCategory
8Arms
9Legs
10Abs
11Chest
12Back
13Shoulders
14Calves
15Cardio

Muscles:

IDMuscleIDMuscle
1Biceps brachii2Anterior deltoid
3Serratus anterior4Pectoralis major
5Obliquus externus6Gastrocnemius
7Rectus abdominis8Gluteus maximus
9Trapezius10Quadriceps femoris
11Biceps femoris12Latissimus dorsi
13Brachialis14Triceps brachii
15Soleus

Equipment:

IDEquipment
1Barbell
3Dumbbell
4Gym mat
5Swiss Ball
6Pull-up bar
7none (bodyweight)
8Bench
9Incline bench
10Kettlebell

Step 3 — Fetch and present results:

bash
# Search exercises by name
QUERY="$1"
ENCODED=$(python3 -c "import urllib.parse,sys; print(urllib.parse.quote(sys.argv[1]))" "$QUERY")
curl -s "https://wger.de/api/v2/exercise/search/?term=${ENCODED}&language=english&format=json" \
  | python3 -c "
import json,sys
data=json.load(sys.stdin)
for s in data.get('suggestions',[])[:10]:
    d=s.get('data',{})
    print(f\"  ID {d.get('id','?'):>4} | {d.get('name','N/A'):<35} | Category: {d.get('category','N/A')}\")
"
bash
# Get full details for a specific exercise
EXERCISE_ID="$1"
curl -s "https://wger.de/api/v2/exerciseinfo/${EXERCISE_ID}/?format=json" \
  | python3 -c "
import json,sys,html,re
data=json.load(sys.stdin)
trans=[t for t in data.get('translations',[]) if t.get('language')==2]
t=trans[0] if trans else data.get('translations',[{}])[0]
desc=re.sub('<[^>]+>','',html.unescape(t.get('description','N/A')))
print(f\"Exercise  : {t.get('name','N/A')}\")
print(f\"Category  : {data.get('category',{}).get('name','N/A')}\")
print(f\"Primary   : {', '.join(m.get('name_en','') for m in data.get('muscles',[])) or 'N/A'}\")
print(f\"Secondary : {', '.join(m.get('name_en','') for m in data.get('muscles_secondary',[])) or 'none'}\")
print(f\"Equipment : {', '.join(e.get('name','') for e in data.get('equipment',[])) or 'bodyweight'}\")
print(f\"How to    : {desc[:500]}\")
imgs=data.get('images',[])
if imgs: print(f\"Image     : {imgs[0].get('image','')}\")
"
bash
# List exercises filtering by muscle, category, or equipment
# Combine filters as needed: ?muscles=4&equipment=1&language=2&status=2
FILTER="$1"  # e.g. "muscles=4" or "category=11" or "equipment=3"
curl -s "https://wger.de/api/v2/exercise/?${FILTER}&language=2&status=2&limit=20&format=json" \
  | python3 -c "
import json,sys
data=json.load(sys.stdin)
print(f'Found {data.get(\"count\",0)} exercises.')
for ex in data.get('results',[]):
    print(f\"  ID {ex['id']:>4} | muscles: {ex.get('muscles',[])} | equipment: {ex.get('equipment',[])}\")
"
Nutrition Lookup (USDA FoodData Central)

Uses USDA_API_KEY env var if set, otherwise falls back to DEMO_KEY. DEMO_KEY = 30 requests/hour. Free signup key = 1,000 requests/hour.

bash
# Search foods by name
FOOD="$1"
API_KEY="${USDA_API_KEY:-DEMO_KEY}"
ENCODED=$(python3 -c "import urllib.parse,sys; print(urllib.parse.quote(sys.argv[1]))" "$FOOD")
curl -s "https://api.nal.usda.gov/fdc/v1/foods/search?api_key=${API_KEY}&query=${ENCODED}&pageSize=5&dataType=Foundation,SR%20Legacy" \
  | python3 -c "
import json,sys
data=json.load(sys.stdin)
foods=data.get('foods',[])
if not foods: print('No foods found.'); sys.exit()
for f in foods:
    n={x['nutrientName']:x.get('value','?') for x in f.get('foodNutrients',[])}
    cal=n.get('Energy','?'); prot=n.get('Protein','?')
    fat=n.get('Total lipid (fat)','?'); carb=n.get('Carbohydrate, by difference','?')
    print(f\"{f.get('description','N/A')}\")
    print(f\"  Per 100g: {cal} kcal | {prot}g protein | {fat}g fat | {carb}g carbs\")
    print(f\"  FDC ID: {f.get('fdcId','N/A')}\")
    print()
"
bash
# Detailed nutrient profile by FDC ID
FDC_ID="$1"
API_KEY="${USDA_API_KEY:-DEMO_KEY}"
curl -s "https://api.nal.usda.gov/fdc/v1/food/${FDC_ID}?api_key=${API_KEY}" \
  | python3 -c "
import json,sys
d=json.load(sys.stdin)
print(f\"Food: {d.get('description','N/A')}\")
print(f\"{'Nutrient':<40} {'Amount':>8} {'Unit'}\")
print('-'*56)
for x in sorted(d.get('foodNutrients',[]),key=lambda x:x.get('nutrient',{}).get('rank',9999)):
    nut=x.get('nutrient',{}); amt=x.get('amount',0)
    if amt and float(amt)>0:
        print(f\"  {nut.get('name',''):<38} {amt:>8} {nut.get('unitName','')}\")
"
Offline Calculators

Use the helper scripts in scripts/ for batch operations, or run inline for single calculations:

  • python3 scripts/body_calc.py bmi <weight_kg> <height_cm>
  • python3 scripts/body_calc.py tdee <weight_kg> <height_cm> <age> <M|F> <activity 1-5>
  • python3 scripts/body_calc.py 1rm <weight> <reps>
  • python3 scripts/body_calc.py macros <tdee_kcal> <cut|maintain|bulk>
  • python3 scripts/body_calc.py bodyfat <M|F> <neck_cm> <waist_cm> [hip_cm] <height_cm>

See references/FORMULAS.md for the science behind each formula.


Show full SKILL.md (204 more words)Show less

Pitfalls

  • wger exercise endpoint returns all languages by default — always add language=2 for English
  • wger includes unverified user submissions — add status=2 to only get approved exercises
  • USDA DEMO_KEY has 30 req/hour — add sleep 2 between batch requests or get a free key
  • USDA data is per 100g — remind users to scale to their actual portion size
  • BMI does not distinguish muscle from fat — high BMI in muscular people is not necessarily unhealthy
  • Body fat formulas are estimates (±3-5%) — recommend DEXA scans for precision
  • 1RM formulas lose accuracy above 10 reps — use sets of 3-5 for best estimates
  • wger's exercise/search endpoint uses term not query as the parameter name

Verification

After running exercise search: confirm results include exercise names, muscle groups, and equipment. After nutrition lookup: confirm per-100g macros are returned with kcal, protein, fat, carbs. After calculators: sanity-check outputs (e.g. TDEE should be 1500-3500 for most adults).


Quick Reference

TaskSourceEndpoint
Search exercises by namewgerGET /api/v2/exercise/search/?term=&language=english
Exercise detailswgerGET /api/v2/exerciseinfo/{id}/
Filter by musclewgerGET /api/v2/exercise/?muscles={id}&language=2&status=2
Filter by equipmentwgerGET /api/v2/exercise/?equipment={id}&language=2&status=2
List categorieswgerGET /api/v2/exercisecategory/
List muscleswgerGET /api/v2/muscle/
Search foodsUSDAGET /fdc/v1/foods/search?query=&dataType=Foundation,SR Legacy
Food detailsUSDAGET /fdc/v1/food/{fdcId}
BMI / TDEE / 1RM / macrosofflinepython3 scripts/body_calc.py

© Tommy-yw, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files (scripts, references) in optional-skills/health/fitness-nutrition of Tommy-yw/RunbookHermes.

  • SKILL.md
  • references/FORMULAS.md
  • scripts/body_calc.py
  • scripts/nutrition_search.py

Open the folder on GitHubat commit 7fd2b9a

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in Tommy-yw/RunbookHermes, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Fitness Nutrition next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Fitness Nutrition compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Fitness Nutrition this skillTommy-yw/RunbookHermes5461 repos~2.5kAutomated safety check: PassMIT
Fitness Nutritioninfometa/workbuddyskills348—~892Automated safety check: PassMIT
Wahoo CloudLeoYeAI/openclaw-master-skills2.2k—~1.9kAutomated safety check: PassMIT
Process Inboxtelegramdesktop/tdesktop33k1 repos~5.4kAutomated safety check: PassGPL-3.0
Process InboxTDesktop-x64/tdesktop3k—~4.3kAutomated safety check: PassGPL-3.0
Telegrambubbuild/bub1.7k—~2.2kAutomated safety check: PassApache-2.0

Similar skills

  • Fitness Nutrition

    infometa/workbuddyskills

    健身动作库与营养查询。通过 wger API 搜索 690+ 动作(按肌群/器械/名称), 通过 USDA FoodData Central 查询 38万+ 食物营养数据。

    348 GitHub stars~892 tokensUpdated yesterday
    Productivity & AutomationAuto-check passed
  • Wahoo Cloud

    LeoYeAI/openclaw-master-skills

    Wahoo Fitness Cloud API — fetch workouts, download FIT files, parse power/HR/cadence/GPS into local SQLite for analysis

    2.2k GitHub stars~1.9k tokensUpdated 2 mo ago
    Productivity & AutomationAuto-check passed
  • Process Inbox

    telegramdesktop/tdesktop

    Process the local ignored ai-tdesktop inbox into durable, independently testable Telegram Desktop task records while task execution worktrees remain active.

    33k GitHub starsUsed in 1 repo~5.4k tokens
    Productivity & AutomationAuto-check passed
  • Process Inbox

    TDesktop-x64/tdesktop

    Process the local ignored ai-tdesktop inbox into durable, independently testable Telegram Desktop task records while task execution worktrees remain active.

    3k GitHub stars~4.3k tokensUpdated 19 days ago
    Productivity & AutomationAuto-check passed
  • Telegram

    bubbuild/bub

    Telegram Bot skill for sending and editing Telegram messages via Bot API.

    1.7k GitHub stars~2.2k tokensUpdated yesterday
    Productivity & AutomationAuto-check passed
  • Browser Use Terminal

    browser-use/terminal

    Direct browser control via the Browser Use Terminal CLI. An agent skill from browser-use/terminal.

    650 GitHub stars~2.1k tokensUpdated 1 mo ago
    Productivity & AutomationAuto-check passed

More from Tommy-yw/RunbookHermes

All 38 skills in this repo
  • Fastmcp

    Tommy-yw/RunbookHermes

    Build, test, inspect, install, and deploy MCP servers with FastMCP in Python.

    546 GitHub starsUsed in 3 repos~2.1k tokens
    Auto-check passed
  • Drug Discovery

    Tommy-yw/RunbookHermes

    Pharmaceutical research assistant for drug discovery workflows.

    546 GitHub starsUsed in 1 repo~2.3k tokens
    Auto-check passed
  • Youtube Content

    Tommy-yw/RunbookHermes

    Fetch YouTube video transcripts and transform them into structured content (chapters, summaries, threads, blog posts).

    546 GitHub starsUsed in 1 repo~785 tokens
    Auto-check passed
  • Oss Forensics

    Tommy-yw/RunbookHermes

    Supply chain investigation, evidence recovery, and forensic analysis for GitHub repositories.

    546 GitHub starsUsed in 3 repos~5k tokens
    Auto-check passed
  • P5js

    Tommy-yw/RunbookHermes

    Production pipeline for interactive and generative visual art using p5.js.

    546 GitHub starsUsed in 1 repo~6.8k tokens
    Auto-check passed
  • Touchdesigner MCP

    Tommy-yw/RunbookHermes

    Control a running TouchDesigner instance via twozero MCP — create operators, set parameters, wire connections, execute Python, build real-time visuals.

    546 GitHub starsUsed in 2 repos~3.4k tokens
    Auto-check passed

Works with

Questions about Fitness Nutrition

What does Fitness Nutrition do?

Gym workout planner and nutrition tracker. An agent skill from Tommy-yw/RunbookHermes. Fitness Nutrition is an agent skill from Tommy-yw/RunbookHermes. Gym workout planner and nutrition tracker.

When should I use Fitness Nutrition?

Fitness Nutrition fits situations like: tasks that involve Health and fitness tracking.

How do I install Fitness Nutrition in Claude Code?

Run `npx skills add Tommy-yw/RunbookHermes --skill fitness-nutrition -a claude-code`. Or copy the skill folder (optional-skills/health/fitness-nutrition in Tommy-yw/RunbookHermes) into .claude/skills/fitness-nutrition in your project. Claude Code loads it when a task matches its description.

How do I install Fitness Nutrition in Codex?

Run `npx skills add Tommy-yw/RunbookHermes --skill fitness-nutrition -a codex`. Or copy the skill folder (optional-skills/health/fitness-nutrition in Tommy-yw/RunbookHermes) into .agents/skills/fitness-nutrition in your project. Codex loads it when a task matches its description.

Can I use Fitness Nutrition in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Tommy-yw/RunbookHermes --skill fitness-nutrition -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/fitness-nutrition, .gemini/skills/fitness-nutrition, .github/skills/fitness-nutrition and .opencode/skills/fitness-nutrition in your project.

What does Fitness Nutrition need to run?

Going by SKILL.md and its folder, Fitness Nutrition needs Python for the scripts in its folder, the command-line tools its instructions call (python3 and curl) and credentials named DEMO_KEY, USDA_API_KEY and API_KEY. Our summary lists: Python 3; A credential in USDA_API_KEY; A credential in DEMO_KEY.

Does Fitness Nutrition access the network?

SKILL.md names 2 domains. In commands or code: wger.de and api.nal.usda.gov; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Fitness Nutrition safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Fitness Nutrition use?

Fitness Nutrition is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Fitness Nutrition use?

About 2.5k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 809 tokens, read only when the agent opens those files.

What are the alternatives to Fitness Nutrition?

Skills that share tags, products or a category with Fitness Nutrition: Fitness Nutrition (infometa/workbuddyskills, 348 stars), Wahoo Cloud (LeoYeAI/openclaw-master-skills, 2.2k stars), Process Inbox (telegramdesktop/tdesktop, 33k stars) and Process Inbox (TDesktop-x64/tdesktop, 3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Fitness Nutrition?

Tommy-yw (a GitHub user) maintains it in Tommy-yw/RunbookHermes, which has 546 GitHub stars. The repository holds 38 skills in this directory. The repository was last updated on May 18, 2026.

Source: Tommy-yw/RunbookHermes on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.