ClawKit Logo
ClawKitReliability Toolkit
Back to Registry
Official Verified

opencal

Log meals, check nutrition progress, and manage calorie goals in the OpenCal app — hands-free via your AI agent. Use when the user mentions eating, food, calories, macros, or nutrition.

skill-install — Terminal

Install via CLI (Recommended)

clawhub install openclaw/skills/skills/neikfu/opencal
Or

OpenCal

OpenCal is a calorie & nutrition tracker with a beautiful iOS app. This skill lets your AI agent log meals, check progress, and update goals — so the user never has to open the app to track what they eat.

"I just had a burrito for lunch" → agent searches, scales, logs it → it shows up in the app instantly.

Setup

  1. Download OpenCal from the App Store
  2. Sign in and set your calorie/macro goals
  3. Go to Profile → API Keys → Generate
  4. Set the key:
    export OPENCAL_API_KEY="sk_your-key-here"
    

When to use this skill

User saysWhat to do
"I had a chicken sandwich for lunch"Search food → scale nutrition → log it
"What did I eat today?"Fetch today's log and summarize
"How much protein do I have left?"Fetch log totals and compare to goals
"I want to cut to 1800 calories"Update their calorie goal
"That last entry was wrong, remove it"Delete the log entry
"What's in a banana?"Search and show nutrition info (don't log)

Log a meal

The most common flow. User says something like "I had 200g chicken breast for lunch":

1. Search for the food:

curl -s "${OPENCAL_BASE_URL:-https://api.opencal.ai}/api/v1/food/search?q=chicken+breast&limit=5" \
  -H "Authorization: Bearer $OPENCAL_API_KEY" | jq '.results[] | {name, calories, protein, carbs, fat}'

Results are per 100g. Pick the best match.

2. Scale to the actual amount and log:

curl -s -X POST "${OPENCAL_BASE_URL:-https://api.opencal.ai}/api/v1/food/log" \
  -H "Authorization: Bearer $OPENCAL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Chicken Breast",
    "amount": 200, "unit": "g",
    "calories": 330, "protein": 62, "carbs": 0, "fat": 7.2,
    "mealType": "lunch"
  }'

Multiply all nutrition values by amount / 100. The entry appears in the app immediately.

Use mealType: breakfast, lunch, dinner, or snack. Add "loggedAt": "2026-02-18T12:00:00Z" to backfill a past meal (defaults to now).

3. Confirm with the user: "Logged 200g chicken breast for lunch — 330 kcal, 62g protein."

Check daily progress

curl -s "${OPENCAL_BASE_URL:-https://api.opencal.ai}/api/v1/food/log?date=2026-02-18" \
  -H "Authorization: Bearer $OPENCAL_API_KEY" | jq '{totals, entries: [.entries[] | {name, calories, mealType}]}'

Omit ?date= for today. Returns each entry plus totals (calories, protein, carbs, fat).

Check and update goals

# Current goals
curl -s "${OPENCAL_BASE_URL:-https://api.opencal.ai}/api/v1/goals" \
  -H "Authorization: Bearer $OPENCAL_API_KEY" | jq

# Update (only include fields to change)
curl -s -X PUT "${OPENCAL_BASE_URL:-https://api.opencal.ai}/api/v1/goals" \
  -H "Authorization: Bearer $OPENCAL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"calorieGoal": 1800, "proteinGrams": 160}'

Delete a log entry

Get the entry ID from the daily log, then:

Metadata

Author@neikfu
Stars1335
Views1
Updated2026-02-23
View Author Profile
AI Skill Finder

Not sure this is the right skill?

Describe what you want to build — we'll match you to the best skill from 16,000+ options.

Find the right skill
Add to Configuration

Paste this into your clawhub.json to enable this plugin.

{
  "plugins": {
    "official-neikfu-opencal": {
      "enabled": true,
      "auto_update": true
    }
  }
}
Safety NoteClawKit audits metadata but not runtime behavior. Use with caution.