Install
openclaw skills install @karimqpn/lieferando-cliRead-only German food-delivery discovery for Lieferando (default) and Uber Eats: search restaurants near an address, inspect menus, item option groups, prices, delivery fees, ETA, and opening state. JSON envelope output. Cannot log in, order, or pay. Trigger when asked to find food, compare delivery options, or resolve menu/item details on Lieferando or Uber Eats in Germany.
openclaw skills install @karimqpn/lieferando-cliRead-only discovery for Lieferando (Just Eat Takeaway) in Germany. The tool is bundled with this skill (zero-dependency Node, needs Node >= 20). Every command prints one JSON envelope: { meta, data, warnings, error? }.
node {baseDir}/scripts/lieferando.mjs <command> [flags]
All examples below use lieferando-cli as shorthand for that invocation.
cart commands are a LOCAL simulation (data.simulation: true); nothing is sent to the platform.LFD_BLOCKED or LFD_RATE_LIMITED, back off. Never retry in a tight loop, never attempt to bypass bot protection.--address "Torstraße 1, 10119 Berlin" (geocoded via OSM, needs street + postcode or city) OR --postcode 10115 directly.--address with --postcode/--lat/--lng.lieferando. Add --provider ubereats for Uber Eats Germany.data.restaurants[].id); the feed only lists currently open stores; min_order_cents is not exposed; item ids from promo carousels rotate, so on LFD_NOT_FOUND re-run menu and pick a fresh id from a canonical category; --include-options is not supported on menu (use item).item (option-group detail) hits their most protected endpoint. If it returns LFD_BLOCKED, stop using that command for at least an hour; search, restaurant, and menu (which already include item prices) keep working.lieferando-cli search --postcode 10115 --query "pizza" --open-now --limit 10 --jsonlieferando-cli availability --postcode 10115 --jsonlieferando-cli restaurant <slug> --postcode NNNNN --json (without a location only static info is returned)lieferando-cli menu <slug> --json (add --category "pizza" to narrow, --include-options for option groups inline)lieferando-cli item <slug> <item-id> --json (item ids are UUIDs from menu output)cart add --restaurant <slug> --item <id> [--variant <id>] [--count N] [--options '{"<group-id>":["<option-id>"]}'], then cart preview --postcode NNNNN --jsonPrefer menu --category over dumping full menus of large restaurants. Slugs come from search output (data.restaurants[].slug).
.data; surface .warnings to the user.*_cents); divide by 100 for display..error = { code, message, provider, retryable } and exit code is 1 (2 for usage errors).error.retryable is true.LFD_INVALID_ARGUMENT, LFD_GEOCODE_ERROR, LFD_NOT_FOUND, LFD_RATE_LIMITED (retryable), LFD_UPSTREAM_ERROR (retryable if 5xx), LFD_BLOCKED (stop, do not retry), LFD_NETWORK_ERROR (retryable), LFD_CART_ERROR, LFD_UNSUPPORTED_LOCATION.
lieferando-cli search --postcode 10115 --query sushi --open-now --json → pick a slug by rating/fee/ETA.lieferando-cli menu <slug> --category maki --json → pick item ids.lieferando-cli item <slug> <item-id> --json (item ids are UUIDs from menu output) → resolve required option groups (min_choices >= 1).cart add + cart preview.