name: pp-ordertogo
description: "Browse, cart, and place orders at any OrderToGo.com restaurant from the terminal — pure-Go agent-native client... Trigger phrases: order my usual, place my regular order, order from <restaurant>, what's my usual order, how much have I spent at, is <restaurant> open right now, use ordertogo, run ordertogo."
author: "user"
license: "Apache-2.0"
argument-hint: "
OrderToGo — Printing Press CLI
Prerequisites: Install the CLI
This skill drives the ordertogo-pp-cli binary. You must verify the CLI is installed before invoking any command from this skill. If it is missing, install it first:
- Install via the Printing Press installer. It defaults binaries to
$HOME/.local/binon macOS/Linux and%LOCALAPPDATA%\Programs\PrintingPress\binon Windows:npx -y @mvanhorn/printing-press-library install ordertogo --cli-only - Verify:
ordertogo-pp-cli --version - Ensure the reported install directory is on
$PATHfor the agent/runtime that will invoke this skill.
If the npx install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.4 or newer):
go install github.com/mvanhorn/printing-press-library/library/food-and-dining/ordertogo/cmd/ordertogo-pp-cli@latest
If --version reports "command not found" after install, the runtime cannot see the binary directory on $PATH. Do not proceed with skill commands until verification succeeds.
When to Use This CLI
Reach for this CLI when an agent needs to handle 'order my usual', 'is the restaurant open', 'how much have I spent here this month', or 'place this exact cart with a budget cap'. It's read-fast (everything cached locally after one sync), write-safe (every place command is gated behind --confirm + --max + verify-env short-circuit), and works for any OrderToGo customer regardless of metro.
Unique Capabilities
These capabilities aren't available in any other tool for this API.
Safe agent-driven ordering
order plan— Recompose your previous order locally, validate against tax, and refuse to fire if total exceeds your --max cap.Reach for this when an agent needs to know 'will this fit my budget' before committing — answer comes from one structured call with no browser involvement.
ordertogo-pp-cli order plan --reuse-last --max 30 --jsonorder place— Drive a headless Chrome via chromedp to complete the Braintree DropIn flow with your saved card, with the budget cap enforced before the browser opens.Use when an agent has a budget-validated plan and the user has confirmed; this is the one command that actually moves money.
ordertogo-pp-cli order place --reuse-last --confirm --max 30
Local state that compounds
usual— Cluster your historical orders by item-set similarity and surface the recurring set that defines 'your usual' at any restaurant you order from.Reach for this when a user says 'order my usual' and the agent needs to decide whether one obvious pattern exists or whether to ask which usual.
ordertogo-pp-cli usual --restaurant <slug> --jsonspending— Total spent, average order, days since last order, top items, and weekly cadence — all from local order history with one SQL query.Use when an agent needs to answer 'how much have I spent here' or 'how often do I order' without re-fetching history.
ordertogo-pp-cli spending --since 90d --jsonorder plan— Pass --tip auto and the CLI applies your average tip percentage from history at this restaurant.Reach for this when an agent doesn't want to make the user pick a tip percentage — go with what's habitual.
ordertogo-pp-cli order plan --reuse-last --tip auto --json
Reachability mitigation
order plan— Refuse to fire if the restaurant is not currently open at the requested pickup time, using cached hours.Catches a class of agent failures before the payment flow opens.
ordertogo-pp-cli order plan --reuse-last --pickup-at '7:00 PM'
Agent-native plumbing
agent-context— Single-call structured dump: account, default restaurant, your usual, last-order summary, budget hint, days-since-last.Reach for this when an agent enters a session and needs a complete picture before suggesting any action.
ordertogo-pp-cli agent-context --jsonorder place— All side-effect commands short-circuit when PRINTING_PRESS_VERIFY=1 is set, printing 'would place:' instead of submitting. Use when an agent or test harness wants to exercise the place path without real-world consequences.
PRINTING_PRESS_VERIFY=1 ordertogo-pp-cli order place --reuse-last --confirm --max 30
Command Reference
coupons — Promotional coupons available to your account
ordertogo-pp-cli coupons list— List active coupons for your account (endpoint shape inferred from web 'My Coupons' panel)ordertogo-pp-cli coupons mark_used— Mark a promotion code as used after applying it to an order
giftcards — Giftcard balances and history per restaurant
ordertogo-pp-cli giftcards— List your giftcards across all restaurants (endpoint shape inferred from web 'My Giftcards' panel)
notifications — Notification badge for orders, rewards, and platform messages
ordertogo-pp-cli notifications— Count of unread notifications for your account
orders — Order history, detail, validation, and tracking - the core ordering data path
ordertogo-pp-cli orders cancel— Cancel your own order within the void window (typically before preparing-state)ordertogo-pp-cli orders list— List your order history across all restaurants (returns latest N orders, server-paginated)ordertogo-pp-cli orders show— Get order detail by orderid - items, options, totals, payment method, points earned, status timelineordertogo-pp-cli orders track— HTML order tracking page (received → preparing → ready → picked up). Parsed for status byorder track.ordertogo-pp-cli orders validate— Pre-validate a cart - returns an order token plus tax computation, used byorder planbefore any payment surface opens
payment — Braintree client token for payment-method nonce generation (used internally by chromedp headless flow)
ordertogo-pp-cli payment braintree_token— Returns a Braintree client token used by the DropIn UI to mint a single-use payment nonce. Hand-driven by chromedp...ordertogo-pp-cli payment checkout— Submit order with payment nonce and customer details. Body must includenoncefrom Braintree client. The CLI uses...
restaurants — Restaurants on the OrderToGo platform - filter by location, view detail, list multi-location chains
ordertogo-pp-cli restaurants list— List restaurants in a location code (e.g. sto for Seattle area)ordertogo-pp-cli restaurants menu— Full menu for a restaurant with categories, items, and modifier optionsordertogo-pp-cli restaurants show— Show restaurant detail - hours, address, phone, location code, multi-location chain mapping
rewards — Reward points balances per restaurant
ordertogo-pp-cli rewards— List your reward points across all restaurants (endpoint shape inferred from web 'My Rewards' panel)
Finding the right command
When you know what you want to do but not which command does it, ask the CLI directly:
ordertogo-pp-cli which "<capability in your own words>"
which resolves a natural-language capability query to the best matching command from this CLI's curated feature index. Exit code 0 means at least one match; exit code 2 means no confident match — fall back to --help or use a narrower query.
Recipes
Order your usual under a cap
ordertogo-pp-cli orders plan --reuse-last --max 30 --json --select totals.subtotal,totals.tax,totals.tip,totals.total,items.name
Compose your usual cart, validate with tax, and emit only the bottom-line numbers + item names. The /m/api/orders response includes every cart field; --select keeps the agent context tight.
Place after agent confirmation (verify-env safe)
PRINTING_PRESS_VERIFY=1 ordertogo-pp-cli orders place --reuse-last --confirm --max 30
Run only after the agent has shown the plan to the user and the user has approved. Under PRINTING_PRESS_VERIFY=1 the CLI prints 'would place' without launching Chrome - useful for dry-run agent flows.
Single-call agent dump
ordertogo-pp-cli agent-context --json
Returns account, default restaurant, last-order summary, your usual, budget hint, days-since-last - everything an agent needs to decide whether to suggest 'order my usual'.
Find a restaurant in your area
ordertogo-pp-cli restaurants list --location-code sto --json --select id,name,slug,is_open
List all restaurants in the Seattle (sto) location. Replace sto with your metro code (det, sea, etc) - reads from synced order history when available.
Show recent order history
ordertogo-pp-cli orders list --json
Hit /m/api/getmicmeshorders directly for your latest orders. Combine with --select to keep payloads tight.
Auth Setup
OrderToGo authenticates via Firebase phone-OTP on the web. The CLI does not implement phone OTP — instead, auth login --chrome imports your existing OrderToGo session cookies from your local Chrome profile (default user-data-dir, default profile). After import, every command travels with the cookie; refresh by re-running auth login --chrome if your session expires.
Run ordertogo-pp-cli doctor to verify setup.
Agent Mode
Add --agent to any command. Expands to: --json --compact --no-input --no-color --yes.
Pipeable — JSON on stdout, errors on stderr
Filterable —
--selectkeeps a subset of fields. Dotted paths descend into nested structures; arrays traverse element-wise. Critical for keeping context small on verbose APIs:ordertogo-pp-cli coupons list --agent --select id,name,statusPreviewable —
--dry-runshows the request without sendingOffline-friendly — sync/search commands can use the local SQLite store when available
Non-interactive — never prompts, every input is a flag
Explicit retries — use
--idempotentonly when an already-existing create should count as success
Response envelope
Commands that read from the local store or the API wrap output in a provenance envelope:
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}
Parse .results for data and .meta.source to know whether it's live or local. A human-readable N results (live) summary is printed to stderr only when stdout is a terminal — piped/agent consumers get pure JSON on stdout.
Agent Feedback
When you (or the agent) notice something off about this CLI, record it:
ordertogo-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
ordertogo-pp-cli feedback --stdin < notes.txt
ordertogo-pp-cli feedback list --json --limit 10
Entries are stored locally at ~/.ordertogo-pp-cli/feedback.jsonl. They are never POSTed unless ORDERTOGO_FEEDBACK_ENDPOINT is set AND either --send is passed or ORDERTOGO_FEEDBACK_AUTO_SEND=true. Default behavior is local-only.
Write what surprised you, not a bug report. Short, specific, one line: that is the part that compounds.
Output Delivery
Every command accepts --deliver <sink>. The output goes to the named sink in addition to (or instead of) stdout, so agents can route command results without hand-piping. Three sinks are supported:
| Sink | Effect |
|---|---|
stdout |
Default; write to stdout only |
file:<path> |
Atomically write output to <path> (tmp + rename) |
webhook:<url> |
POST the output body to the URL (application/json or application/x-ndjson when --compact) |
Unknown schemes are refused with a structured error naming the supported set. Webhook failures return non-zero and log the URL + HTTP status on stderr.
Named Profiles
A profile is a saved set of flag values, reused across invocations. Use it when a scheduled agent calls the same command every run with the same configuration - HeyGen's "Beacon" pattern.
ordertogo-pp-cli profile save briefing --json
ordertogo-pp-cli --profile briefing coupons list
ordertogo-pp-cli profile list --json
ordertogo-pp-cli profile show briefing
ordertogo-pp-cli profile delete briefing --yes
Explicit flags always win over profile values; profile values win over defaults. agent-context lists all available profiles under available_profiles so introspecting agents discover them at runtime.
Exit Codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 2 | Usage error (wrong arguments) |
| 3 | Resource not found |
| 4 | Authentication required |
| 5 | API error (upstream issue) |
| 7 | Rate limited (wait and retry) |
| 10 | Config error |
Argument Parsing
Parse $ARGUMENTS:
- Empty,
help, or--help→ showordertogo-pp-cli --helpoutput - Starts with
install→ ends withmcp→ MCP installation; otherwise → see Prerequisites above - Anything else → Direct Use (execute as CLI command with
--agent)
MCP Server Installation
Install the MCP binary from this CLI's published public-library entry or pre-built release, then register it:
claude mcp add ordertogo-pp-mcp -- ordertogo-pp-mcp
Verify: claude mcp list
Direct Use
- Check if installed:
which ordertogo-pp-cliIf not found, offer to install (see Prerequisites at the top of this skill). - Match the user query to the best command from the Unique Capabilities and Command Reference above.
- Execute with the
--agentflag:ordertogo-pp-cli <command> [subcommand] [args] --agent - If ambiguous, drill into subcommand help:
ordertogo-pp-cli <command> --help.