Restaurant Reservations
Restaurant Reservations
The agent can search availability, book, cancel, list upcoming reservations, and “snipe” releases (auto-book when a slot opens) across four reservation providers. Each provider is an independent module behind a shared interface, so swapping or adding providers doesn’t change the agent’s mental model.
Providers
| Provider | Search | Availability | Book | Snipe | Cancel | List |
|---|---|---|---|---|---|---|
| Resy | yes | yes | API | yes | yes | yes |
| OpenTable | yes | yes | hand-off | — | — | — |
| Tock | yes | yes | API | yes | yes | yes |
| SevenRooms | yes | yes | API | yes | yes | yes |
OpenTable does not expose a booking API to third parties, so the agent generates a pre-filled deep link and hands off to the user’s browser to confirm. The CLI never holds OpenTable credentials.
Setup
Each provider is configured independently:
restaurant setup resy # interactive: signs in, stores tokensrestaurant setup tockrestaurant setup sevenroomsOpenTable needs no setup — search and hand-off work out of the box.
Tokens for API-backed providers are stored in the agent’s secrets store, not in the repo.
Safety Invariants
- Destructive commands always confirm.
book,cancel,jobs cancel, andsnipeprompt fory/Nunless invoked with--yes. - OpenTable can never auto-confirm. The provider doesn’t support API booking, so the agent always hands off to the user’s browser.
- Per-agent allowlist. Restricted agents (group-chat, family DM) do not have the
restaurantbinary on their exec allowlist by default — book requests must come from the owner’s session.
Snipe Jobs
A snipe schedules a future booking attempt at the exact moment slots are released (e.g., 10am sharp when a Resy calendar opens):
restaurant snipe --provider resy --venue <id> --party 4 \ --date 2026-06-15 --time "19:00" --release "2026-05-15T17:00:00Z"The job runs even if the host is asleep — the daemon wakes for the release time, attempts the booking, and notifies on success or failure. Inspect or cancel pending jobs with restaurant jobs list / restaurant jobs cancel.
Agent Surface
The agent reaches the same capabilities through the restaurant-cli plugin’s tool surface, with the same confirmation gates. Day-to-day requests look like:
- “Book Canlis for two on Friday at 7”
- “Snipe a 4-top at Sushi Kashiba next Saturday — release is Wednesday at 9am”
- “What’s on my reservation list?”