openclaw/skills/grocery-reorder/SKILL.md
Reorder groceries from Star Market by replaying the most recent order. Adds items to cart but does NOT checkout. Use when asked to reorder groceries, restock the kitchen, or place a Star Market order.
npx skillsauth add Dbochman/dotfiles grocery-reorderInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Automates grocery reordering from Star Market (Albertsons family) using a managed headless Pinchtab instance plus the CSMS API. Logs in as Julia, finds the most recent order, clicks Reorder to add all items to the cart, then verifies. Does NOT checkout.
# Reorder most recent order (default)
python3 ~/.openclaw/workspace/scripts/grocery-reorder.py
# Reorder a specific order
python3 ~/.openclaw/workspace/scripts/grocery-reorder.py --order-id 160816581
# Dry run (login + list orders, no reorder)
python3 ~/.openclaw/workspace/scripts/grocery-reorder.py --dry-run
Requires all Star Market env vars loaded from ~/.openclaw/.secrets-cache:
| Variable | Source | Description |
|----------|--------|-------------|
| STARMARKET_PASSWORD | 1Password | Account password |
| STARMARKET_USERNAME | 1Password | Login email |
| STARMARKET_GMAIL | secrets-cache | Gmail for MFA code retrieval |
| STARMARKET_USER_HASH | secrets-cache | Account-specific API hash |
| STARMARKET_DEVICE_TOKEN | secrets-cache | Remembered device token (skips MFA) |
set -a && source ~/.openclaw/.secrets-cache && set +a
PATH=/opt/homebrew/bin:/opt/homebrew/opt/node@22/bin:/usr/bin:/bin:$PATH
python3 ~/.openclaw/workspace/scripts/grocery-reorder.py
{"status": "success", "order_id": "160816581", "cart": {"items": 9, "total": "34.00"}}
{"status": "dry-run", "order_id": "160816581", "orders": [...]}
grocery profile as a managed headless Pinchtab instance, opens an isolated Star Market tab, and cleans up only its own resources./abs/pub/cnc/csmsservice/api/csms/authn) with device tokengws, verifies via APISWY.OKTA.autoSignInWithSessionToken(sessionToken)/order-account/orders, extracts order IDs from a[href*="/order-account/orders/"] links/erums/cart, confirms items were added and reads cart total.click() doesn't work on Angular buttons. Must dispatch full event sequence: pointerdown, mousedown, pointerup, mouseup, click (both Pointer and Mouse) with real clientX/clientY from getBoundingClientRect()Content-Type: application/vnd.safeway.v2+json, ocp-apim-subscription-key, x-swy-banner: starmarket, x-aci-user-hash/erums/cart (not /shop/cart)No recurring grocery reorder job is currently installed. Run it on demand; any future scheduled job must retain the no-checkout rule and report results so Julia can review the cart and complete pickup scheduling.
STARMARKET_* env vars (see Environment section above)gws (requires auth for the account in STARMARKET_GMAIL)~/.openclaw/bin/pinchtab-headless-instance; the script starts and scopes the browser instance itselftools
Use exact configured Reolink cameras through the local Home Hub for availability and power status, fresh stills, visual commentary, protected Dylan/Julia/household sharing, and reversible spotlight control. Supports trusted owner tasks and explicitly scoped proactive automations; not for Nest or Ring cameras, arbitrary recipients, recordings, account changes, or raw camera APIs.
data-ai
Privately manage Dylan and Julia's household plant inventory and care history by physical location, bed, and exact Flower Cam view. Use for confirmed plant onboarding from camera conversations, camera- or bed-filtered inventory, record corrections, individual or whole-bed care, and private filtered exports. Pair with reolink-camera when an owner asks about plants visible in Flower Cam images.
testing
Inspect and control the physically secured Reachy Mini at Crosstown through ClawBody. Use for requests to check Reachy, look around, express an emotion, play any official emotion or dance preset, speak proactively, mute or unmute its microphone, stop movement, or describe what its camera sees.
tools
Handle Reachy/iMessage handoffs, selective durable memory, forgetting, and diagnostics; automatic context comes from the gateway plugin.