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)
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install food-channel - 安装完成后,直接呼叫该 Skill 的名称或使用
/food-channel触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
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,... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 104 次。
如何安装 Food Channel?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install food-channel」即可一键安装,无需额外配置。
Food Channel 是免费的吗?
是的,Food Channel 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Food Channel 支持哪些平台?
Food Channel 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Food Channel?
由 cdmichaelb(@cdmichaelb)开发并维护,当前版本 v1.0.1。