DoorDash Group Orders
SkillAI & modelsdoordash-group-orders is a skill for AI agents that handles group food ordering through the DoorDash CLI (dd-cli). It keeps a persistent team roster, so a single request like "lunch for the team" turns into one merged cart with each line attributed to its eater, per-person cost splits, and payer rotation history.
Available today. Use it from your connected AI after setup.
No other account needed.
Have the DoorDash CLI (dd-cli) available on your system.
Then ask your AI: use the DoorDash Group Orders skill
What your AI can do with it
- Collects individual food choices into a single merged DoorDash cart
- Attributes each cart line to its eater via a person-to-cart-item-id ledger
- Splits costs per person with fee proration
- Tracks payer rotation history across orders
- Maintains a persistent team roster for repeat orders
Getting started
- Have the DoorDash CLI (dd-cli) available on your system.
- Add the doordash-group-orders skill to your agent's configuration.
- Set up the team roster with the people who will be ordering.
- Ask your agent for a group order, such as lunch for the team, and review the merged cart and per-person split it produces.
What this skill tells your AI
The instructions your AI receives, as published by davila7/claude-code-templates in cli-tool/components/skills/doordash/doordash-group-orders/SKILL.md and read by ahel’s review.
Coordinating N people's food is exactly the cross-session state Claude drops: who's vegetarian, who hates cilantro, which cart line is Bob's, whose turn it is to pay. This skill keeps a roster, attributes every cart line to its eater, splits costs with fees prorated, and remembers payer history.
Unofficial community skill built on DoorDash's
doordash-oss/doordash-cli. Note: dd-cli orders under ONE account — the account owner pays DoorDash; the split is for reimbursement (Venmo/transfer), not split payment.
State
team-food.json(project dir or~/.claude/dd-cli/— committable if the team shares a repo): the roster.
{
"members": {
"dani": { "hard": ["vegetarian"], "allergens": [{ "name": "peanut", "severity": "anaphylaxis" }], "favorites": ["Veggie burrito bowl"], "dislikes": ["cilantro"] },
"bob": { "hard": [], "allergens": [], "favorites": ["Spicy chicken sandwich"], "dislikes": [] }
}
}
.dd/round-<date>.json— the active round's ledger:
{
"date": "2026-07-19",
"cart_uuid": "...",
"restaurant": "...",
"orders": {
"dani": [{ "item": "Veggie bowl", "cart_item_id": "41", "price": 12.5 }],
"bob": [{ "item": "Spicy chicken sandwich", "cart_item_id": "42", "price": 11.0 }]
}
}
.dd/rounds.jsonl— history, one line per completed round:{"date": "...", "order_uuid": "...", "payer": "dani", "split": {"dani": 14.1, "bob": 12.4}}
Flow 1 — Build a round
"Order lunch for the team":
- Roster check: load
team-food.json; missing members → quick interview (hard constraints, allergens + severity, a favorite, dislikes). - Restaurant: intersect hard constraints (a vegetarian on the roster =
only places with real vegetarian options).
dd-cli search --query "..."→ shortlist of 2-3 → let the human pick. - Per-member choice: use their
favoriteswhen the restaurant matches; otherwise ask ONE question per member (or take answers from a pasted thread — Flow 2). Never guess for someone with allergens. - Build the cart:
dd-cli cart add-items ...per member's items (via the dd-guard wrapper when doordash-spend-guard is installed). After each add, rundd-cli cart show --cart-uuid <X>and record which cart-item-id belongs to whom in.dd/round-<date>.json. This ledger is what makes "quita lo de Bob" resolvable later. - Review: show the cart grouped by person with per-person subtotals.
- Checkout: emit the checkout URL (through dd-guard if installed). The group gate hook independently re-checks allergens (see below).
- Close the round: after the human confirms they ordered, pull the
order_uuid from
dd-cli order history, compute the split, append to.dd/rounds.jsonl, and print a share-ready split table.
Flow 2 — Paste-a-thread intake
The user pastes a Slack/chat thread ("who wants what"). Parse it into the round file: person → requested items. Unknown people → ask if they should join the roster. Ambiguous requests ("something spicy") → one clarifying question, or their favorite if the restaurant matches. Then continue Flow 1 from step 4.
Flow 3 — Edits by person
"Bob canceló" / "cambia lo de Sam": look up the person's cart_item_ids in
the round ledger, dd-cli cart remove-item --cart-uuid X --cart-item-id N
for each, update the ledger, re-show the grouped cart.
Cost split
- Item subtotals per person from the round ledger.
- Fees/tip/tax are only final on the payment page: split the known subtotal now, and offer the post-payment fallback — "tell me the final total and I'll prorate the difference by each person's share."
split= per-person items + prorated share of (final_total − subtotal) when provided.
/whose-turn
Read .dd/rounds.jsonl: sum what each member has paid vs. consumed across
rounds; the next payer is the member with the largest (consumed − paid)
balance. Show the balances so the answer explains itself.
Rules
- Anyone with an
anaphylaxisallergen gets the same vetting the doordash-allergy-shield skill applies — check their items against hidden-source synonyms, and never guess their order. - cart-item-ids come only from real
cart showoutput. - The round ledger is the source of truth for attribution — keep it updated on every cart mutation, or person-level edits break.
- Add
.dd/to.gitignoreunless the team explicitly wants round history committed (it reveals eating habits).
Signals
- GitHub stars
- 32k
- Forks
- 4k
- Last commit
- Sep 2026
Questions
- How are costs split?
- Costs are split per person, with fees prorated across the group. Each cart line is attributed to its eater through a person-to-cart-item-id ledger.
- Does it need the DoorDash CLI?
- Yes, the skill orders through the DoorDash CLI (dd-cli), so that needs to be available on your system.
- Do I have to re-enter everyone's details each time?
- No. The skill keeps a persistent team roster, so repeat group orders can draw on the saved list of people.
- Who pays for the order?
- The skill tracks payer rotation history, so it can rotate who pays across orders.
Advanced
- Item type
- skill
- Key
doordash-group-orders- Source
- github.com/davila7/claude-code-templates