pp-table-reservation-goat

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Table Reservation GOAT — Printing Press CLI

Table Reservation GOAT — Printing Press CLI

Prerequisites: Install the CLI

前提条件:安装CLI工具

This skill drives the
table-reservation-goat-pp-cli
binary. You must verify the CLI is installed before invoking any command from this skill. If it is missing, install it first:
  1. Install via the Printing Press installer:
    bash
    npx -y @mvanhorn/printing-press install table-reservation-goat --cli-only
  2. Verify:
    table-reservation-goat-pp-cli --version
  3. Ensure
    $GOPATH/bin
    (or
    $HOME/go/bin
    ) is on
    $PATH
    .
If the
npx
install fails before this CLI has a public-library category, install Node or use the category-specific Go fallback after publish.
If
--version
reports "command not found" after install, the install step did not put the binary on
$PATH
. Do not proceed with skill commands until verification succeeds.
OpenTable and Tock split the US fine-dining world between them and share zero data. This CLI unifies them:
goat
searches both at once,
watch
polls both for cancellations,
earliest
composes availability across both, and
drift
surfaces what changed at a venue since your last look. Auth is one
auth login --chrome
import — your real Chrome cookies for both sites, no partner keys.
本技能驱动
table-reservation-goat-pp-cli
二进制文件。在调用本技能的任何命令前,必须确认CLI已安装。如果未安装,请先执行以下步骤:
  1. 通过Printing Press安装器安装:
    bash
    npx -y @mvanhorn/printing-press install table-reservation-goat --cli-only
  2. 验证安装:
    table-reservation-goat-pp-cli --version
  3. 确保
    $GOPATH/bin
    (或
    $HOME/go/bin
    )已添加到
    $PATH
    环境变量中。
如果在该CLI进入公共库分类前
npx
安装失败,请安装Node.js,或在发布后使用特定分类的Go备用安装方式。
如果安装后执行
--version
提示“command not found”,说明安装步骤未将二进制文件添加到
$PATH
中。在验证成功前,请不要执行技能命令。
OpenTable和Tock分割了美国高端餐饮预订市场,且二者数据完全不互通。本CLI工具将它们整合:
goat
命令可同时搜索两个平台,
watch
命令可轮询两个平台的取消订单,
earliest
命令可汇总两个平台的可用时段,
drift
命令可显示自你上次查看以来餐厅的变化。认证仅需执行一次
auth login --chrome
导入——直接使用你Chrome浏览器中两个平台的真实Cookie,无需合作伙伴密钥。

When to Use This CLI

何时使用本CLI工具

Use this CLI any time a user or agent needs to search, compare, watch, or book across OpenTable and Tock together — and especially for multi-venue questions ('soonest table at any of these'), cancellation hunting, or tracking changes at a specific venue. For single-network simple lookups, the official site UI is faster.
当用户或Agent需要同时在OpenTable和Tock上搜索、对比、监控或预订时,尤其适用于多餐厅查询(“这些餐厅中最早的空位”)、寻找取消订单或跟踪特定餐厅的变化时,可使用本CLI工具。对于单一平台的简单查询,官方网站UI速度更快。

Unique Capabilities

独特功能

These capabilities aren't available in any other tool for this API.
这些功能是其他同类API工具所不具备的。

Cross-network ground truth

跨平台真实数据

  • goat
    — One query across OpenTable and Tock simultaneously, ranked by relevance, earliest availability, and price band.
    When a user asks an agent to find a table, this is the single command that searches both reservation networks and returns structured ranked results — agents do not need to know which network covers which restaurant.
    bash
    table-reservation-goat-pp-cli goat 'tasting menu chicago' --party 2 --when 'this weekend' --agent --select results.name,results.network,results.earliest_slot,results.price_band
  • earliest
    — Across a list of restaurants from either network, return the earliest open slot per venue within a time horizon.
    When a user gives an agent a shortlist of venues and wants the soonest opportunity, this is the right shape — one structured response with one row per venue across both networks.
    bash
    table-reservation-goat-pp-cli earliest 'alinea,le-bernardin,smyth,atomix' --party 4 --within 21d --agent --select earliest.venue,earliest.network,earliest.slot_at,earliest.attributes
  • goat
    — 一次查询同时覆盖OpenTable和Tock,结果按相关性、最早可用时段和价格区间排序。
    当用户要求Agent寻找餐桌时,这是唯一一个可同时搜索两个预订平台并返回结构化排序结果的命令——Agent无需了解哪家餐厅属于哪个平台。
    bash
    table-reservation-goat-pp-cli goat 'tasting menu chicago' --party 2 --when 'this weekend' --agent --select results.name,results.network,results.earliest_slot,results.price_band
  • earliest
    — 针对来自任一平台的餐厅列表,返回每个餐厅在指定时间范围内最早的空位。
    当用户给Agent一份餐厅候选名单并想要最早的预订机会时,此命令最为合适——返回一个结构化响应,包含两个平台中每家餐厅的一行数据。
    bash
    table-reservation-goat-pp-cli earliest 'alinea,le-bernardin,smyth,atomix' --party 4 --within 21d --agent --select earliest.venue,earliest.network,earliest.slot_at,earliest.attributes

Local state that compounds

可累积的本地状态

  • watch
    — Persistent local watcher that polls both networks for openings on your target venues and party size, with notifications and optional auto-book.
    Resy's Notify covers Resy only; tockstalk covers Tock only; restaurant-mcp's snipe covers Resy+OT only. None covers both networks; none persists state. Use this when an agent or user needs a hot reservation that isn't currently available.
    bash
    table-reservation-goat-pp-cli watch add 'le-bernardin' --party 2 --window 'Fri 7-9pm' --notify slack
  • drift
    — Show what changed at a specific venue since the last sync — new experiences, slot price moves, hours changes.
    Hot-target deep-watch: when an agent or user is hunting one venue, drift surfaces every meaningful change since the last look.
    bash
    table-reservation-goat-pp-cli drift alinea --since '2026-04-01' --agent
  • watch
    — 持久化本地监控器,轮询两个平台目标餐厅的空位,支持通知和可选自动预订功能。
    Resy的Notify仅覆盖Resy平台;tockstalk仅覆盖Tock平台;restaurant-mcp的snipe仅覆盖Resy+OpenTable平台。没有工具能同时覆盖两个平台,也没有工具能持久化状态。当Agent或用户需要当前不可用的热门预订时,请使用此功能。
    bash
    table-reservation-goat-pp-cli watch add 'le-bernardin' --party 2 --window 'Fri 7-9pm' --notify slack
  • drift
    — 显示自上次同步以来特定餐厅的变化——新体验、时段价格变动、营业时间变更。
    热门餐厅深度监控:当Agent或用户紧盯某一家餐厅时,drift命令会显示自上次查看以来的所有重要变化。
    bash
    table-reservation-goat-pp-cli drift alinea --since '2026-04-01' --agent

Command Reference

命令参考

availability — Check open reservation slots across OpenTable and Tock
  • table-reservation-goat-pp-cli availability check
    — Check open slots for a restaurant on a specific date and party size
  • table-reservation-goat-pp-cli availability multi-day
    — Multi-day availability for a single restaurant — Mon-Sun matrix
restaurants — Search and inspect restaurants across OpenTable and Tock
  • table-reservation-goat-pp-cli restaurants get
    — Get a restaurant's full detail — hours, address, cuisine, price band, photos, accolades
  • table-reservation-goat-pp-cli restaurants list
    — List restaurants across OpenTable and Tock; filter by location, cuisine, price band, accolades, and party size
watch — Persistent local cancellation watcher across both networks
  • table-reservation-goat-pp-cli watch add
    — Register a watch for a venue, party size, and time window
  • table-reservation-goat-pp-cli watch list
    — List active watches
  • table-reservation-goat-pp-cli watch cancel
    — Cancel a watch by id
  • table-reservation-goat-pp-cli watch tick
    — Run one polling tick across all active watches (for cron / agents)
availability — 查看OpenTable和Tock上的可用预订时段
  • table-reservation-goat-pp-cli availability check
    — 查看特定日期和人数下某餐厅的可用时段
  • table-reservation-goat-pp-cli availability multi-day
    — 单餐厅多日可用情况——周一至周日矩阵
restaurants — 在OpenTable和Tock上搜索和查看餐厅信息
  • table-reservation-goat-pp-cli restaurants get
    — 获取餐厅的完整详情——营业时间、地址、菜系、价格区间、照片、荣誉
  • table-reservation-goat-pp-cli restaurants list
    — 列出OpenTable和Tock上的餐厅;可按位置、菜系、价格区间、荣誉和人数筛选
watch — 跨两个平台的持久化本地取消订单监控
  • table-reservation-goat-pp-cli watch add
    — 注册对某餐厅、人数和时间窗口的监控
  • table-reservation-goat-pp-cli watch list
    — 列出当前活跃的监控任务
  • table-reservation-goat-pp-cli watch cancel
    — 通过ID取消监控任务
  • table-reservation-goat-pp-cli watch tick
    — 对所有活跃监控任务执行一次轮询(适用于定时任务/Agent)

Finding the right command

查找合适的命令

When you know what you want to do but not which command does it, ask the CLI directly:
bash
table-reservation-goat-pp-cli which "<capability in your own words>"
which
resolves a natural-language capability query to the best matching command from this CLI's curated feature index. Exit code
0
means at least one match; exit code
2
means no confident match — fall back to
--help
or use a narrower query.
当你知道要做什么但不知道用哪个命令时,可直接询问CLI:
bash
table-reservation-goat-pp-cli which "<用你自己的话描述功能>"
which
命令会将自然语言的功能查询解析为CLI精选功能索引中最匹配的命令。退出码
0
表示至少有一个匹配项;退出码
2
表示没有确定的匹配项——请回退到
--help
或使用更具体的查询。

Recipes

使用示例

Headline omakase search across both networks (agent-shaped)

跨平台顶级omakase搜索(Agent适配格式)

bash
table-reservation-goat-pp-cli goat 'omakase manhattan' --party 2 --when 'this fri 7-9pm' --agent --select results.name,results.network,results.earliest_slot,results.price_band,results.attributes
Single command, ranked merged output with the deeply-nested fields agents actually need — narrows a multi-KB response to five columns.
bash
table-reservation-goat-pp-cli goat 'omakase manhattan' --party 2 --when 'this fri 7-9pm' --agent --select results.name,results.network,results.earliest_slot,results.price_band,results.attributes
单条命令,返回排序后的合并结果,包含Agent实际需要的深层嵌套字段——将多KB的响应精简为五列。

Watch one Tock-only and one OT-only venue at the same party size

同时监控一家仅Tock和一家仅OpenTable的餐厅,人数相同

bash
table-reservation-goat-pp-cli watch add 'alinea' --party 2 --window 'sat 7-9pm' --notify local && table-reservation-goat-pp-cli watch add 'le-bernardin' --party 2 --window 'sat 7-9pm' --notify local
Two watches, one local store, one polling daemon — the printer handles both networks via per-source adaptive limiters.
bash
table-reservation-goat-pp-cli watch add 'alinea' --party 2 --window 'sat 7-9pm' --notify local && table-reservation-goat-pp-cli watch add 'le-bernardin' --party 2 --window 'sat 7-9pm' --notify local
两个监控任务,一个本地存储,一个轮询守护进程——工具通过每个平台的自适应限制器处理两个网络。

Soonest table among my shortlist

候选名单中最早的空位

bash
table-reservation-goat-pp-cli earliest 'narisawa,sushi-saito,den,florilege' --party 2 --within 14d --agent --select earliest.venue,earliest.network,earliest.slot_at
One row per venue with the soonest slot, sortable by slot time. Agents pipe into a planner without re-querying.
bash
table-reservation-goat-pp-cli earliest 'narisawa,sushi-saito,den,florilege' --party 2 --within 14d --agent --select earliest.venue,earliest.network,earliest.slot_at
每家餐厅一行数据,包含最早的空位,可按空位时间排序。Agent无需重新查询即可直接导入到规划工具中。

Watched venue: what changed in the last week

监控餐厅:过去一周的变化

bash
table-reservation-goat-pp-cli drift alinea --since 7d --agent
Snapshot diff at a single venue — new experiences, slot price moves, hours changes — exactly what hot-target hunters need.
bash
table-reservation-goat-pp-cli drift alinea --since 7d --agent
单餐厅的快照差异——新体验、时段价格变动、营业时间变更——正是热门餐厅追踪者需要的信息。

Headline search, then check live availability for the top hit

顶级搜索后,检查排名第一餐厅的实时可用情况

bash
table-reservation-goat-pp-cli goat 'le bernardin' --party 2 --json | jq -r '.results[0] | (.network + ":" + .slug)' | xargs -I{} table-reservation-goat-pp-cli availability check {} --party 2 --date "$(date +%Y-%m-%d)"
Compose the cross-network search with a follow-up live availability check —
goat
returns the best matched venue,
availability check
then queries OpenTable or Tock directly for open slots on that venue and date.
bash
table-reservation-goat-pp-cli goat 'le bernardin' --party 2 --json | jq -r '.results[0] | (.network + ":" + .slug)' | xargs -I{} table-reservation-goat-pp-cli availability check {} --party 2 --date "$(date +%Y-%m-%d)"
将跨平台搜索与后续的实时可用情况检查结合——
goat
返回最匹配的餐厅,
availability check
随后直接查询OpenTable或Tock获取该餐厅指定日期的可用时段。

Auth Setup

认证设置

No authentication required.
Run
table-reservation-goat-pp-cli doctor
to verify setup.
无需认证。
执行
table-reservation-goat-pp-cli doctor
验证设置。

Agent Mode

Agent模式

Add
--agent
to any command. Expands to:
--json --compact --no-input --no-color --yes
.
  • Pipeable — JSON on stdout, errors on stderr
  • Filterable
    --select
    keeps a subset of fields. Dotted paths descend into nested structures; arrays traverse element-wise. Critical for keeping context small on verbose APIs:
    bash
    table-reservation-goat-pp-cli restaurants list --agent --select id,name,neighborhood,price_band
  • Previewable
    --dry-run
    shows the request without sending
  • Offline-friendly — sync/search commands can use the local SQLite store when available
  • Non-interactive — never prompts, every input is a flag
  • Explicit retries — use
    --idempotent
    only when an already-existing create should count as success, and
    --ignore-missing
    only when a missing delete target should count as success
在任何命令后添加
--agent
参数。等效于:
--json --compact --no-input --no-color --yes
  • 可管道传输 — 标准输出为JSON,错误信息输出到标准错误
  • 可过滤
    --select
    参数保留字段子集。点路径可深入嵌套结构;数组可遍历每个元素。对于冗长的API,这是保持上下文简洁的关键:
    bash
    table-reservation-goat-pp-cli restaurants list --agent --select id,name,neighborhood,price_band
  • 可预览
    --dry-run
    参数显示请求但不发送
  • 离线友好 — 同步/搜索命令可在可用时使用本地SQLite存储
  • 非交互式 — 从不提示,所有输入均通过标志参数提供
  • 显式重试 — 仅当已存在的创建操作应视为成功时使用
    --idempotent
    ,仅当缺失的删除目标应视为成功时使用
    --ignore-missing

Response envelope

响应信封

Commands that read from the local store or the API wrap output in a provenance envelope:
json
{
  "meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
  "results": <data>
}
Parse
.results
for data and
.meta.source
to know whether it's live or local. A human-readable
N results (live)
summary is printed to stderr only when stdout is a terminal — piped/agent consumers get pure JSON on stdout.
从本地存储或API读取数据的命令会将输出包装在来源信封中:
json
{
  "meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
  "results": <data>
}
解析
.results
获取数据,
.meta.source
可判断数据是实时的还是本地的。仅当标准输出为终端时,才会将人类可读的
N results (live)
摘要打印到标准错误——管道/Agent消费者仅会在标准输出获取纯JSON。

Agent Feedback

Agent反馈

When you (or the agent) notice something off about this CLI, record it:
table-reservation-goat-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
table-reservation-goat-pp-cli feedback --stdin < notes.txt
table-reservation-goat-pp-cli feedback list --json --limit 10
Entries are stored locally at
~/.table-reservation-goat-pp-cli/feedback.jsonl
. They are never POSTed unless
TABLE_RESERVATION_GOAT_FEEDBACK_ENDPOINT
is set AND either
--send
is passed or
TABLE_RESERVATION_GOAT_FEEDBACK_AUTO_SEND=true
. Default behavior is local-only.
Write what surprised you, not a bug report. Short, specific, one line: that is the part that compounds.
当你(或Agent)发现本CLI工具存在问题时,请记录反馈:
table-reservation-goat-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
table-reservation-goat-pp-cli feedback --stdin < notes.txt
table-reservation-goat-pp-cli feedback list --json --limit 10
反馈条目存储在本地
~/.table-reservation-goat-pp-cli/feedback.jsonl
文件中。除非设置了
TABLE_RESERVATION_GOAT_FEEDBACK_ENDPOINT
,并且传递了
--send
参数或设置了
TABLE_RESERVATION_GOAT_FEEDBACK_AUTO_SEND=true
,否则反馈不会被发送。默认行为仅存储在本地。
请写下让你感到意外的内容,而不是正式的错误报告。简短、具体、单行描述:这才是有价值的反馈。

Output Delivery

输出交付

Every command accepts
--deliver <sink>
. The output goes to the named sink in addition to (or instead of) stdout, so agents can route command results without hand-piping. Three sinks are supported:
SinkEffect
stdout
Default; write to stdout only
file:<path>
Atomically write output to
<path>
(tmp + rename)
webhook:<url>
POST the output body to the URL (
application/json
or
application/x-ndjson
when
--compact
)
Unknown schemes are refused with a structured error naming the supported set. Webhook failures return non-zero and log the URL + HTTP status on stderr.
每个命令都支持
--deliver <sink>
参数。输出会发送到指定的sink,除了(或代替)标准输出,因此Agent无需手动管道即可路由命令结果。支持三种sink:
Sink效果
stdout
默认;仅输出到标准输出
file:<path>
原子性地将输出写入
<path>
(先写入临时文件再重命名)
webhook:<url>
将输出主体POST到指定URL(当使用
--compact
时为
application/json
application/x-ndjson
格式)
不支持的协议会返回结构化错误,并列出支持的类型。Webhook失败会返回非零退出码,并在标准错误中记录URL和HTTP状态码。

Named Profiles

命名配置文件

A profile is a saved set of flag values, reused across invocations. Use it when a scheduled agent calls the same command every run with the same configuration - HeyGen's "Beacon" pattern.
table-reservation-goat-pp-cli profile save briefing --json
table-reservation-goat-pp-cli --profile briefing restaurants list
table-reservation-goat-pp-cli profile list --json
table-reservation-goat-pp-cli profile show briefing
table-reservation-goat-pp-cli profile delete briefing --yes
Explicit flags always win over profile values; profile values win over defaults.
agent-context
lists all available profiles under
available_profiles
so introspecting agents discover them at runtime.
配置文件是一组保存的标志值,可在多次调用中复用。适用于定时Agent每次运行都使用相同配置调用同一命令的场景——即HeyGen的“Beacon”模式。
table-reservation-goat-pp-cli profile save briefing --json
table-reservation-goat-pp-cli --profile briefing restaurants list
table-reservation-goat-pp-cli profile list --json
table-reservation-goat-pp-cli profile show briefing
table-reservation-goat-pp-cli profile delete briefing --yes
显式标志始终优先于配置文件值;配置文件值优先于默认值。
agent-context
会在
available_profiles
下列出所有可用配置文件,因此Agent可在运行时发现它们。

Exit Codes

退出码

CodeMeaning
0Success
2Usage error (wrong arguments)
3Resource not found
5API error (upstream issue)
7Rate limited (wait and retry)
10Config error
代码含义
0成功
2使用错误(参数错误)
3资源未找到
5API错误(上游问题)
7速率限制(请等待后重试)
10配置错误

Argument Parsing

参数解析

Parse
$ARGUMENTS
:
  1. Empty,
    help
    , or
    --help
    → show
    table-reservation-goat-pp-cli --help
    output
  2. Starts with
    install
    → ends with
    mcp
    → MCP installation; otherwise → see Prerequisites above
  3. Anything else → Direct Use (execute as CLI command with
    --agent
    )
解析
$ARGUMENTS
  1. 为空、
    help
    --help
    → 显示
    table-reservation-goat-pp-cli --help
    输出
  2. install
    开头
    → 以
    mcp
    结尾 → MCP安装;否则 → 参见上方前提条件
  3. 其他情况 → 直接使用(添加
    --agent
    参数执行CLI命令)

MCP Server Installation

MCP服务器安装

Install the MCP binary from this CLI's published public-library entry or pre-built release, then register it:
bash
claude mcp add table-reservation-goat-pp-mcp -- table-reservation-goat-pp-mcp
Verify:
claude mcp list
从本CLI已发布的公共库条目或预构建版本安装MCP二进制文件,然后注册:
bash
claude mcp add table-reservation-goat-pp-mcp -- table-reservation-goat-pp-mcp
验证安装:
claude mcp list

Direct Use

直接使用

  1. Check if installed:
    which table-reservation-goat-pp-cli
    If not found, offer to install (see Prerequisites at the top of this skill).
  2. Match the user query to the best command from the Unique Capabilities and Command Reference above.
  3. Execute with the
    --agent
    flag:
    bash
    table-reservation-goat-pp-cli <command> [subcommand] [args] --agent
  4. If ambiguous, drill into subcommand help:
    table-reservation-goat-pp-cli <command> --help
    .
  1. 检查是否安装:
    which table-reservation-goat-pp-cli
    如果未找到,提供安装选项(参见顶部前提条件)。
  2. 将用户查询与上方独特功能和命令参考中的最佳命令匹配。
  3. 添加
    --agent
    参数执行:
    bash
    table-reservation-goat-pp-cli <command> [subcommand] [args] --agent
  4. 如果存在歧义,查看子命令帮助:
    table-reservation-goat-pp-cli <command> --help
    .