CLI tool for interacting with the Cookidoo recipe platform.
Build. Automate. Share.
Thermomix recipes, shopping lists, and meal plans from your terminal.
CLI Tool | Python | Public | Maintained
Cookidoo CLI wraps a service or workflow in a command-line interface so common tasks can be automated from a terminal, shell script, or scheduled job.
- Primary stack: Python.
- Typical usage starts with local configuration or credentials, then executes commands against the target service API.
- This repository is maintained as a practical project and reference asset.
The CLI parses user input, loads configuration, calls the external service, normalizes the response, and prints script-friendly output.
flowchart LR
User[Terminal user] --> Command[CLI command]
Command --> Config[Configuration and credentials]
Config --> Client[API client]
Client --> Service[External service]
Service --> Parser[Response parser]
Parser --> Output[Terminal output]
-
Review the project context and workflow below.
-
Clone the repository:
git clone https://github.com/JayRHa/CookidooCLI.git
-
Continue with the setup, usage, or workflow sections below.
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.