cookidoo is a high-signal command line tool for:
- viewing and managing your Cookidoo shopping list
- browsing recipe details with ingredients, times, and categories
- checking your weekly meal plan
- browsing managed and custom recipe collections
- clean machine-readable JSON for pipelines
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -e .
export COOKIDOO_EMAIL="your@email.com"
export COOKIDOO_PASSWORD="your_password"
cookidoo user
cookidoo shopping
cookidoo recipe --id r59322
cookidoo calendar- Single command surface:
cookidoo - Strict argument validation with clear errors
- Human view for operators, JSON view for automation
- Full shopping list management (add, remove, check, clear)
- Predictable exit codes for CI and scripts
python3 -m pip install -e .If your Python is externally managed, use a virtualenv (recommended).
Use one of these:
cookidoo --email "you@mail.com" --password "secret" userexport COOKIDOO_EMAIL="you@mail.com"
export COOKIDOO_PASSWORD="secret"
cookidoo user| Command | Purpose | Common flags |
|---|---|---|
user |
Show user info and subscription | --json |
shopping |
Show shopping list | --json |
shopping-recipes |
Show recipes on the shopping list | --json |
shopping-add |
Add items to shopping list | --items, --recipe-ids |
shopping-remove |
Remove items from shopping list | --ids, --recipe-ids |
shopping-check |
Check/uncheck items | --ids, --type, --uncheck |
shopping-clear |
Clear entire shopping list | - |
recipe |
Get recipe details | --id, --json |
calendar |
Show weekly meal plan | --date, --json |
collections |
List recipe collections | --type, --page, --json |
cookidoo user
cookidoo user --jsoncookidoo shopping
cookidoo shopping --json
cookidoo shopping-recipescookidoo shopping-add --items "Milch" "Brot" "Eier"
cookidoo shopping-add --recipe-ids r59322 r12345cookidoo shopping-remove --ids a1b2c3
cookidoo shopping-remove --recipe-ids r59322cookidoo shopping-check --ids i1 i2 i3
cookidoo shopping-check --ids i1 --uncheck
cookidoo shopping-check --ids a1 --type additionalcookidoo shopping-clearcookidoo recipe --id r59322
cookidoo recipe --id r59322 --jsoncookidoo calendar
cookidoo calendar --date 2025-03-10
cookidoo calendar --jsoncookidoo collections
cookidoo collections --type custom
cookidoo collections --type managed --page 1 --jsonGet subscription type:
cookidoo user --json | jq -r '.user.subscription.type'Unchecked shopping items as plain list:
cookidoo shopping --json | jq -r '.ingredients[] | select(.is_owned == false) | .name'Recipe names for today:
cookidoo calendar --json | jq -r '.calendar[0].recipes[].name'| Code | Meaning |
|---|---|
0 |
Success |
1 |
API/network/runtime error |
2 |
Input/auth/config error |
Input error: Email missing
Use --email or set COOKIDOO_EMAIL.
Input error: Password missing
Use --password or set COOKIDOO_PASSWORD.
Error: Authentication failed
Check your email/password and ensure your Cookidoo account is active.
Error: Invalid configuration
Check --country and --language values. Use valid codes like ch/de-CH.
Error while calling Cookidoo API
Network issue or Cookidoo servers unavailable. Retry later.
Run from source:
PYTHONPATH=src python3 -m cookidoo_cli --helpCompile check:
python3 -m compileall -q src testsTests:
PYTHONPATH=src python3 -m pytest -qsrc/cookidoo_cli/
cli.py # parsing, command execution, output rendering
transform.py # normalization layer (dataclass -> dict)
const.py # subscription type mappings and defaults
__main__.py # python -m entrypoint
tests/
test_transform.py
- Never commit credentials.
- Prefer environment variables in CI/CD.
- Rotate passwords immediately if exposed.