Cart-safe DoorDash CLI for terminal workflows.
doordash-cli is an unofficial CLI for the parts of DoorDash that work well in a shell: sign in once, set a delivery address, search restaurants, inspect menus and items, read existing orders, and manage a cart with structured output.
It stops before checkout.
- Cart-safe by design — browse, inspect existing orders, and manage a cart; no checkout, payment, or order mutation.
- Profile-first login —
doordash-cli loginreuses saved local auth, then same-machine Chrome/Brave profile state on supported platforms, then attachable signed-in browser sessions when possible, and otherwise opens a temporary login window. - Direct API first — auth, discovery, existing-order, and cart commands use DoorDash consumer-web GraphQL/HTTP rather than DOM clicking.
- JSON-friendly — commands print structured output by default, and
--jsonenables a documented automation envelope with stable error codes and exit codes. - Fail-closed — unsupported commands, flags, or unsafe payload shapes are rejected.
npm install -g doordash-cliThat installs both lowercase command names: doordash-cli and dd-cli.
Package page: https://www.npmjs.com/package/doordash-cli
For the full install and first-run guide, see docs/install.md.
If you want the latest unreleased work or a local checkout you can edit, use:
git clone https://github.com/LatencyTDH/doordash-cli.git
cd doordash-cli
npm install
npm linkIf you prefer to run from a checkout without linking:
npm run cli -- --helpIf your environment does not already have Playwright's bundled Chromium runtime installed, install it once:
doordash-cli install-browser
# or, from a checkout without linking
npm run install:browserThat runtime is used when the CLI needs a local browser, including the temporary login window fallback.
doordash-cli login
doordash-cli auth-check
doordash-cli set-address --address "350 5th Ave, New York, NY 10118"
doordash-cli search --query sushiIf you are running from a checkout without npm link, replace doordash-cli with npm run cli --.
doordash-cli loginreuses saved local auth first, then same-machine Chrome/Brave profile state on supported platforms, then attachable signed-in browser sessions, and finally a temporary Chromium login window it can watch directly.doordash-cli auth-checkreports whether saved state still looks logged in and can quietly reuse/import supported browser state unlessdoordash-cli logoutdisabled that auto-reuse.doordash-cli logoutclears persisted cookies and storage state, then keeps passive browser-session reuse disabled until the next explicitdoordash-cli login.
For platform-specific reuse behavior, session directory locations, DOORDASH_CLI_SESSION_DIR, legacy-state migration, and temporary-browser troubleshooting, see docs/auth-and-session-reuse.md.
install-browserauth-checkloginlogout
set-address --address <text>search --query <text> [--cuisine <name>]menu --restaurant-id <id>item --restaurant-id <id> --item-id <id>
orders [--limit <n>] [--active-only]order --order-id <id>
add-to-cart --restaurant-id <id> (--item-id <id> | --item-name <name>)update-cart --cart-item-id <id> --quantity <n>cart
For configurable items and working command examples, see docs/examples.md.
For stable scripting and wrapper integrations, use --json and read docs/automation-contract.md.
The CLI allowlists browse, existing-order, and cart commands. It hard-blocks:
checkoutplace-order- payment actions
- order mutation or cancellation actions
Safety is enforced in code:
- unsupported commands hard-fail
- unknown flags are rejected before DoorDash work runs
- direct cart mutations use validated request shapes
- unsupported nested option transports fail closed
- Install guide
- Auth and session reuse
- Examples
- Automation contract
- Release process
- Architecture and scope guide
- Contributing
- Security policy
man dd-climan doordash-cli
- This is an unofficial integration against DoorDash consumer-web traffic.
- DoorDash can change request shapes, anti-bot behavior, or session handling at any time.
- Review results before trusting them for anything important.
MIT