关于 pp-hotel-tonight
pp-hotel-tonight 是供 Agent 和脚本查询 HotelTonight 临时酒店优惠的只读命令行技能。它结合实时搜索与本地价格历史来追踪降价、评估报价;无需登录,也不能预订。
主要功能
- 01搜索临时酒店优惠
- 02监控价格并发现降价
- 03查看酒店价格历史与判断
- 04比较街区和日期
- 05查询市场与 Daily Drop 优惠
- 06筛选适用于 Agent 的输出
适用场景
- 01按价格目标追踪城市优惠
- 02判断酒店报价是否偏低
- 03比较街区或入住日期
- 04查看当天及历史 Daily Drop
MCP 相关
该技能说明了如何安装 `hotel-tonight-pp-mcp` MCP 服务并在 Claude Code 中注册,但未说明其向 MCP 暴露的工具。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mvanhorn/ printing-press-library --skill pp-hotel-tonight安装后在 Claude Code 中输入/pp-hotel-tonight确认已加载。
详细介绍
HotelTonight — Printing Press CLI
前提条件:安装 CLI
此技能通过 hotel-tonight-pp-cli 二进制文件运行。**调用此技能中的任何命令前,必须确认 CLI 已安装。**如果尚未安装,请先安装:
- 通过 Printing Press 安装程序进行安装。在 macOS/Linux 上,二进制文件默认安装到
$HOME/.local/bin;在 Windows 上,默认安装到%LOCALAPPDATA%\Programs\PrintingPress\bin:npx -y @mvanhorn/printing-press-library install hotel-tonight --cli-only - 验证:
hotel-tonight-pp-cli --version - 确保报告的安装目录位于将调用此技能的 Agent/运行时的
$PATH中。
如果 npx 安装失败(未安装 Node、处于离线状态等),请改用直接通过 Go 安装的方式(需要 Go 1.26.6 或更高版本):
go install github.com/mvanhorn/printing-press-library/library/travel/hotel-tonight/cmd/hotel-tonight-pp-cli@latest
如果安装后 --version 报告“command not found”,说明运行时无法在 $PATH 中找到二进制文件目录。验证成功前,请勿继续执行技能命令。
何时使用此 CLI
当 Agent 或脚本需要 HotelTonight 上最新的酒店优惠数据,并希望数据能够持续积累时,请使用此 CLI:例如监控某个城市的降价情况、建立某家酒店的价格历史、判断报价是否真的便宜,或比较不同街区和日期。此 CLI 只读且匿名——不会预订,也无需登录。
何时不使用此 CLI
对于需要创建、更新、删除、发布、评论、点赞、邀请、下单、发送消息、预订、购买或更改远程状态的请求,请勿启用此 CLI。此 CLI 仅提供用于检查、导出、同步和分析的只读命令。
独特功能
这些功能在此 API 的其他工具中均不可用。
本地价格分析
-
watch— 立即快照某个地点的优惠,并告知你哪些房间价格低于设定的门槛,或较上次查看时有所下降。当 Agent 需要持续监控某个城市的酒店临时降价,而不是盲目地反复查询时,使用此命令。
hotel-tonight-pp-cli watch --lat 37.7749 --lng -122.4194 --when tonight --below 150 --agent -
history— 显示本地存储中某家酒店记录的价格和折扣百分比历史。当你需要了解某家酒店实际的价格走势,而非单次临时报价时使用。
hotel-tonight-pp-cli history "Argonaut Hotel" --days 30 --agent -
verdict— 根据某家酒店自身记录的最低价、中位价和最高价,将其当前报价判定为便宜、正常或昂贵。当你想以可靠的基准而非猜测来回答“这真的便宜吗?”时,使用此命令。
hotel-tonight-pp-cli verdict "Argonaut Hotel" --agent
实时优惠视图
-
compare-neighborhoods— 按街区对某个都市圈今晚的优惠分组,并按中位价或最佳折扣百分比对街区排序。当你需要判断今晚在某座城市选择哪个区域性价比最高时使用。
hotel-tonight-pp-cli compare-neighborhoods --metro 1 --when tonight --agent -
datescan— 通过并排排名视图,比较某个地点今晚、明晚和周末的优惠。当你想找到某个区域最便宜的住宿夜晚,而不想反复进行搜索时,使用此命令。
hotel-tonight-pp-cli datescan --lat 30.3071 --lng -97.7354 --agent -
daily-drop— 显示某个市场今日的 Daily Drop 酒店及其实际折扣价(应用会通过滑动解锁门槛将其隐藏);使用 --history 可查看过往 Daily Drop 的记录。用于查看和追踪 HotelTonight 独家每日限时优惠;应用会在你解锁前将其隐藏,并在每天结束时清除。
hotel-tonight-pp-cli daily-drop --metro 1 --agent
命令参考
inventory — 按地点查询酒店临时优惠库存
hotel-tonight-pp-cli inventory— 搜索指定日期范围内、靠近某个经纬度的酒店临时优惠
markets — HotelTonight 市场(提供优惠的城市)
hotel-tonight-pp-cli markets get— 按数字 ID 获取单个市场hotel-tonight-pp-cli markets list— 列出 HotelTonight 的主要市场及其位置、slug 和类别价格hotel-tonight-pp-cli markets nearby— 列出指定市场 ID 对应的热门/附近市场
查找合适的命令
知道自己想做什么,但不知道该用哪个命令时,可以直接询问 CLI:
hotel-tonight-pp-cli which "<capability in your own words>"
which 会根据自然语言能力查询,从此 CLI 精选的功能索引中找出最匹配的命令。退出代码 0 表示至少找到一个匹配项;退出代码 2 表示没有可信的匹配项——请改用 --help,或缩小查询范围。
使用示例
查找今晚坐标附近最便宜的选项,并精简输出供 Agent 使用
hotel-tonight-pp-cli inventory --latitude 37.7749 --longitude -122.4194 --agent --select rooms.hotel.name,rooms.hotel.neighborhood,rooms.customer_price_per_night,rooms.strikethrough_price,rooms.deal_type
原始库存数据包含数十 KB 的嵌套优惠信息;使用 --select 和点分路径,只返回酒店、街区、价格、30 天最高价和优惠类型,避免 Agent 消耗过多上下文。
关注某个街区,等待价格达到目标
hotel-tonight-pp-cli watch --lat 37.7749 --lng -122.4194 --when tonight --below 150
保存当前优惠快照,并报告现在低于 150 美元或比上次观察更便宜的客房——可以通过 cron 定时运行,在你离开时捕捉降价。
决定住哪一晚
hotel-tonight-pp-cli datescan --lat 30.3071 --lng -97.7354
并排比较同一地区今晚、明晚和周末的价格,让你一眼选出最便宜的一晚。
这个房价真的划算吗?
hotel-tonight-pp-cli verdict "Argonaut Hotel"
根据酒店记录的最低价、中位价和最高价对当前报价进行分类——需要先同步几次来建立基准。
身份验证设置
无需身份验证。
运行 hotel-tonight-pp-cli doctor 以验证设置。
Agent 模式
在任意命令中添加 --agent。它会展开为:--json --compact --no-input --no-color --yes。
-
可管道传输——JSON 输出到 stdout,错误输出到 stderr
-
可筛选——
--select保留部分字段。点分路径可访问嵌套结构;数组会逐元素遍历。对于输出冗长的 API,这对控制上下文大小至关重要:hotel-tonight-pp-cli inventory --latitude example-value --longitude example-value --agent --select id,name,status -
可预览——
--dry-run显示请求,但不会发送 -
支持离线使用——有本地 SQLite 存储时,sync/search 命令可以使用该存储
-
非交互式——绝不显示提示,每项输入都通过标志指定
-
只读——请勿使用此 CLI 执行创建、更新、删除、发布、评论、点赞、邀请、下单、发送或其他会修改数据的请求
响应封装
从本地存储或 API 读取数据的命令会在输出外层附加来源信息:
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}
解析 .results 获取数据,并查看 .meta.source 以确认数据来自实时源还是本地存储。只有当 stdout 是终端,且未设置机器格式标志(--json、--csv、--compact、--quiet、--plain、--select)时,才会将便于阅读的 N results (live) 摘要输出到 stderr——管道或 Agent 消费者以及显式指定格式的运行都会在 stdout 输出纯 JSON。
Agent 反馈
当你(或 Agent)发现此 CLI 有异常之处时,请记录下来:
hotel-tonight-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
hotel-tonight-pp-cli feedback --stdin < notes.txt
hotel-tonight-pp-cli feedback list --json --limit 10
条目会保存在本地的 ~/.hotel-tonight-pp-cli/feedback.jsonl 中。只有设置了 HOTEL_TONIGHT_FEEDBACK_ENDPOINT,且传入了 --send 或设置了 HOTEL_TONIGHT_FEEDBACK_AUTO_SEND=true,才会通过 POST 发送。默认情况下,反馈仅保存在本地。
记录让你感到意外的地方,而不是提交错误报告。简短、具体、一行即可:这部分内容会不断累积,发挥更大作用。
输出交付
每个命令都接受 --deliver <sink>。输出除了发送到 stdout(或取代 stdout)之外,还会发送到指定的目标端,因此 Agent 无需手动通过管道即可转发命令结果。支持三种目标端:
| 目标端 | 效果 |
|---|---|
stdout | 默认;仅写入 stdout |
file:<path> | 将输出原子写入 <path>(先写入临时文件,再重命名) |
webhook:<url> | 将输出正文 POST 到 URL(使用 --compact 时,Content-Type 为 application/json 或 application/x-ndjson) |
遇到未知方案时会拒绝执行,并返回结构化错误,列出支持的方案。Webhook 失败时会返回非零状态,并在 stderr 中记录 URL 和 HTTP 状态。
命名配置
配置是一组已保存的标志值,可在多次调用中重复使用。如果定时 Agent 每次运行都调用相同的命令并使用相同配置,请使用此功能——即 HeyGen 的 “Beacon” 模式。
hotel-tonight-pp-cli profile save briefing --json
hotel-tonight-pp-cli --profile briefing inventory --latitude example-value --longitude example-value
hotel-tonight-pp-cli profile list --json
hotel-tonight-pp-cli profile show briefing
hotel-tonight-pp-cli profile delete briefing --yes
显式标志始终优先于配置值;配置值优先于默认值。agent-context 会在 available_profiles 下列出所有可用配置,以便 Agent 在运行时发现它们。
退出代码
| 代码 | 含义 |
|---|---|
| 0 | 成功 |
| 2 | 用法错误(参数错误) |
| 3 | 未找到资源 |
| 5 | API 错误(上游问题) |
| 7 | 触发速率限制(等待后重试) |
| 10 | 配置错误 |
参数解析
解析 $ARGUMENTS:
- 为空、
help或--help→ 显示hotel-tonight-pp-cli --help的输出 - 以
install开头 → 以mcp结尾 → 安装 MCP;否则 → 请参阅上文的先决条件 - 其他任何内容 → 直接使用(作为 CLI 命令执行,并带上
--agent)
MCP 服务安装
- 安装 MCP 服务:
go install github.com/mvanhorn/printing-press-library/library/travel/hotel-tonight/cmd/hotel-tonight-pp-mcp@latest - 在 Claude Code 中注册:
claude mcp add hotel-tonight-pp-mcp -- hotel-tonight-pp-mcp - 验证:
claude mcp list
直接使用
- 检查是否已安装:
which hotel-tonight-pp-cli如果未找到,请提供安装选项(请参阅本文顶部的先决条件)。 - 根据用户查询,从上文的独特功能和命令参考中选择最合适的命令。
- 使用
--agent标志执行:hotel-tonight-pp-cli <command> [subcommand] [args] --agent - 如果含义不明确,请查看子命令帮助:
hotel-tonight-pp-cli <command> --help。