From sundial-org-awesome-openclaw-skills-4
Extracts ingredients from recipe photos using Gemini Flash vision or web pages via search/fetch, merges into Todoist Shopping list with overlap/synonym checks skipping pantry staples, sums quantities, and saves recipes to workspace cookbook.
npx claudepluginhub joshuarweaver/cascade-ai-ml-agents-misc-2 --plugin sundial-org-awesome-openclaw-skills-4This skill uses the workspace's default tool permissions.
Target flow:
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Target flow:
Use the bundled script to handle the photo → ingredients → Shopping update part.
It also automatically saves a markdown entry into recipes/ (your cookbook knowledge base) and appends to recipes/index.md.
For recipe-name → web search, do it confirm-first using web_search + web_fetch, then feed the ingredients into the same update logic (and save the recipe).
GEMINI_API_KEY (or GOOGLE_API_KEY) for GeminiTODOIST_API_TOKEN for Todoisttodoist (todoist-ts-cli)python3 skills/recipe-to-list/scripts/recipe_to_list.py \
--image /path/to/photo.jpg \
--title "<optional title>" \
--source "photo:/path/to/photo.jpg"
--model gemini-2.0-flash (default; falls back automatically) or any compatible Gemini vision model--dry-run to print extracted items without creating tasks--prefix "[Recipe] " to prefix each created task--no-overlap-check to skip checking your existing Shopping list--include-pantry to include salt/pepper--no-save to skip saving into recipes/The script prompts Gemini to return strict JSON:
{
"items": ["2 large globe eggplants", "kosher salt", "..."],
"notes": "optional"
}
If parsing fails, rerun with a clearer crop (ingredients list only) or provide a manual list.