recipe-to-list

Turn recipes into a Todoist Shopping list. Extract ingredients from recipe photos (Gemini Flash vision) or recipe web pages (search + fetch), then compare against the existing Shopping project with conservative synonym/overlap rules, skip pantry staples (salt/pepper), and sum quantities when units match. Also saves each cooked recipe into the workspace cookbook (recipes/).

7 stars

Best use case

recipe-to-list is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Turn recipes into a Todoist Shopping list. Extract ingredients from recipe photos (Gemini Flash vision) or recipe web pages (search + fetch), then compare against the existing Shopping project with conservative synonym/overlap rules, skip pantry staples (salt/pepper), and sum quantities when units match. Also saves each cooked recipe into the workspace cookbook (recipes/).

Teams using recipe-to-list should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/recipe-to-list/SKILL.md --create-dirs "https://raw.githubusercontent.com/Demerzels-lab/elsamultiskillagent/main/public/skills/borahm/recipe-to-list/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/recipe-to-list/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How recipe-to-list Compares

Feature / Agentrecipe-to-listStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Turn recipes into a Todoist Shopping list. Extract ingredients from recipe photos (Gemini Flash vision) or recipe web pages (search + fetch), then compare against the existing Shopping project with conservative synonym/overlap rules, skip pantry staples (salt/pepper), and sum quantities when units match. Also saves each cooked recipe into the workspace cookbook (recipes/).

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Create Shopping List (Gemini Flash + Todoist)

Target flow:
1) Input is either a **photo** or a **recipe web search**
2) Extract ingredients (Gemini Flash for photos; web_fetch text → Gemini for websites)
3) Pull current Todoist **Shopping** list
4) Compare using overlap + synonym mapping (kept conservative; only merge high-confidence equivalents like coriander↔cilantro, panko↔breadcrumbs)
5) Update **Shopping** (default: add only missing items; skip salt/pepper)

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).

## Prereqs

- Env: `GEMINI_API_KEY` (or `GOOGLE_API_KEY`) for Gemini
- Env: `TODOIST_API_TOKEN` for Todoist
- Bin: `todoist` (todoist-ts-cli)

## Output formatting

- Items are reformatted to start with the **ingredient name**, followed by a parenthetical quantity.
- The Shopping list is kept **flat** (no Todoist sections/groups).

## Run

```bash
python3 skills/recipe-to-list/scripts/recipe_to_list.py \
  --image /path/to/photo.jpg \
  --title "<optional title>" \
  --source "photo:/path/to/photo.jpg"
```

### Optional flags

- `--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/`

## What to send to the model

The script prompts Gemini to return **strict JSON**:

```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.

Related Skills

moltslist

7
from Demerzels-lab/elsamultiskillagent

Agent marketplace for trading services, tools, and tasks using virtual credits.

listonic

7
from Demerzels-lab/elsamultiskillagent

Access Listonic shopping lists: list lists/items, add/check/delete items, and manage lists.

recipes

7
from Demerzels-lab/elsamultiskillagent

CLI for AI agents to find recipes for their humans. Uses TheMealDB API. No auth required.

percept-listen

7
from Demerzels-lab/elsamultiskillagent

Ambient audio capture and transcription for OpenClaw agents via wearable devices.

spaces-listener

7
from Demerzels-lab/elsamultiskillagent

Record, transcribe, and summarize X/Twitter Spaces — live or replays. Auto-downloads audio via yt-dlp, transcribes with Whisper, and generates AI summaries.

tandoor-recipes

7
from Demerzels-lab/elsamultiskillagent

Manage recipes, meal plans, and shopping lists in Tandoor Recipe Manager.

xmtp-cli-list

7
from Demerzels-lab/elsamultiskillagent

List conversations, members, and messages from the XMTP CLI. Use when listing or finding conversations.

google-imagen-3-hyperrealistic-landscape

7
from Demerzels-lab/elsamultiskillagent

Generate hyperrealistic landscape photography using Google Imagen 3. Use when creating breathtaking natural scenes, landscapes, and nature photography with exceptional detail and realism.

listing-swarm

7
from Demerzels-lab/elsamultiskillagent

Submit your AI product to 70+ AI directories.

telegram-todolist

7
from Demerzels-lab/elsamultiskillagent

Telegram bot Todo List manager.

heartbeat-checklist

7
from Demerzels-lab/elsamultiskillagent

Run these checks periodically (2-4x daily).

ai-specialists

7
from Demerzels-lab/elsamultiskillagent

Interact with AI Specialists via the AI Specialists Hub MCP endpoint.