Calorie Visualizer
v1.0.0Local calorie logging and visual reporting (auto-refreshes and returns report image after each log)
Security Scan
OpenClaw
Benign
high confidencePurpose & Capability
Name/description (local calorie logging + visual reports) match the code and files: CLI for adding entries, local SQLite DB, local food DB, renderer that produces a PNG. Declared runtime (python3, html2image + Pillow, local Chromium) is proportional to the reported functionality.
Instruction Scope
SKILL.md and the CLI instruct only local operations (write to calorie_data.db, regenerate local report, output REPORT_IMAGE:<path>). The code also reads USER.md (two directories up by default) to compute TDEE — this is documented in the README/SKILL.md, but it means the skill will attempt to read a workspace-level USER.md for profile data. That behavior is consistent with the feature but is a privacy-sensitive read that users should be aware of. The only external network call is an optional USDA API lookup when USDA_API_KEY is set.
Install Mechanism
There is no opaque download/install script. The repo contains Python scripts and a requirements.txt; the install instructions are to pip install the listed dependencies (html2image, Pillow). This is a low-risk, standard install path. html2image uses a system Chromium runtime (documented).
Credentials
No required environment variables are declared. The code optionally reads USDA_API_KEY (for online food lookup) and CALORIE_VIS_USER_MD (an override path for the USER.md file). Both are reasonable for their purposes, but CALORIE_VIS_USER_MD lets a user-supplied path be read — only set it if you trust the skill. No unrelated secrets or credentials are requested.
Persistence & Privilege
The skill does not request always:true and will not auto-enable itself. It writes local files inside the skill directory (calorie_data.db, daily_report.png, and updates data/food_database.json) which is expected for local persistence. It does not modify other skills or global agent settings.
Assessment
This appears to be a local-only calorie logging/reporting skill that stores data in calorie_data.db and writes daily_report.png inside the skill folder. Before installing: 1) Review whether you’re comfortable the tool will read USER.md in your repository (or any path you set via CALORIE_VIS_USER_MD) to compute TDEE, 2) only set USDA_API_KEY if you want online lookup (it is optional), 3) ensure you have a system Chromium/Chrome runtime for html2image and install the Python deps via requirements.txt, and 4) if you have privacy concerns, inspect the scripts (they are included) — there are no hidden network endpoints or obfuscated code. If you want extra assurance, run the scripts in an isolated environment (container or VM) first.Like a lobster shell, security has layers — review code before you run it.
Runtime requirements
📊 Clawdis
OSmacOS · Linux
Binspython3
latest
Calorie Visualizer
A local skill for meal logging and visual nutrition analysis.
Core Flow
- User sends meal text/photo (upstream extracts calorie/protein values or calls food-db lookup).
add(oradd-food) writes tocalorie_data.db.- After write,
visual_renderer.pygenerates a fresh report image. - CLI prints
REPORT_IMAGE:<path>so the chat layer can send the image.
Daily Goal Priority
config.daily_goal(manual override)- TDEE derived from
USER.md - If user explicitly refuses profile data: logging only, no repeated prompting
- Fallback default in renderer:
2000 kcal
CLI Commands
# Add a meal with explicit nutrition values
python3 scripts/calorie_visualizer.py add "food name" 500 25 [--photo /path/to/image.jpg]
# Add from local food database (local-first, online fallback optional)
python3 scripts/calorie_visualizer.py add-food "Subway chicken sandwich" --multiplier 1.0
python3 scripts/calorie_visualizer.py add-food "rice" --offline
# Daily summary
python3 scripts/calorie_visualizer.py summary
# Regenerate report image
python3 scripts/calorie_visualizer.py report
# Config
python3 scripts/calorie_visualizer.py config daily_goal 2000
python3 scripts/calorie_visualizer.py config user_refused_profile True
Dependencies
cd skills/calorie-visualizer
python3 -m pip install -r requirements.txt
- Python libs:
html2image,Pillow - Online fallback: optional USDA API (
USDA_API_KEY) - Database: SQLite (built into Python)
- Rendering: requires system Chromium/Chrome (called by html2image)
Storage
calorie_data.db(local SQLite)- No automatic external sync
Comments
Loading comments...
