Skill

jimmy-johns

First terminal CLI for Jimmy John's ordering — local Unwich conversion, agent-native JSON, every endpoint typed.

Verified: 2026-05-13 (printing-press-ingest-2026-05-13+enrich-capability-skill)

When to use jimmy-johns

Choose if

You're inside an agent loop that needs to actually place or compose a Jimmy John's order — group lunch carts with dietary filters, one-shot reorders, local Unwich conversion without API roundtrips — and want typed exit codes plus agent-native JSON instead of scraping the website. Alternative class is using a generic browser-automation MCP (Playwright/Stagehand) against the JJ site, which is brittler under PerimeterX and slower per call.

Avoid if

You need a restaurant-agnostic food-delivery layer (DoorDash, Uber Eats, Grubhub) — this is Jimmy John's only by scope. Also avoid if your sandbox can't keep a persistent cookie jar across runs, since PerimeterX session fingerprinting will block stateless cold-start invocations.

Risk Flags

  • MEDIUM auth PerimeterX bot detection fingerprints automation sessions; once flagged the agent gets HTTP 403 from every API call for ~1 hour. Cookie capture requires Chrome closed (or browser-use export path); exit code 4 surfaces auth failure.
  • MEDIUM rate_limit Rate-limited state surfaces as exit code 7; the README does not publish concrete thresholds, so heavy ordering workloads need backoff discipline.
  • LOW data_quality Offline menu/store data can go stale; refresh failures fall back to the existing local cache with a warning rather than erroring out.

Cost

Type: Free · Free tier: The CLI binary itself is free to install. No upstream paid API key required; the agent authenticates against Jimmy John's consumer endpoints via cookie-based session capture. PerimeterX bot protection means flagged sessions stay flagged for ~1 hour, so the practical cost is operator attention to session hygiene.

Install

Default

npx -y @mvanhorn/printing-press install jimmy-johns
# Capture a Jimmy John's session cookie (Chrome must be closed during extraction
# or use the browser-use export path) before any order endpoint will work.

Setup docs →

Estimated time to first success: ~10 min

Dependencies

Minimum runtime: Node.js 18+ (via npx) — pre-built macOS/Unix binaries available as fallback

Distribution

Repository
https://github.com/mvanhorn/printing-press-library
License
MIT