关于 pp-airhint
pp-airhint 是用于 AirHint 航班搜索和机票价格预测的 CLI 技能,可提供买入或等待建议。它支持跨日期或航线批量比较,并提供面向 Agent 的输出与本地状态功能。
主要功能
- 01搜索航班和当前价格
- 02机票买入或等待预测
- 03按日期范围批量预测
- 04多航线比较
- 05按月查找最低价日期
- 06Agent 输出与结果投递选项
适用场景
- 01决定何时购买机票
- 02比较不同出行日期的预测票价
- 03比较同一日期的多条航线
- 04查找某月票价最低的出发日期
MCP 相关
README 提到可安装并注册 MCP 二进制文件 `airhint-pp-mcp`,供 MCP 客户端使用,但未说明该服务公开的工具或数据。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mvanhorn/ printing-press-library --skill pp-airhint安装后在 Claude Code 中输入/pp-airhint确认已加载。
详细介绍
Airhint — Printing Press 命令行工具
前置条件:安装 CLI
此技能使用 airhint-pp-cli 二进制文件。**调用此技能中的任何命令前,必须先确认 CLI 已安装。**如果尚未安装,请先安装:
- 使用 Printing Press 安装程序安装。在 macOS/Linux 上,二进制文件默认安装到
$HOME/.local/bin;在 Windows 上,默认安装到%LOCALAPPDATA%\Programs\PrintingPress\bin:npx -y @mvanhorn/printing-press-library install airhint --cli-only - 验证:
airhint-pp-cli --version - 确保报告的安装目录已添加到将调用此技能的 Agent/运行时的
$PATH中。
如果通过 npx 安装失败(没有 Node、离线等),请改用直接通过 Go 安装(需要 Go 1.26.6 或更高版本)。此方式会将程序安装到 $GOPATH/bin(默认为 $HOME/go/bin),因此请将该目录添加到 $PATH:
go install github.com/mvanhorn/printing-press-library/library/travel/airhint/cmd/airhint-pp-cli@latest
如果安装后 --version 报告“command not found”,说明运行时无法在 $PATH 中找到二进制文件目录。验证成功前,请勿继续执行此技能中的命令。
AirHint 航班价格预测 API — 为机票提供买入/等待建议
独特功能
其他任何适用于此 API 的工具都不具备这些功能。
组合查询
-
workflow predict-sweep— 针对某条航线,在日期范围内批量进行买入/等待预测,并获取每个日期的实时价格为行程灵活的旅客提供批量价格分析,找出最便宜且最稳妥的购票日期
airhint-pp-cli workflow predict-sweep STN DUB --days 14 --airline FR --json -
workflow compare-routes— 在同一日期比较多个出发地-目的地组合的买入/等待预测一条命令即可比较 3 条以上的航线,无需打开 3 个以上的浏览器标签页 — 专为 Agent 打造的旅行规划
airhint-pp-cli workflow compare-routes 2026-08-16 STN:DUB LGW:BCN MAD:LIS --json
可累积的本地状态
-
workflow cheapest-window— 使用 cheapest-deal-month 和 cheapest-airline-deal-month 端点,找出指定月份内最便宜的出发日期无需打开浏览器,即可回答“8 月哪天飞 STN→DUB 最便宜?”
airhint-pp-cli workflow cheapest-window STN DUB 8 --airline FR
HTTP 传输
此 CLI 使用兼容 Chrome 的 HTTP 传输来调用面向浏览器的端点。常规 API 调用无需常驻的浏览器进程。
发现信号
此 CLI 根据浏览器观察到的流量上下文生成。
- 捕获覆盖范围:共 16 个网络条目,其中包含 8 个 API 条目
- 协议:rest_json(置信度 75%)
- 生成提示:browser_http_transport、requires_protected_client、weak_schema_confidence
- 候选命令创意:create_airport_names — 根据观察到的 POST /airport-names 流量推导而来;get_DUB — 根据观察到的 GET /cheapest-deal-month/one-way/STN/DUB/{dub_id} 流量推导而来;get_search — 根据观察到的 GET /search/{search_id} 流量推导而来;list_2026_08_16 — 根据观察到的 GET /predict/FR/STN/DUB/2026-08-16 流量推导而来;list_airport_autocomplete — 根据观察到的 GET /airport-autocomplete 流量推导而来;list_inline_ads — 根据观察到的 GET /inline-ads 流量推导而来;list_kayak_location_lookup — 根据观察到的 GET /kayak-location-lookup 流量推导而来。
- 注意事项:weak_schema_evidence:二进制或 protobuf 响应无法提供可靠的 JSON Schema 证据。
命令参考
airport-autocomplete — 机场和城市搜索自动补全
airhint-pp-cli airport-autocomplete— 按名称或 IATA 代码搜索机场和城市
airport-names — 批量查询机场名称
airhint-pp-cli airport-names— 获取一组 IATA 代码对应的机场名称
cheapest-airline-deal-month — 查找某家航空公司在某个月份的最优惠机票
airhint-pp-cli cheapest-airline-deal-month <airline> <origin> <destination> <date> <currency>— 获取某家航空公司在某条航线上、指定日期附近的最低票价
cheapest-deal-month — 查找指定月份的最优惠机票
airhint-pp-cli cheapest-deal-month <origin> <destination> <month>— 获取某条航线在指定月份的最低单程票价
flights — 航班搜索 — 查找可预订航班和当前价格
airhint-pp-cli flights create-search— 发起航班搜索,并返回用于轮询的 search_idairhint-pp-cli flights get-search— 使用 create_search 返回的 search_id 轮询搜索结果
predict — 航班价格预测 — 买入或等待建议
airhint-pp-cli predict <airline> <origin> <destination> <date>— 根据指定价格获取航班的买入或等待建议
查找合适的命令
当你知道要做什么,但不知道该使用哪个命令时,可以直接询问 CLI:
airhint-pp-cli which "<capability in your own words>"
which 会根据自然语言能力查询,从此 CLI 精选的功能索引中找到最匹配的命令。退出代码 0 表示至少找到一个匹配项;退出代码 2 表示没有足够可靠的匹配项,此时可改用 --help 或使用更具体的查询。
身份验证设置
无需身份验证。
运行 airhint-pp-cli doctor 验证设置。
Agent 模式
在任意命令中添加 --agent。它会展开为:--json --compact --no-input --no-color --yes。
-
可通过管道传输 — JSON 输出到 stdout,错误输出到 stderr
-
可筛选 —
--select保留字段子集。点分路径可深入嵌套结构;数组会逐元素遍历。对于冗长 API,精简上下文至关重要:airhint-pp-cli airport-autocomplete --query example-value --agent --select id,name,status -
可预览 —
--dry-run显示请求,但不发送 -
适合离线使用 — 本地 SQLite 存储可用时,同步或搜索命令可以使用该存储
-
非交互式 — 从不提示输入,每个输入都通过标志传入
-
明确重试行为 — 只有当已存在的创建结果应视为成功时,才使用
--idempotent
响应封装
从本地存储或 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 有异常之处时,请记录下来:
airhint-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
airhint-pp-cli feedback --stdin < notes.txt
airhint-pp-cli feedback list --json --limit 10
条目会保存在本地 ~/.local/share/airhint-pp-cli/feedback.jsonl。只有在设置了 AIRHINT_FEEDBACK_ENDPOINT,且传入 --send 或 AIRHINT_FEEDBACK_AUTO_SEND=true 时,才会通过 POST 发送。默认行为仅保存在本地。
记录让你意外的事情,而不是提交 Bug 报告。简短、具体,一行即可:这才是能不断积累价值的部分。
输出传递
每个命令都接受 --deliver <sink>。除了写入 stdout(或替代 stdout)外,输出还会发送到指定目标,因此 Agent 无需手动通过管道传输即可路由命令结果。支持三种目标:
| 目标 | 效果 |
|---|---|
stdout | 默认;仅写入 stdout |
file:<path> | 以原子方式将输出写入 <path>(临时文件 + 重命名) |
webhook:<url> | 将输出正文 POST 到 URL(使用 --compact 时为 application/json 或 application/x-ndjson) |
不支持的方案会被拒绝,并返回指出受支持方案的结构化错误。Webhook 失败时会返回非零状态,并在 stderr 中记录 URL 和 HTTP 状态码。
命名配置
配置文件是一组已保存的标志值,可在多次调用中重复使用。如果定时 Agent 每次运行时都以相同配置调用同一命令,请使用它——这是 HeyGen 的“Beacon”模式。
airhint-pp-cli profile save briefing --json
airhint-pp-cli --profile briefing airport-autocomplete --query example-value
airhint-pp-cli profile list --json
airhint-pp-cli profile show briefing
airhint-pp-cli profile delete briefing --yes
显式标志始终优先于配置文件中的值;配置文件中的值优先于默认值。agent-context 会在 available_profiles 下列出所有可用配置文件,方便进行自省的 Agent 在运行时发现它们。
退出代码
| 代码 | 含义 |
|---|---|
| 0 | 成功 |
| 2 | 用法错误(参数错误) |
| 3 | 未找到资源 |
| 5 | API 错误(上游问题) |
| 7 | 请求过于频繁(等待后重试) |
| 10 | 配置错误 |
参数解析
解析 $ARGUMENTS:
- 为空、
help或--help→ 显示airhint-pp-cli --help的输出 - 以
install开头 → 以mcp结尾 → 安装 MCP;否则 → 参见上文的先决条件 - 其他情况 → 直接使用(作为 CLI 命令执行,并添加
--agent)
MCP 服务安装
从此 CLI 发布的公共库条目或预构建版本安装 MCP 二进制文件,然后进行注册:
claude mcp add airhint-pp-mcp -- airhint-pp-mcp
验证:claude mcp list
直接使用
- 检查是否已安装:
which airhint-pp-cli如果未找到,请提供安装选项(参见本技能顶部的先决条件)。 - 将用户查询与上文“独特功能”和“命令参考”中最合适的命令匹配。
- 使用
--agent标志执行:airhint-pp-cli <command> [subcommand] [args] --agent - 如果存在歧义,请查看子命令帮助:
airhint-pp-cli <command> --help。