hktitan/swiggy-cli · Archived

swiggy-checkout

Place a Swiggy Food or Instamart order with swiggy-cli, choosing Cash, UPI or Swiggy Money and getting explicit consent first. Use only when the user has said to place/confirm the order — never as an automatic continuation of adding to cart.

First seen Apr 28, 2026

Installation

$ npx skills add hktitan/swiggy-cli --skill swiggy-checkout

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from hktitan/swiggy-cli · top by installs.

npx skills add hktitan/swiggy-cli

Browse all from hktitan/swiggy-cli

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 1
License LICENSE
Default branch main
Open issues 0
Status Archived

Skill metadata

Parsed from SKILL.md frontmatter.

Version0.2.4
LicenseMIT
CompatibilityRequires swiggy-cli signed in. Places real orders that cost real money.
More metadata
author
HKTITAN
version
0.2.4

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,495 B
  • docs SUMMARY.md 266 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 4 installs

SKILL.md

swiggy-checkout

checkout calls placefoodorder / checkout upstream. Orders cannot be cancelled through the API (Swiggy customer care: 080-67466729), so this skill is strict about consent.

Pre-flight (all three, every time)

  1. swiggy <server> cart --json --no-interactive — read the live cart. Show items, quantities and the payable total.
  2. Confirm the delivery address by text (swiggy <server> addresses --json → addressLine). "Delivering to: <addressLine>."
  3. Ask one direct question: "Place this order for ₹<total> to <address>, paying by <method>?" Wait for an explicit yes. "Go ahead" after a search is not consent to spend money; "yes, place it" is.

Payment decision

Did the user name a method?
├── "cash" / "COD"                        → --pay cash
├── "UPI" / "GPay" / "PhonePe" / "Paytm"  → is a specific app id in payment-options?
│      ├── yes                            → --pay upi:<id copied exactly>
│      └── no / desktop / unknown device  → --pay upi          (scan-or-tap link works everywhere)
├── "Swiggy Money" / "wallet"             → run payment-options; use --pay swiggypay ONLY if the server lists it
└── nothing                               → run payment-options and show the list; do not pick for them

swiggy <server> payment-options --json is the source of truth: offer only methods it returns. Never ask the user for a UPI ID/VPA (not supported, NPCI rule).

Run

# Cash: order is placed immediately, no payment leg
swiggy food checkout --pay cash --yes --json --no-interactive
swiggy instamart checkout --pay cash --yes --json --no-interactive

# UPI: one command that places, shares the pay link, polls and confirms (blocks up to Swiggy's cap, ~5 min)
swiggy food checkout --pay upi --wait --yes --json --no-interactive
# UPI in two steps (agent hands the link over, resumes later) — see swiggy-pay
swiggy food checkout --pay upi --yes --json --no-interactive

--note "<text>" (Food only) sends a note to the restaurant, e.g. "less spicy". It is not for delivery instructions.

Read the result

  • meta.payment.pending === false and data.status CONFIRMED/PLACED → placed. Quote meta.message verbatim (it carries Swiggy branding) and save data.orderId.
  • meta.payment.pending === true → not placed yet. Say "Complete the payment in your UPI app, I'll confirm once it succeeds", give meta.payment.bridgeUrl, then follow swiggy-pay using meta.payment.next.
  • exit 10 PAYMENT_FAILED → read error.hint; do not call checkout again blindly.
  • exit 6 MCP_ERROR → surface error.message; then run swiggy <server> orders --active --json before any retry, because a 5xx may have placed the order anyway.

Never

  • Add --yes without the question in Pre-flight step 3 being answered "yes" in this conversation.
  • Call checkout twice for the same cart.
  • Announce success on a PENDING_PAYMENT response.
  • Substitute another address if the one the user named is missing; ask.