Token导航 LogoToken导航

Agent Skill · 研究检索

resy-hunter(雷西猎人)

resy-hunter 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

resy-hunter 是研究检索类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为操作浏览器;许可证为 MIT-0,第三方扫描有提醒项,按安装量在研究检索类的 73,675 个 Skill 里排第 12,472。

总安装 10,233周安装 418GitHub Stars 公开资料未说明下载 3,311核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
2.1.0

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:resy-hunter(雷西猎人)
来源仓库:https://github.com/shahedkhan30/resy-hunter
安装命令:
openclaw skills install resy-hunter
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install resy-hunter

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

监控 Resy、OpenTable 和 Tock 上难以预订的餐厅。检查空房情况、管理关注列表并在牌桌开放时获取 Telegram 提醒。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install resy-hunter;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要操作浏览器,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

resy-hunter 怎么安装?

在终端执行 openclaw skills install resy-hunter。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

resy-hunter 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

resy-hunter 需要什么权限?

权限级别是操作浏览器。该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

resy-hunter 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

resy-hunter 用的人多吗?

公开数据是累计安装 10,233 次,近一周安装 418 次,下载 3,311 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

resy-hunter 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。

先想清楚的地方

  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
resy-hunter

雷西猎人 · 本页

10,233—操作浏览器MIT-0有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
resy-hunter
description
Monitor hard-to-get restaurant reservations on Resy, OpenTable, and Tock. Check availability, manage a watchlist, and get Telegram alerts when tables open up.
version
2.1.0
metadata
openclaw
requires
env
bins
primaryEnv
RESY_API_KEY
emoji
🍽️

Resy Hunter

Monitor restaurant reservations across Resy, OpenTable, and Tock. Detect open tables and alert the user via Telegram.

When to Use

  • User asks to check if a restaurant has availability
  • User wants to find open tables at a specific restaurant on a date
  • User wants to monitor a restaurant for cancellations or new openings
  • User wants to manage their restaurant watchlist (add, remove, list)
  • User asks to set up background monitoring or alerts

Platforms Supported

PlatformScriptIdentifierAuth RequiredNotes
Resyresy-check.shvenue_id (integer)Yes — RESY_API_KEY + RESY_EMAIL + RESY_PASSWORDAuto-login via API, token cached 12h
OpenTableopentable-check.jsrestaurant_id (integer)Yes — manual login via opentable-login.jsOne-time visible browser login, session persisted
Tocktock-check.jsslug (URL slug)NoPlaywright bypasses Cloudflare

Parsing Natural Language Requests

Users speak casually. Extract these fields from every request:

FieldHow to parseDefault
RestaurantName mentioned, or "my list" / "my watchlist" → sweep all watchlist entries—
Party size"for 2", "party of 4", "2 people", "two"Ask if missing
Date(s)"March 9" → 2026-03-09. "this Saturday" → resolve to YYYY-MM-DD. "next 30 days" → generate array of dates. "this weekend" → upcoming Sat + Sun. "any Friday in April" → all Fridays in April.Ask if missing
Time window"6-9pm" → earliest: "18:00", latest: "21:00". "7:30p" → earliest: "19:00", latest: "20:00" (±30min). "dinner" / "prime time" → earliest: "18:00", latest: "21:00". "lunch" → earliest: "11:30", latest: "14:00". "tonight" → earliest: "18:00", latest: "22:00"All times
Fallback"if nothing, check my list" → on zero results, sweep watchlist with same date/party/time constraintsNone
Action"book me" / "find me a res" / "get me a table" → find availability and present booking links (skill is read-only, never books). "monitor" / "alert me" / "watch for" → set up cron. "add to my list" → watchlist add.Check availability

"Book" always means "find availability." This skill never books. Always present results with a direct booking link so the user can book themselves.

Example Requests → Execution Plans


"Book me a res at Tatiana by Kwame sometime in the next 30 days between 6-9pm for 2 people"

Parsed:

  • Restaurant: Tatiana by Kwame → run resy-search-venue.sh "Tatiana by Kwame" to get venue_id
  • Dates: next 30 days → generate ["2026-03-06", "2026-03-07", ..., "2026-04-04"]
  • Time: 6-9pm → earliest: "18:00", latest: "21:00"
  • Party size: 2

Execute:

  1. bash scripts/resy-search-venue.sh "Tatiana by Kwame" → get venue_id
  2. Loop through each date: bash scripts/resy-check.sh <venue_id> <date> 2
  3. Filter returned slots to only those between 18:00-21:00
  4. Present all dates that have matching slots, with booking links
  5. If zero results across all 30 days, offer to add to watchlist for monitoring

"Find me a res from my list of restaurants for 3 people this Sat between 6-7:30p, alert me with which ones are available and I will pick one"

Parsed:

  • Restaurant: "from my list" → sweep entire watchlist
  • Date: "this Sat" → resolve to upcoming Saturday YYYY-MM-DD
  • Time: 6-7:30p → earliest: "18:00", latest: "19:30"
  • Party size: 3 (override each entry's party_size for this check)

Execute:

  1. bash scripts/watchlist.sh list → get all entries
  2. For each entry, run the platform check script with the resolved Saturday date and party_size=3
  3. Filter slots to 18:00-19:30 window
  4. Present results grouped by restaurant, with booking links
  5. Let the user pick — do not choose for them

"Book me at Carbone for 2 on March 9 5-9pm, if no availability find something else from my list"

Parsed:

  • Restaurant: Carbone → search venue_id
  • Date: March 9 → 2026-03-09
  • Time: 5-9pm → earliest: "17:00", latest: "21:00"
  • Party size: 2
  • Fallback: sweep watchlist

Execute:

  1. bash scripts/resy-search-venue.sh "Carbone" → get venue_id
  2. bash scripts/resy-check.sh <venue_id> 2026-03-09 2
  3. Filter slots to 17:00-21:00
  4. If slots found → present with booking link, done
  5. If no slots → bash scripts/watchlist.sh list, then check each entry for 2026-03-09 party_size=2 with 17:00-21:00 filter
  6. Present any alternatives found from the watchlist

"Any openings at Don Angie tonight for 4?"

Parsed:

  • Restaurant: Don Angie → search venue_id
  • Date: tonight → today's date
  • Time: (tonight implies dinner) → earliest: "18:00", latest: "22:00"
  • Party size: 4

Execute:

  1. bash scripts/resy-search-venue.sh "Don Angie" → get venue_id
  2. bash scripts/resy-check.sh <venue_id> <today> 4
  3. Filter to 18:00-22:00, present results

"Set up alerts for Atomix, party of 2, any Friday or Saturday in April between 7-9"

Parsed:

  • Restaurant: Atomix → search venue_id
  • Dates: every Fri + Sat in April 2026 → ["2026-04-03", "2026-04-04", "2026-04-10", "2026-04-11", ...]
  • Time: 7-9 → earliest: "19:00", latest: "21:00"
  • Party size: 2
  • Action: set up monitoring

Execute:

  1. bash scripts/resy-search-venue.sh "Atomix" → get venue_id
  2. bash scripts/watchlist.sh add '{"name":"Atomix","platform":"resy","venue_id":<id>,"party_size":2,"dates":["2026-04-03","2026-04-04",...],"preferred_times":{"earliest":"19:00","latest":"21:00"}}'
  3. Set up cron if not already running:
openclaw cron add --name "resy-hunter-sweep" --every "15m" --session isolated --message "Run resy-hunter monitor..." --announce
  1. Confirm to user: "Monitoring Atomix for Friday/Saturday openings in April, 7-9 PM, party of 2. I'll alert you on Telegram when something opens."

"What's available this weekend from my list?"

Parsed:

  • Restaurant: "from my list" → sweep watchlist
  • Date: "this weekend" → upcoming Saturday + Sunday
  • Time: not specified → all times
  • Party size: not specified → use each entry's configured party_size

Execute:

  1. bash scripts/watchlist.sh list → get all entries
  2. For each entry, check both Saturday and Sunday dates using the entry's own party_size
  3. Present all results grouped by restaurant and date

"Check everything on my list for tomorrow night"

Parsed:

  • Restaurant: "everything on my list" → sweep watchlist
  • Date: tomorrow → resolve to YYYY-MM-DD
  • Time: "night" → earliest: "18:00", latest: "22:00"
  • Party size: use each entry's configured party_size

Execute: same as watchlist sweep pattern above


"Monitor Torrisi for cancellations, party of 4, March 15, prime time"

Parsed:

  • Restaurant: Torrisi → search venue_id
  • Date: March 15 → 2026-03-15
  • Time: "prime time" → earliest: "18:00", latest: "21:00"
  • Party size: 4
  • Action: "monitor for cancellations" → add to watchlist + set up cron

Execute:

  1. Search venue_id, add to watchlist, set up cron
  2. Confirm monitoring is active

"Add Lilia to my watchlist, 2 people, next three Saturdays, dinner time"

Parsed:

  • Restaurant: Lilia → search venue_id
  • Dates: next 3 Saturdays → resolve to specific YYYY-MM-DD values
  • Time: "dinner time" → earliest: "18:00", latest: "21:00"
  • Party size: 2
  • Action: watchlist add only (no cron unless asked)

Execute:

  1. bash scripts/resy-search-venue.sh "Lilia" → get venue_id
  2. bash scripts/watchlist.sh add '{"name":"Lilia","platform":"resy","venue_id":<id>,"party_size":2,"dates":["<sat1>","<sat2>","<sat3>"],"preferred_times":{"earliest":"18:00","latest":"21:00"}}'

"Is there anything at 4 Charles or Via Carota for 2 this Thursday?"

Parsed:

  • Restaurants: two separate — "4 Charles" and "Via Carota"
  • Date: this Thursday → resolve
  • Party size: 2

Execute:

  1. Search venue_ids for both restaurants
  2. Check both for the resolved Thursday date with party_size=2
  3. Present results side by side

"Cancel monitoring for Carbone"

Parsed:

  • Action: remove from watchlist

Execute:

  1. bash scripts/watchlist.sh list → find Carbone's id
  2. bash scripts/watchlist.sh remove <id>
  3. If watchlist is now empty, suggest removing the cron job too

How to Run Checks

  1. Determine the platform (ask the user if unclear)
  2. Get the restaurant identifier:

- Resy: If the user doesn't know the venue_id, run scripts/resy-search-venue.sh "<name>" [lat] [long] to find it - OpenTable: The restaurant_id is in the OpenTable URL (e.g., opentable.com/r/restaurant-name-city?rid=123456 → rid is 123456) - Tock: The slug is in the URL (e.g., exploretock.com/alinea → slug is alinea)

  1. Run the appropriate check script:

- Resy: bash ~/.openclaw/skills/resy-hunter/scripts/resy-check.sh <venue_id> <date> <party_size> - OpenTable: node ~/.openclaw/skills/resy-hunter/scripts/opentable-check.js <restaurant_id> <date> <party_size> - Tock: node ~/.openclaw/skills/resy-hunter/scripts/tock-check.js <slug> <date> <party_size>

  1. Parse the JSON output and present available slots in a clean table format:
   Restaurant | Date | Time | Type | Platform
  1. If no slots found, offer to add to the watchlist for background monitoring

Watchlist Management

The watchlist lives at ~/.openclaw/data/resy-hunter/watchlist.json (separate from the skill directory so reinstalls don't wipe user data).

  • List: bash ~/.openclaw/skills/resy-hunter/scripts/watchlist.sh list
  • Add: bash ~/.openclaw/skills/resy-hunter/scripts/watchlist.sh add '<json>'

- JSON must include: name, platform (resy/opentable/tock), platform identifier (venue_id/restaurant_id/slug), party_size, dates array - Optional: preferred_times object with earliest and latest in HH:MM format

  • Remove: bash ~/.openclaw/skills/resy-hunter/scripts/watchlist.sh remove <id>
  • Set Priority: bash ~/.openclaw/skills/resy-hunter/scripts/watchlist.sh set-priority <id> <high|low>

Priority Levels

  • high — Telegram alerts fire immediately when new slots appear
  • low — Slots are tracked (dedup works) but Telegram alerts only when the user explicitly asks for a sweep

Default priority is low when adding entries. Set it to high for restaurants the user actively wants alerts on. The JSON report from monitor.sh always includes all priorities.

Default Time Window

All entries default to a 6:00 PM – 10:00 PM time window. Slots outside this window are filtered out. Override per restaurant via preferred_times when adding:

Example add:

bash ~/.openclaw/skills/resy-hunter/scripts/watchlist.sh add '{
  "name": "Carbone",
  "platform": "resy",
  "venue_id": 5286,
  "party_size": 2,
  "dates": ["2026-03-15", "2026-03-22"],
  "preferred_times": {"earliest": "18:00", "latest": "21:30"},
  "priority": "high"
}'

Background Monitoring

The monitor runs checks in parallel and staggers platforms by frequency:

  • Resy (curl): checked every sweep, up to 8 concurrent
  • Tock (Playwright): checked once per hour, up to 2 concurrent
  • OpenTable (Playwright): checked once per hour, up to 2 concurrent

To set up cron monitoring, run:

openclaw cron add \
  --name "resy-hunter-sweep" \
  --every "15m" \
  --session isolated \
  --message "Run resy-hunter monitor. Execute bash ~/.openclaw/skills/resy-hunter/scripts/monitor.sh. If new availability is found in the output JSON (new_availability array is non-empty), format a clear alert listing each restaurant name, platform, date, available time slots, and party size. Include a direct booking link. If nothing new, respond only: No new availability." \
  --announce

The 15-minute cron means Resy is checked every 15 minutes while Tock and OpenTable are automatically checked once per hour (the monitor tracks timestamps and skips platforms checked less than 60 minutes ago).

For high-frequency sniping on a specific date (e.g., when reservations drop):

openclaw cron add \
  --name "resy-hunter-snipe" \
  --every "2m" \
  --session isolated \
  --message "Snipe mode: run bash ~/.openclaw/skills/resy-hunter/scripts/resy-check.sh <venue_id> <date> <party_size>. Report immediately if any slot appears." \
  --announce

To stop monitoring: openclaw cron remove --name "resy-hunter-sweep"

Manual Monitor Sweep

To run a one-time sweep of the entire watchlist:

bash ~/.openclaw/skills/resy-hunter/scripts/monitor.sh

To check only a specific platform (bypasses the hourly interval timer):

bash ~/.openclaw/skills/resy-hunter/scripts/monitor.sh --platform resy
bash ~/.openclaw/skills/resy-hunter/scripts/monitor.sh --platform tock
bash ~/.openclaw/skills/resy-hunter/scripts/monitor.sh --platform opentable

Multiple platforms can be combined:

bash ~/.openclaw/skills/resy-hunter/scripts/monitor.sh --platform resy --platform tock

Interpret the output JSON:

  • new_availability array: newly detected slots since last sweep
  • total_checked: number of restaurant+date combinations checked
  • total_with_availability: how many had open slots

Sending Notifications Manually

bash ~/.openclaw/skills/resy-hunter/scripts/notify.sh "Your message here"

This sends a Telegram message. The bot token is pulled from OpenClaw's Telegram channel config (channels.telegram.botToken). Falls back to TELEGRAM_BOT_TOKEN env var if config not found.

Booking Links

When reporting availability, always include a direct booking link:

  • Resy: https://resy.com/cities/<city>-<region>/venues/<slug>?date=<YYYY-MM-DD>&seats=<party_size>
  • OpenTable: https://www.opentable.com/booking/widget?rid=<restaurant_id>&datetime=<ISO>&covers=<party_size>
  • Tock: https://www.exploretock.com/<slug>/search?date=<YYYY-MM-DD>&size=<party_size>

Error Handling

  • If a Resy request returns HTTP 419, the script automatically clears the cached token and re-authenticates. No manual action needed.
  • If Resy login fails (HTTP 401/403), check RESY_EMAIL and RESY_PASSWORD.
  • If OpenTable returns session_expired: true, run node ~/.openclaw/skills/resy-hunter/scripts/opentable-login.js to re-authenticate manually. The monitor will send a Telegram alert when this happens.
  • If Tock returns blocked: true in output, Cloudflare blocked even the Playwright browser. Return the URL for the user to check manually. This is rare — retrying usually works.

Credential Setup

Resy (auto-login via API):

  1. RESY_API_KEY — one-time extraction from browser DevTools (static, never expires):

- Log into resy.com → DevTools → Network tab - Find any request to api.resy.com - Authorization header → value after ResyAPI api_key= is the API key

  1. RESY_EMAIL — your Resy account email
  2. RESY_PASSWORD — your Resy account password
  3. Auth tokens are fetched and cached automatically (12-hour TTL). No manual token extraction needed.

OpenTable (manual login via Playwright):

  1. Run once: node ~/.openclaw/skills/resy-hunter/scripts/opentable-login.js
  2. A visible browser opens to OpenTable's login page
  3. Log in with your email + OTP code manually
  4. The script detects login and saves session cookies to ~/.openclaw/data/resy-hunter/opentable-session.json
  5. Future runs use the saved session headlessly. If it expires, the monitor sends a Telegram alert telling you to re-run opentable-login.js.

Tock (no credentials): No credentials needed. Playwright uses a real browser that passes Cloudflare Turnstile challenges automatically.

First-Time Setup

After installing the skill, run once to install dependencies:

cd ~/.openclaw/skills/resy-hunter
npm install
npx playwright install chromium

Important

  • This skill is read-only. Never attempt to book a reservation. The user books manually.
  • Respect rate limits. Do not run checks more frequently than every 2 minutes.
  • Dates in the past should be skipped automatically by the monitor script.

平台分布

OpenClaw

86.5%
按下载量换算2,864

安全审计

VirusTotal

通过

ClawScan

可疑

Static analysis

未展示

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills