Tell ChatGPT what you want to eat or drink. It can search Just Eat Spain, compare the real delivered price, prepare a basket, and open that basket on Just Eat so you can finish yourself.
You can speak normally:
Find the cheapest way to get at least 20 litres of still water delivered. Include every fee, but do not order.
Find me a healthy, tasty dinner under €20. Show me the best three choices.
Add option 1 to my basket, but do not place the order.
Open my Just Eat basket so I can check out myself.
This is an unofficial community project. It is not made, approved, or supported by Just Eat Takeaway.com.
This section is for anyone—even if you have never used Terminal or installed a developer tool.
- Open the ChatGPT desktop app.
- Choose Work (or Codex), not ordinary Chat mode.
- Start a new chat.
- Ask for what you want in your own words.
That is all. You do not need to know any commands.
If ChatGPT needs you to sign in, it opens Just Eat's real login page in your normal browser. Sign in there and return to ChatGPT. Never paste your Just Eat password, cookies, login link, or access token into chat.
Paste this whole sentence into a Work chat on the desktop app:
Install the Just Eat Spain plugin from https://github.com/wachtermar/justeat-cli for me. Install its CLI from the same GitHub repository, add its plugin marketplace, install the plugin, run its doctor check, and tell me when to restart ChatGPT. Do not place any order.
ChatGPT will do the setup work and tell you if it needs permission. After it finishes, restart the app and begin a new Work chat.
The computer needs Node.js 20 or newer once. If ChatGPT says Node.js is missing, ask: “Please install Node.js 20 or newer for me, then continue.”
Current limitation: this local plugin works in Work/Codex in the ChatGPT desktop app. It does not work in ordinary Chat mode or the mobile app. A hosted ChatGPT app is still needed for true phone and web-only use.
ChatGPT follows a simple, visible flow:
- It uses your saved Just Eat delivery address—never a guessed city.
- It searches products or meals matching your request.
- It compares quantities, ratings, minimum orders, delivery fees, service fees, and the final total.
- It shows you the choices before changing a basket.
- It creates a basket only after you choose.
- If you ask, it opens that same basket on the official Just Eat website for manual checkout.
For water, it understands packs, bottle sizes, litres, and price per litre. For meals, it can balance your budget, restaurant ratings, taste words, dietary requests, and simple health signals. Meal and water “health” scores are explanations, not medical or nutritional advice.
No final order is placed during searching, comparing, adding to a basket, quoting, or opening the basket.
Placing an order has two separate locks:
- You must approve the current restaurant, items, address, delivery time, payment method, fees, and exact total.
- The person running the CLI must separately enable order placement with
JUSTEAT_ENABLE_ORDER_PLACEMENT=1.
Any basket change invalidates the old confirmation. The project’s tests never submit a payment request. Payment details are not requested or stored by this CLI.
| What you want | Example request |
|---|---|
| Cheap water | “Get me at least 12 L of still water for the lowest delivered price.” |
| Dinner ideas | “Find a tasty, healthy dinner for two under €30.” |
| A dietary option | “Find a vegetarian dinner with good ratings. Show me three options.” |
| Delivery tomorrow | “How many pharmacies around me can deliver tomorrow?” |
| Compare full prices | “Compare the final total including all fees for the best three.” |
| Prepare, not purchase | “Add the first choice to my basket, but do not order.” |
| Finish yourself | “Open my basket on Just Eat so I can check it and pay myself.” |
| Check login | “Am I logged in to Just Eat?” |
If you mention an allergy, ChatGPT stops basket preparation until the restaurant confirms it. A menu description alone is never treated as proof that food is allergen-safe.
The family instructions above are the intended experience. These commands are only for developers or for manual setup.
Requires Node.js 20 or newer. The CLI has no runtime dependencies.
npm install --global github:wachtermar/justeat-cli
codex plugin marketplace add wachtermar/justeat-cli
codex plugin add justeat-es@justeat-es-marketplace
justeat doctorRestart the ChatGPT desktop app and start a new Work or Codex chat.
To develop from a checkout instead:
git clone https://github.com/wachtermar/justeat-cli.git
cd justeat-cli
npm install
npm link
npm run checkThe plugin lives in plugins/justeat-es, and its repository marketplace is .agents/plugins/marketplace.json. See ChatGPT Work integration for architecture and local-development details.
# Sign in through Just Eat's official page in your normal browser
justeat auth login
# Use the first saved delivery address
justeat recommend "cheap 6 litres of water"
justeat recommend "healthy tasty food under 18 EUR"
# Compare the real delivered totals; --create makes temporary baskets
justeat order compare <plan-id> --top 3 --create
# Prepare and create the selected basket
justeat order prepare <plan-id> --candidate 0
justeat order prepare <plan-id> --candidate 0 --create
justeat order quote <plan-id>
# Restore that API-created basket in the normal browser
justeat order open <plan-id>order open uses Just Eat's official group-basket handoff. Opening only a restaurant page is not enough because the website cannot otherwise discover a basket created through the API.
order place is preview-first and does not submit anything:
justeat order place <plan-id>It returns the current exact total and a short confirmation fingerprint. Only an exact, current confirmation plus the independent server setting can submit:
JUSTEAT_ENABLE_ORDER_PLACEMENT=1 \
justeat order place <plan-id> --confirm <current-fingerprint>Never retry an ambiguous final payment result. Check the official Just Eat order history instead.
| Command | Purpose |
|---|---|
doctor |
Check discovery, menu, OAuth, runtime, and local login health |
recommend <request> |
Find and rank products or meals from natural language |
auth login|status|logout |
Manage the official OAuth session |
account addresses |
Read saved delivery addresses |
search / menu |
Discover restaurants and inspect normalized menus |
order compare |
Validate delivered totals across candidates |
order prepare / quote |
Create and inspect a basket safely |
order open |
Restore the basket in the normal browser |
order place |
Preview first; submit only through both confirmation locks |
mcp |
Run the ChatGPT Work/Codex tool server |
Authentication uses Just Eat's official authorization-code OAuth flow with PKCE. It does not use Playwright, import browser cookies, or ask ChatGPT to handle passwords. Tokens and private recommendation plans are stored under ~/.config/justeat-es-cli/ with owner-only permissions. Do not publish that directory; --raw output may contain personal data. See authentication details.
This is an experimental pre-1.0 client for private consumer APIs, which can change without notice. Today it supports Just Eat Spain. Recommendations are heuristic, checkout totals should always be reviewed, and service availability still depends on Just Eat and each merchant.
intent → search → ranked choices → delivered-total comparison
→ basket → checkout quote → human review → optional submission
Tests use synthetic HTTP responses and never place an order. CI covers Node.js 20, 22, and 24.
npm run check
npm run test:coverage
npm run pack:checkThe design draws operational lessons from steipete/ordercli and the Domino's Printing Press CLI; this implementation is original. More detail: agent usage, API contracts, contributing, security, and third-party notices.
MIT