Agent skill

Restaurant Reservation

by vellum-ai in vellum-ai/vellum-assistant

Book reservations on OpenTable or Resy with explicit confirmations

MITAuto-check passed

Install Restaurant Reservation

skills CLI
$ npx skills add vellum-ai/vellum-assistant --skill restaurant-reservation -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install vellum-ai/vellum-assistant restaurant-reservation --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/vellum-ai/vellum-assistant.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/restaurant-reservation .claude/skills/restaurant-reservation && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
restaurant-reservation
GitHub stars
1.4k
Token cost
~2.9k tokens
SKILL.md length
1,505 words
Files
1
Skills in repo
108
Repo updated
First seen
Licence
MIT

At a glance

Book reservations on OpenTable or Resy with explicit confirmations

  • Works in 8 steps: Collect Reservation Details → Choose Provider → Navigate and Sign In FIRST → …
  • SKILL.md covers Anti-Loop Guardrails, Booking Flow - Follow These…, Critical Rules and Error Handling
  • Reaches opentable.com and resy.com

What it does

Restaurant Reservation is an agent skill from vellum-ai/vellum-assistant. Book reservations on OpenTable or Resy with explicit confirmations

Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: Designed for Vellum personal assistants

The repository describes itself as: An AI Assistant that’s easy to setup, does your work 24/7, knows your preferences and gets better over time. The licence is MIT.

Example prompts

  • “/restaurant-reservation”

Requirements

  • Compatibility (from SKILL.md): Designed for Vellum personal assistants

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Collect Reservation Details
  2. Choose Provider
  3. Navigate and Sign In FIRST
  4. Search for Availability
  5. Present Available Slots
  6. First Confirmation - Reservation Details + Policies
  7. Final Confirmation - Pre-Submit Approval
  8. Submit and Confirm

What it can do on your machine

Read from SKILL.md and the folder at commit 33cc983. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • opentable.com
    • resy.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Designed for Vellum personal assistants

    From compatibility in the SKILL.md frontmatter.

Context cost

Restaurant Reservation loads about 2.9k tokens when it runs. Until then it costs about 22 tokens; SKILL.md has 1,505 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~22
When it runs · the whole SKILL.md, loaded when a task matches
~2.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from vellum-ai/vellum-assistant at commit 33cc983, republished under its MIT licence (© vellum-ai). 1,505 words, ~2,891 tokens.

Download SKILL.mdSave it as .claude/skills/restaurant-reservation/SKILL.md (or your agent's skills folder).
name
restaurant-reservation
description
Book reservations on OpenTable or Resy with explicit confirmations
compatibility
Designed for Vellum personal assistants
metadata.emoji
🍽️

Book restaurant reservations on OpenTable or Resy using browser automation. All browser operations are executed through the assistant browser CLI, invoked via host_bash.

Anti-Loop Guardrails

Each step has a retry budget of 3 attempts. An attempt is one try at the step's primary action (e.g., clicking a button, filling a form, navigating a page). If a step fails after 3 attempts:

  1. Stop trying. Do not continue retrying the same approach.
  2. Fall back to manual. Tell the user what you were trying to do and ask them to complete that step manually in the browser. Give them the direct URL and clear instructions.
  3. Resume automation at the next step once the user confirms the manual step is done.

If two or more steps require manual fallback, inform the user the automated flow is unreliable and offer to provide the remaining steps as text instructions with links.

Booking Flow - Follow These Steps IN ORDER

Step 1: Collect Reservation Details

Before doing anything, gather the following from the user:

  • Party size (required)
  • Date (required)
  • Time or time window (required)
  • Location / neighborhood / city (required)
  • Restaurant name (optional - if not provided, will search)
  • Any preferences (outdoor seating, dietary needs, etc.)

Do not proceed until all required details have been provided.

Step 2: Choose Provider
  • If the user hasn't specified a provider, ask them to choose between OpenTable and Resy.
  • Do NOT attempt to browse provider sites to check restaurant availability before signing in - authentication is required first. If the user names a specific restaurant but isn't sure which provider has it, pick the more common one (OpenTable) and fall back to the other if it's not found after searching in Step 4.
Step 3: Navigate and Sign In FIRST

This is the most important step. Reservation sites require authentication before booking.

  1. Navigate directly to the sign-in page.

    • For OpenTable, navigate to: https://www.opentable.com/sign-in
    • For Resy, navigate to: https://resy.com/login
    bash
    assistant browser --session reservation navigate --url "https://www.opentable.com/sign-in"
  2. Take a snapshot. If you see a sign-in form (email input), continue to sub-step 5 below (fill the email).

    bash
    assistant browser --session reservation --json snapshot
  3. If the direct URL fails (404, redirect, or any error): fall back to the homepage approach - navigate to the service's homepage and click the "Sign In" / "Log In" button.

  4. If already signed in (you see an account menu, the user's name, or other logged-in indicators), skip to the next step.

  5. Fill the email using assistant browser fill-credential (e.g. service: "opentable" or "resy", field: "email"). Target the element by its element_id - NEVER type into the browser URL bar.

    bash
    assistant browser --session reservation fill-credential --service opentable --field email --element-id <id>
  6. Click "Continue" / "Sign In" or equivalent submit button.

  7. The site will send a verification code via SMS/email. Use ui_show with surface_type: "form" and await_action: true to ask the user for the code. Wait for the user to submit the form before proceeding - do NOT use any previously collected code. Verification codes expire quickly; only the code from the most recent form submission is valid. Type the freshly submitted code into the verification input on the page.

  8. If the code is rejected, prompt the user again with a fresh ui_show form - never retry an old code.

  9. For password-based login: If the site presents a password field instead of a verification code, fill the password using assistant browser fill-credential (e.g. service: "opentable" or "resy", field: "password").

    bash
    assistant browser --session reservation fill-credential --service opentable --field password --element-id <id>
EVERY snapshot: Dismiss modals FIRST

Before every other action, scan the snapshot for non-functional modal overlays and dismiss them. Modals block all interactions - clicking behind a modal silently fails.

  • DO NOT dismiss sign-in/login modals - if you see an email input or sign-in form inside a modal, that IS the sign-in flow. Fill it in, don't close it.
  • Dismiss only blocker modals: cookie banners, regulatory notices, promotional popups.
  • Look for: "Got It", "Accept", "Close", "OK", "Dismiss" buttons on non-login modals.
  • Take a fresh snapshot after dismissing to confirm the modal is gone.
Step 4: Search for Availability
  1. For OpenTable, navigate directly to: https://www.opentable.com/s?covers=<party_size>&dateTime=<YYYY-MM-DDTHH:MM>&term=<restaurant_or_location> Construct the URL from the details collected in Step 1. URL-encode the term parameter.

  2. For Resy, navigate to https://resy.com/cities/<city> and use the search/filter UI to find available reservations matching the collected details.

  3. If a specific restaurant was named, navigate directly to its page if possible (e.g. https://www.opentable.com/r/<restaurant-slug> or https://resy.com/cities/<city>/venues/<restaurant-slug>). After landing on the restaurant page, reapply the user's date, time, and party size filters - direct restaurant URLs often show default availability that may not match the user's request. Use the on-page date picker, time selector, and party size controls to set the correct values before reviewing slots.

  4. Take a snapshot and review the results:

    bash
    assistant browser --session reservation --json snapshot
  5. If the named restaurant is not found on this provider, tell the user and offer to try the other provider (OpenTable <-> Resy). If they agree, go back to Step 3 to sign in to the other provider.

Step 5: Present Available Slots
  1. Extract available time slots from the page.

  2. Present them to the user in a clear, organized format.

  3. If NO slots match the requested time:

    • Offer nearby times on the same date.
    • Offer the same time on adjacent dates.
    • Suggest trying the other provider (OpenTable <-> Resy).
  4. Let the user choose a slot.

  5. Click the chosen slot on the page to select it. Take a fresh snapshot to confirm the slot is selected and the booking/confirmation form is now visible. Do not proceed to confirmation steps until the slot is actively selected in the site UI.

    bash
    assistant browser --session reservation click --element-id <slot-id>
    assistant browser --session reservation --json snapshot
Show full SKILL.md (630 more words)Show less
Step 6: First Confirmation - Reservation Details + Policies

Before proceeding to book, show the user a summary:

  • Restaurant name
  • Date and time
  • Party size
  • Any special notes

CRITICAL: Surface cancellation policies and fees prominently. Look for and extract:

  • Cancellation deadlines (e.g., "Cancel by 4 hours before")
  • No-show fees (e.g., "$25 per person no-show fee")
  • Deposit requirements
  • Credit card hold amounts

If the restaurant charges a cancellation or no-show fee, call it out explicitly in a separate line - do not bury it in other details. Example: "This restaurant charges a $25/person no-show fee."

Ask the user to confirm they want to proceed.

Step 7: Final Confirmation - Pre-Submit Approval

Immediately before clicking the final "Complete Reservation" / "Confirm" button, ask one more time:

  • "Ready to submit this reservation? This action cannot be undone."

Only proceed after explicit user approval.

Step 8: Submit and Confirm
  1. Click the final reservation submit button.

  2. Take a snapshot and screenshot to confirm success:

    bash
    assistant browser --session reservation --json snapshot
    assistant browser --session reservation screenshot --output /tmp/reservation-confirm.jpg
  3. Extract and present to the user:

    • Confirmation number / reference ID (if visible)
    • Confirmation page link
    • Final reservation details as shown on the confirmation page
  4. If the submission fails, take a fresh snapshot and report the error:

    bash
    assistant browser --session reservation --json snapshot

Critical Rules

  • ALWAYS sign in first. Do not attempt to search or browse availability before signing in.
  • NEVER tell the user to sign in themselves. You handle ALL authentication using assistant browser fill-credential and ui_show for verification codes.
  • NEVER give up. If an interaction fails, take a fresh assistant browser --session reservation --json snapshot and retry with updated element IDs - within the 3-attempt budget per step.
  • Target elements by element_id from assistant browser snapshot. Never fabricate CSS selectors.
  • Use assistant browser select-option for native <select> dropdowns (e.g., party size selectors). For non-native dropdowns, ARIA listboxes, and date/time pickers, use ArrowDown/ArrowUp + Enter via assistant browser press-key.
  • Use assistant browser scroll to reveal off-screen time slots or search results before interacting with them.
  • Handle CAPTCHAs: If a Cloudflare/CAPTCHA challenge appears, wait a few seconds - it often auto-resolves. If it persists, the system will hand off to the user automatically.
  • Fresh snapshots after every action that changes the page (assistant browser --session reservation --json snapshot). Element IDs go stale after navigation or DOM updates.
  • Conserve context. Browser flows are token-heavy. Avoid unnecessary snapshots - only take one when the page changes. Combine multiple actions efficiently. Do not narrate every step in detail.
  • ALWAYS surface cancellation and no-show fees. Before confirming any reservation, check for cancellation policies, no-show fees, deposits, and credit card holds. If the restaurant charges any fee, call it out explicitly - do not bury it in other details. The user must acknowledge fees before you proceed.
  • Two confirmations required. Never submit a reservation without both the policy confirmation (Step 6) and the final pre-submit confirmation (Step 7).

Error Handling

  • Search returns no results: Try alternate search terms, broaden the location, or check spelling. If still nothing, suggest the other provider (OpenTable <-> Resy).
  • Expired OTP: Never retry an old verification code. Always prompt the user for a fresh code via ui_show with await_action: true.
  • Login fails repeatedly: After 3 failed attempts, inform the user and ask if they want to try the other provider or handle login manually.
  • Reservation submit fails: Take a fresh snapshot (assistant browser --session reservation --json snapshot), read the error message, and report it to the user. Common causes: credit card required, party size changed, slot no longer available. Suggest rebooking if the slot was taken.
  • Page unresponsive or stuck: Wait up to 10 seconds, then try refreshing (assistant browser --session reservation navigate --url <current-url>). If still stuck, report to the user.
  • Provider-specific errors: If one provider consistently errors, suggest switching to the other.

© vellum-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/restaurant-reservation of vellum-ai/vellum-assistant.

Open the folder on GitHubat commit 33cc983

Compare with similar skills

Restaurant Reservation next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Restaurant Reservation compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Restaurant Reservation this skillvellum-ai/vellum-assistant1.4k—~2.9kAutomated safety check: PassMIT
Restaurant Bookingasgeirtj/system_prompts_leaks69k—~2.6kAutomated safety check: PassCC0-1.0
Restaurant Bookinggooseworks-ai/goose-skills1.2k1 repos~1.7kAutomated safety check: PassMIT
BookingsBuilderIO/agent-native7.1k—~345Automated safety check: PassNone
Day Booksickn33/agentic-awesome-skills47k1 repos~7kAutomated safety check: PassMIT
Restaurant Recommendationsasgeirtj/system_prompts_leaks69k—~755Automated safety check: PassCC0-1.0

Similar skills

  • Restaurant Booking

    asgeirtj/system_prompts_leaks

    Find an available table and make, change, or cancel an authorized restaurant reservation.

    69k GitHub stars~2.6k tokensUpdated yesterday
    Auto-check passed
  • Restaurant Booking

    gooseworks-ai/goose-skills

    Book restaurant reservations via browser automation. An agent skill from gooseworks-ai/goose-skills.

    1.2k GitHub starsUsed in 1 repo~1.7k tokens
    Productivity & AutomationAuto-check passed
  • Bookings

    BuilderIO/agent-native

    Booking lifecycle — pending, confirmed, rescheduled, cancelled — plus attendees, references, no-shows, and reminders.

    7.1k GitHub stars~345 tokensUpdated yesterday
    Auto-check passed
  • Day Book

    sickn33/agentic-awesome-skills

    Daily cash, bank and digital day book: opening and closing balances per book, in/out movements, debit/credit presentation and reconciliation status.

    47k GitHub starsUsed in 1 repo~7k tokens
    Business, Finance & HRAuto-check passed
  • Restaurant Recommendations

    asgeirtj/system_prompts_leaks

    Find restaurants that fit the people, occasion, location and budget.

    69k GitHub stars~755 tokensUpdated yesterday
    Auto-check passed
  • Resy Hunter

    LeoYeAI/openclaw-master-skills

    Monitor hard-to-get restaurant reservations on Resy, OpenTable, and Tock.

    2.2k GitHub stars~4.1k tokensUpdated 2 mo ago
    Auto-check passed

More from vellum-ai/vellum-assistant

All 108 skills in this repo
  • Vellum GitHub App Setup

    vellum-ai/vellum-assistant

    Create and configure a GitHub App so the assistant can push commits, open PRs, and comment under its own bot identity.

    1.4k GitHub stars~3.1k tokensUpdated yesterday
    Auto-check passed
  • Discord App Setup

    vellum-ai/vellum-assistant

    Connect a Discord bot to the assistant via the Discord Gateway with guided application creation and intent configuration

    1.4k GitHub stars~4.2k tokensUpdated yesterday
    Auto-check passed
  • Sentry App Setup

    vellum-ai/vellum-assistant

    Create and configure a Sentry internal integration so the assistant can manage issues, alerts, and releases under its own identity

    1.4k GitHub stars~1.3k tokensUpdated yesterday
    Auto-check passed
  • Memory Corpus Ingest

    vellum-ai/vellum-assistant

    Ingest a large dataset into memory as a skimmed map. An agent skill from vellum-ai/vellum-assistant.

    1.4k GitHub stars~3k tokensUpdated yesterday
    Auto-check: notes
  • Plugin Builder

    vellum-ai/vellum-assistant

    A skill your agent uses when the user wants to build, scaffold, ship, or edit a Vellum plugin that bundles multiple surfaces (hooks, tools, skills, and more) into one installable package.

    1.4k GitHub stars~3.1k tokensUpdated yesterday
    Auto-check passed
  • Slack App Setup

    vellum-ai/vellum-assistant

    Connect a Slack app to the Vellum Assistant via Socket Mode.

    1.4k GitHub stars~2.5k tokensUpdated yesterday
    Auto-check: warnings

Questions about Restaurant Reservation

What does Restaurant Reservation do?

Book reservations on OpenTable or Resy with explicit confirmations. Restaurant Reservation is an agent skill from vellum-ai/vellum-assistant.

How do I install Restaurant Reservation in Claude Code?

Run `npx skills add vellum-ai/vellum-assistant --skill restaurant-reservation -a claude-code`. Or copy the skill folder (skills/restaurant-reservation in vellum-ai/vellum-assistant) into .claude/skills/restaurant-reservation in your project. Claude Code loads it when a task matches its description.

How do I install Restaurant Reservation in Codex?

Run `npx skills add vellum-ai/vellum-assistant --skill restaurant-reservation -a codex`. Or copy the skill folder (skills/restaurant-reservation in vellum-ai/vellum-assistant) into .agents/skills/restaurant-reservation in your project. Codex loads it when a task matches its description.

Can I use Restaurant Reservation in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add vellum-ai/vellum-assistant --skill restaurant-reservation -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/restaurant-reservation, .gemini/skills/restaurant-reservation, .github/skills/restaurant-reservation and .opencode/skills/restaurant-reservation in your project.

What does Restaurant Reservation need to run?

SKILL.md names no scripts, command-line tools or credentials: Restaurant Reservation is instructions for the agent only. Compatibility (from SKILL.md): Designed for Vellum personal assistants.

Does Restaurant Reservation access the network?

SKILL.md names 2 domains. In commands or code: opentable.com and resy.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Restaurant Reservation safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Restaurant Reservation use?

Restaurant Reservation is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Restaurant Reservation use?

About 2.9k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Restaurant Reservation?

Skills that share tags, products or a category with Restaurant Reservation: Restaurant Booking (asgeirtj/system_prompts_leaks, 69k stars), Restaurant Booking (gooseworks-ai/goose-skills, 1.2k stars), Bookings (BuilderIO/agent-native, 7.1k stars) and Day Book (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Restaurant Reservation?

vellum-ai (a GitHub organization) maintains it in vellum-ai/vellum-assistant, which has 1,408 GitHub stars. The repository holds 108 skills in this directory. The repository was last updated on October 9, 2026.

Source: vellum-ai/vellum-assistant on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.