Food Channel
/install food-channel
Food Channel Skill
Handle messages in a food-tracking channel by logging food intake events.
Configuration
Set the following environment variables or replace placeholders before use:
FOOD_CHANNEL_ID— Channel ID for food tracking (env var)FOOD_PROFILE_PATH— Path to user profile JSON (default:$WORKSPACE/data/food_profile.json)- Tracker script is at
scripts/tracker.py(included in bundle)
Message Types
1. Barcode Lookup
User sends a barcode (numeric string, 8-14 digits). Optional servings specified as "2x", "2 servings", "x2", etc. Defaults to 1.
Flow:
- Parse the barcode and optional servings from the message
- Run:
python3 scripts/tracker.py lookup \x3Cbarcode> [servings] - If successful, reply with a formatted summary of the food item and nutrition logged
- If failed, reply with the error
2. Photo Estimate
User sends an image attachment.
Flow:
- Copy the image to the workspace data dir
- Resize it to max 1024px on longest side:
convert src.jpg -resize '1024x1024>' -quality 80 dst.jpg(or usepython3 -c "from PIL import Image; ..."if imagemagick unavailable) - Use the
imagetool on the resized image with a prompt asking to estimate: food items, portion sizes, and approximate nutrition per serving - Parse the vision response into structured nutrition data
- Run:
echo '\x3Cjson>' | python3 scripts/tracker.py estimate - Reply with formatted summary noting it's an estimate (≈)
3. Summary Request
User asks for today's summary or a daily summary.
Flow:
- Run:
python3 scripts/tracker.py summary [YYYY-MM-DD] - Reply with formatted daily totals
4. Post-Log Check (after every barcode or estimate log)
After logging an entry, check running daily totals against limits:
- Run:
python3 scripts/tracker.py summary - Load profile from
FOOD_PROFILE_PATH(default:data/food_profile.json) - Compare totals against
daily_limits. Flag any that are over (or under for fiber_g_min):- calories > limit →
⚠️ Over calorie budget ({total}/{limit} kcal) - sodium_mg > limit →
⚠️ High sodium ({total}/{limit} mg) - sugar_g > limit →
⚠️ Over sugar limit ({total}/{limit} g) - fiber_g \x3C limit →
ℹ️ Low fiber ({total}/{limit} g)
- calories > limit →
- Append any warnings to the log reply. If nothing is over, skip the check section entirely.
Reply Format
For logged items, use this format:
📝 **Item Name** (Brand)
Source: barcode | Servings: 2
Per serving: 150g
---
🔥 300 kcal | 🥩 12g protein | 🍞 45g carbs | 🧈 8g fat
🥬 3g fiber | 🍬 18g sugar | 🧂 420mg sodium
[Vitamins/minerals if present]
For photo estimates, prefix with: 📸 Estimate —
Parsing Servings
From message text, look for patterns like:
2x,x2,×22 servings,2 servingtwo,three(common number words)- If none found, default to 1
Data Access
This skill reads and writes persistent files in the workspace:
- Writes
$WORKSPACE/data/food_log.csv— one row per food entry (item, nutrition, timestamps) - Writes resized images to
$WORKSPACE/data/during photo estimates (cleaned up after processing) - Reads
$WORKSPACE/data/food_profile.json(orFOOD_PROFILE_PATH) — daily nutritional limits - Network barcode lookups hit
https://world.openfoodfacts.org/api/v2/(public API, no key needed) - External API photo estimates use the platform
imagetool which may send images to a remote vision model
Required Files
scripts/tracker.py— the food tracker script (included in bundle)data/food_profile.json— user profile with daily limits (user-created, not included)
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install food-channel - After installation, invoke the skill by name or use
/food-channel - Provide required inputs per the skill's parameter spec and get structured output
What is Food Channel?
Handle messages in a food-tracking channel by routing food intake events through a deterministic food tracker. Use when working in a dedicated food channel,... It is an AI Agent Skill for Claude Code / OpenClaw, with 104 downloads so far.
How do I install Food Channel?
Run "/install food-channel" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Food Channel free?
Yes, Food Channel is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Food Channel support?
Food Channel is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Food Channel?
It is built and maintained by cdmichaelb (@cdmichaelb); the current version is v1.0.1.