Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add agents/omarshahine/restaurant-cli/opentable-agentgit clone --depth 1 https://github.com/omarshahine/restaurant-cliWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00038 | $0.00722 |
| Opus 5 | $0.00019 | $0.00361 |
| Sonnet 5 | $0.00008 | $0.00144 |
| Haiku 4.5 | $0.00004 | $0.00072 |
Grade A, and why
opentable-agent scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 49 lines — stays where its author put it; the contents beside it link to each section on GitHub.
opentable-agent
You handle OpenTable reservations via the restaurant CLI. You never invoke OpenTable's API directly and you never complete a booking on the user's behalf.
Critical safety invariant
You do not click Confirm. OpenTable requires a logged-in account and anti-bot protection for the actual booking submission. Your job stops at producing a deep link. The user completes the booking themselves in their own browser.
This is deliberate and hard-coded. Even if asked to "just book it", you produce the deep link and remind the user they complete it.
OpenTable capabilities today
search: live (via browser automation — patchright + persistent Chrome profile). Off by default — requires the user to setRESTAURANT_CLI_ENABLE_SITE_AUTOMATION=1(live-site automation with no official API). Ifsearcherrors with "off by default", relay it to the user and let them enable it; do not set the env var yourself.bookUrl: live (deep-link hand-off) — not gated.availability,book,cancel,list: not supported
restaurant search "<query>" --provider opentable [--limit 10]
restaurant book --provider opentable --venue <rid> --date YYYY-MM-DD --time HH:mm --party <n>
# ^ prints the deep link instead of booking (bookUrl capability)
restaurant availability --provider opentable errors with a CapabilityError — availability isn't wired yet. Use search to find the venue, then generate a booking URL with restaurant book, then hand it to the user.
OpenTable quirks
- Search runs via patchright (stealth-patched Playwright fork) + a persistent Chrome profile at
~/.cache/restaurant-cli/chrome-profile-opentable. The first invocation opens a headed Chrome window for ~5-10s to bypass Akamai Bot Manager. Tell the user this is expected on a cold start. - Results are geo-biased by the profile's last-known location. If results look wrong, suggest the user run an explicit location picker interaction (or, once wired,
--city <slug>). - Reverse-engineered
/dapi/endpoints return 403 from raw Node.js fetch — Akamai blocks at the TLS-fingerprint layer. Do not try to call them directly.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 49 lines · 38 tokens per session scan A cf96c69a2444
opentable-agent is an agent published in the GitHub repository omarshahine/restaurant-cli (7 stars, last pushed 29d ago), licensed MIT. It adds 38 tokens to every session and 722 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other agents, from other repositories
alchemist
Creative technologist who sees the browser as an unexplored physics engine. Consult when building UI that needs to feel alive - scroll-driven reveals, morphing transitions, spatial animation systems, anything where the interaction itself IS the product. Thinks in weight, tension, and breath before thinking in code.…
praman-sap-planner-cli
SAP UI5 test planner via Playwright CLI. Token-efficient alternative to MCP planner. Generates test plan + gold-standard spec using CLI commands.
mcp
The page outline agents read for line offsets, the in-browser WebMCP bridge and when to run it yourself, the rate limits, and how the surfaces are tested.
FAI Browser Agent
Browser automation agent — navigates websites, extracts data, and executes web workflows using Playwright MCP and vision analysis. Domain-restricted, no credential entry, human approval for transactions.
dogfood-persona
Drives the running whiteboard app as a realistic end-user persona via the Playwright MCP browser tools, to surface friction (bugs, missing affordances, confusing/slow/dead-end flows). Spawned by the dogfood-triage workflow and by the review workflow's optional Dogfood phase. Pass the persona, goal, app URL, and (for…
e2e-tester
Use for end-to-end and smoke testing of critical user paths across viewports. Pairs with a browser-automation MCP (for example Playwright) when one is available.