mcpField
P
pp-pointhound

pp-pointhound

github.com/mvanhorn其他2.1k112 次安装今天更新
代码仓库

关于 pp-pointhound

pp-pointhound 是面向旅行规划者和 Agent 的只读命令行技能,用于搜索和比较积分机票、追踪航线报价。它将搜索快照保存在本地 SQLite,支持按积分余额规划、跨路线排名和价格变化检测。

主要功能

  1. 01按积分余额查找航线
  2. 02按转点比例比较兑换
  3. 03批量搜索并保存快照
  4. 04多出发地与月份矩阵搜索
  5. 05检测报价变化
  6. 06监控航线新优惠

适用场景

  1. 01按现有积分规划旅行目的地
  2. 02比较航线的积分兑换成本
  3. 03寻找多个月份中的低价航班
  4. 04定期监控指定航线的新报价

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mvanhorn/printing-press-library --skill pp-pointhound

安装后在 Claude Code 中输入/pp-pointhound确认已加载。

详细介绍

Pointhound — Printing Press CLI

前提条件:安装 CLI

此 skill 由 pointhound-pp-cli 二进制文件驱动。在调用此 skill 中的任何命令之前,必须确认 CLI 已安装。 如果缺少该 CLI,请先安装:

  1. 使用 Printing Press 安装程序安装。在 macOS/Linux 上,二进制文件默认安装到 $HOME/.local/bin;在 Windows 上,默认安装到 %LOCALAPPDATA%\Programs\PrintingPress\bin:
    npx -y @mvanhorn/printing-press-library install pointhound --cli-only
    
  2. 验证:pointhound-pp-cli --version
  3. 确保报告的安装目录位于将调用此 skill 的 Agent/运行时的 $PATH 中。

如果 npx 安装失败(没有 Node、处于离线状态等),请改用直接通过 Go 安装(需要 Go 1.26.6 或更高版本):

go install github.com/mvanhorn/printing-press-library/library/travel/pointhound/cmd/pointhound-pp-cli@latest

如果安装后 --version 报告“command not found”,说明运行时无法在 $PATH 中找到二进制文件目录。在验证成功之前,请勿继续执行 skill 命令。

何时使用此 CLI

每当需要整合奖励搜索工作时,都可以使用此 CLI:比较多条路线、跟踪一段时间内的优惠、提出考虑余额的问题,或将 Pointhound 接入每日 cron。网页界面适合一次性搜索,但关闭标签页后所有内容都会丢失;此 CLI 会将每个快照保存在本地 SQLite 中,以便执行 SQL 查询、检测变化和跨路线排名。

何时不使用此 CLI

对于需要创建、更新、删除、发布、评论、点赞、邀请、下单、发送消息、预订、购买或更改远程状态的请求,请勿使用此 CLI。此 CLI 仅提供用于检查、导出、同步和分析的只读命令。

独特功能

这些功能在此 API 的其他工具中均不可用。

可不断积累的本地状态
  • from-home — 告诉我凭现有积分可以飞往哪些地方:输入 Chase UR、Amex MR、Bilt、Capital One 和 Citi TY 的余额,即可获得在指定舱位且积分余额足够的所有目的地,并按最低实际支出排序。

    当 Agent 要完成“规划一次秋季旅行”之类的目标,并掌握“用户有 45 万可转让积分”之类的余额信息时,此命令可以一次调用完成多步优化,而不必搜索 N 次。

    pointhound-pp-cli from-home SFO --balance "ur:250000,mr:80000,bilt:120000" --cabin business --month 2026-10 --agent
    
  • compare-transfer — 给定一个可转让积分计划(Chase UR、Amex MR 等)和一条路线,列出所有兑换方式,并按消耗的来源计划积分排序;计算时会将每项优惠的价格乘以实际转点比例(UR→United 即时 1:1,而 Marriott→United 最长需 72 小时,比例为 0.333:1)。

    Agent 在推理“最便宜的兑换方式”时,应使用用户输入的计量单位,而非航空公司收到的积分单位。此命令会完成换算。

    pointhound-pp-cli compare-transfer chase-ultimate-rewards --search-id ofs_xxx --json
    
  • batch — 从 CSV 文件(或多个重复的 --route 参数)并行执行 N 次路线与日期搜索;所有结果都会经过限流后保存到本地 SQLite 存储中。

    旅行规划中常见的情况是多次搜索;网页界面一次只能执行一次搜索。

    pointhound-pp-cli batch --search-ids-file ~/routes.txt --throttle 1s --cabin business --json
    
  • top-deals-matrix — 提交多出发地 × 多目的地 × 多个月份范围的矩阵搜索(例如,SFO、LAX → LIS、FCO、LHR,覆盖 10 月至 12 月),并保存每项结果的快照。该功能与 Pointhound 的 Premium Top Deals 产品类似,但支持离线访问和舱位筛选。

    旅行 Agent 和行程规划工具可以一次性回答“今年秋天去欧洲的最佳优惠是什么?”

    pointhound-pp-cli top-deals-matrix --origins SFO,LAX --dests LIS,FCO,LHR --months 2026-10,2026-11,2026-12 --cabin business
    
  • drift — 对于正在监控的路线,将最新快照与上一份进行比较,并显示每项优惠的状态:新增、更便宜、已消失或未变化。结果包含积分差额和时间间隔。

    它用简短的输出回答“有什么变化吗?”,这正是 Agent 或人工复查者真正需要的。

    pointhound-pp-cli drift SFO LIS 2026-08-15 --since yesterday --json
    
  • calendar — 针对一条路线和舱位,批量搜索 12 个月窗口内的每个月,并生成月度网格,显示每月最低积分成本(以及对应的优惠)。

    用户说“明年找个时间”时,行程规划 Agent 需要的是月份选择器,而不是日期选择器。

    pointhound-pp-cli calendar --search-ids ofs_a,ofs_b,ofs_c --cabin business --json
    
面向 Agent 的基础设施
  • watch — 将航线注册为已保存的监控项;后续运行会轮询 Pointhound,仅当自上次快照以来出现新优惠或更低价优惠时才以代码 2 退出。非常适合 cron。

    相当于面向 Agent 的“有变化时告诉我”——由退出代码驱动,适用于任何调度程序。

    pointhound-pp-cli watch SFO LIS 2026-08-15 --cabin business --quiet && say 'new deal'
    
特定服务模式
  • explore-deal-rating — 使用 Pointhound 的 scout.pointhound.com/places/search 中的 dealRating 和 isTracked 字段,发现某个大都市附近历史上高频出现优惠的机场;也可以选择接入 batch,获取这些机场的实时优惠。

    让 Agent 在分发搜索前缩小范围:“帮我找纽约附近某地出发的便宜优惠”只需一条命令,而不是三条。

    pointhound-pp-cli explore-deal-rating --metro NYC --min-rating high --limit 5 --agent
    
  • transferable-sources — 给定一个航空公司兑换计划(例如 United MileagePlus),列出所有可向其转入积分的计划,以及兑换比例和转账时间(instant 或 up_to_72)。

    快速查询“我能通过 Capital One 转到 United 吗?”,无需记住表格。

    pointhound-pp-cli transferable-sources united-mileageplus --json
    

HTTP 传输

此 CLI 使用兼容 Chrome 的 HTTP 传输来访问面向浏览器的端点。常规 API 调用无需常驻浏览器进程。

发现信号

此 CLI 根据浏览器观察到的流量上下文生成。

命令参考

offers — 搜索会话返回的航班优惠

  • pointhound-pp-cli offers filter_options — 获取给定搜索会话可用的可筛选条件(积分卡计划、航空公司计划、航空公司)。
  • pointhound-pp-cli offers list — 列出已有搜索会话的航班优惠,可选筛选条件和排序方式。
查找合适的命令

当你知道想做什么,却不知道该用哪个命令时,可以直接询问 CLI:

pointhound-pp-cli which "<capability in your own words>"

which 会根据自然语言能力查询,从此 CLI 精选的功能索引中找出最匹配的命令。退出代码 0 表示至少有一个匹配项;退出代码 2 表示没有足够可信的匹配项——请改用 --help,或使用更具体的查询。

使用示例

今年秋天,我可以用 Chase UR 飞去哪里,乘坐商务舱?
pointhound-pp-cli from-home SFO --balance "ur:250000" --search-ids ofs_xxx --cabin business --month 2026-10 --json --select destinationCode,bestEffectivePoints,sourceIdentifier

from-home 会在本地计算转点比例;--select 会将响应缩减为四个字段,避免 Agent 被过多优惠详情淹没。

监控一条难搜的航线,等待新优惠
pointhound-pp-cli watch SFO HND 2026-12-22 --search-id ofs_xxx --cabin business --quiet

watch 仅在有变化时以代码 2 退出,因此只有出现实际消息时才会触发 &&。可将其接入 launchd 或 cron。

上周与今天的 SFO-LIS 航线情况有什么变化?
pointhound-pp-cli drift SFO LIS 2026-06-15 --cabin economy --json

drift 会在本地 SQLite 中合并两个快照,并显示每项优惠的新增、更便宜或已消失状态——这是网页界面无法实现的查询。

商务舱飞 SFO-NRT 的最佳月份
pointhound-pp-cli calendar --search-ids ofs_a,ofs_b,ofs_c --cabin business --json

跨 12 个月分发搜索,并按每月最低价分组。

哪些积分计划可以转入 Aeroplan?
pointhound-pp-cli transferable-sources united --search-id ofs_xxx --json

在本地查询 Pointhound 的 transferOptions 目录。网页端无法实现。

身份验证设置

大多数 CLI 功能都可匿名使用——航班报价读取、筛选条件、机场自动补全、信用卡目录。只有 top-deals-matrix 和 search 命令需要身份验证,通过 pointhound-pp-cli auth status 完成——CLI 会从 Chrome 读取你现有的 Pointhound 登录 Cookie(cf_clearance + ph_session),因此无需单独的令牌。

运行 pointhound-pp-cli doctor 验证设置。

Agent 模式

在任何命令后添加 --agent。相当于:--json --compact --no-input --no-color --yes。

  • 可管道传输 — JSON 输出到 stdout,错误输出到 stderr

  • 可筛选 — --select 保留部分字段。点分路径可深入嵌套结构;数组会逐元素遍历。对于响应冗长的 API,这对控制上下文大小至关重要:

    pointhound-pp-cli offers list --search-id 550e8400-e29b-41d4-a716-446655440000 --agent --select id,name,status
    
  • 可预览 — --dry-run 显示请求但不发送

  • 适合离线使用 — 如果本地 SQLite 存储可用,同步/搜索命令可使用该存储

  • 非交互式 — 不会提示输入,所有输入都通过标志传入

  • 只读 — 请勿使用此 CLI 执行创建、更新、删除、发布、评论、点赞、邀请、下单、发送或其他修改请求

响应封装

从本地存储或 API 读取数据的命令,会将输出封装在来源信息中:

{
  "meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
  "results": <data>
}

解析 .results 获取数据,并查看 .meta.source 确认数据来自实时来源还是本地存储。只有当 stdout 连接到终端时,才会将易读的 N results (live) 摘要输出到 stderr——通过管道接收或由 Agent 使用时,stdout 只包含纯 JSON。

Agent 反馈

当你(或 Agent)发现此 CLI 有任何问题时,请记录下来:

pointhound-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
pointhound-pp-cli feedback --stdin < notes.txt
pointhound-pp-cli feedback list --json --limit 10

条目会存储在本地的 ~/.pointhound-pp-cli/feedback.jsonl。只有在设置了 POINTHOUND_FEEDBACK_ENDPOINT,并且传入了 --send 或设置了 POINTHOUND_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”模式。

pointhound-pp-cli profile save briefing --json
pointhound-pp-cli --profile briefing offers list --search-id 550e8400-e29b-41d4-a716-446655440000
pointhound-pp-cli profile list --json
pointhound-pp-cli profile show briefing
pointhound-pp-cli profile delete briefing --yes

显式标志始终优先于配置值;配置值优先于默认值。agent-context 会在 available_profiles 下列出所有可用配置,让 Agent 能在运行时发现这些配置。

退出代码

代码含义
0成功
2用法错误(参数错误)
3未找到资源
4需要身份验证
5API 错误(上游问题)
7请求过于频繁(等待后重试)
10配置错误

参数解析

解析 $ARGUMENTS:

  1. 为空、help 或 --help → 显示 pointhound-pp-cli --help 输出
  2. 以 install 开头 → 以 mcp 结尾 → 安装 MCP;否则 → 参见上文的先决条件
  3. 其他任何内容 → 直接使用(作为 CLI 命令执行,并附加 --agent)

MCP 服务安装

从此 CLI 已发布的 public-library 条目或预构建发行版中安装 MCP 二进制文件,然后进行注册:

claude mcp add pointhound-pp-mcp -- pointhound-pp-mcp

验证:claude mcp list

直接使用

  1. 检查是否已安装:which pointhound-pp-cli 如果未找到,请提供安装选项(参见本技能顶部的先决条件)。
  2. 根据用户查询,从上方的独特功能和命令参考中选择最合适的命令。
  3. 使用 --agent 标志执行:
    pointhound-pp-cli <command> [subcommand] [args] --agent
    
  4. 如果存在歧义,请查看子命令帮助:pointhound-pp-cli <command> --help。

评论

支持 Markdown