关于 pp-open-meteo
pp-open-meteo 是供 Agent 使用的只读天气与气候命令行技能,调用 Open-Meteo CLI 查询和分析数据。除预报与历史记录外,还可比较气候常态、追踪预报变化并评估活动条件。
主要功能
- 01天气预报与历史数据
- 02空气质量、海洋与洪水数据
- 03比较天气与气候常态
- 04追踪预报变化与准确度
- 05跨地点条件面板
- 06活动适宜度判断
适用场景
- 01规划旅行并比较多个地点
- 02判断当前天气是否异常
- 03查看预报相较上次的变化
- 04评估冲浪、滑雪或徒步条件
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mvanhorn/ printing-press-library --skill pp-open-meteo安装后在 Claude Code 中输入/pp-open-meteo确认已加载。
详细介绍
Open-Meteo — Printing Press CLI
前提条件:安装 CLI
此技能使用 open-meteo-pp-cli 二进制文件。**调用此技能中的任何命令前,必须确认 CLI 已安装。**如果尚未安装,请先安装:
- 使用 Printing Press 安装程序安装。在 macOS/Linux 上,二进制文件默认安装到
$HOME/.local/bin;在 Windows 上,默认安装到%LOCALAPPDATA%\Programs\PrintingPress\bin:npx -y @mvanhorn/printing-press-library install open-meteo --cli-only - 验证:
open-meteo-pp-cli --version - 确保报告的安装目录位于将调用此技能的 Agent/运行时的
$PATH中。
如果 npx 安装失败(没有 Node、离线等),请改用直接通过 Go 安装的方式(需要 Go 1.26.6 或更高版本):
go install github.com/mvanhorn/printing-press-library/library/other/open-meteo/cmd/open-meteo-pp-cli@latest
如果安装后 --version 报告“command not found”,则运行时无法在 $PATH 中找到二进制文件目录。验证成功前,请勿执行技能命令。
何时使用此 CLI
对于任何不需要付费商业协议的天气、气候或空气质量问题,都可以使用此 CLI。它涵盖天气预报(16 天、多种模型)、历史数据(ERA5,始于 1940 年)、海浪、含花粉数据的空气质量、河流洪水流量、CMIP6 气候预测和集合预报。如果用户询问的是决策或异常情况,而不是原始数据,请优先使用新颖的命令(compare、normals、weather-mix、panel、is-good-for)。
何时不要使用此 CLI
如果请求涉及创建、更新、删除、发布、评论、点赞、邀请、订购、发送消息、预订、购买或更改远程状态,请勿启用此 CLI。此打印版 CLI 仅提供用于检查、导出、同步和分析的只读命令。
独特功能
其他任何用于此 API 的工具都不具备这些功能。
可累积的本地状态
-
forecast diff— 查看此位置自上次获取预报以来的具体变化,包括温度差、新增降水时段和天气代码变化。当 Agent 需要根据预报变化采取行动(发送警报、重新规划),而不是查看当前预报本身时,请使用此命令。
open-meteo-pp-cli forecast diff --place Seattle --json --select changes -
normals— 计算任意(位置、一年中的日期、变量)组合的 30 年气候常态值(也可指定其他时间跨度)。用于回答“常态与当前情况相比如何”。也可用于跨年代的旅行或时间安排建议。
open-meteo-pp-cli normals --place Seattle --month 7 --variable temperature_2m_max --years 30 --json -
accuracy— 对于任意过去日期,将模型预测(缓存的快照)与实际情况(存档真实数据)进行比较。用于评估预报随时间变化的可信度,或排查“预报为什么变了?”这类问题。
open-meteo-pp-cli accuracy --place Seattle --date 2025-12-25 --variable temperature_2m_max --json -
weather-mix— 计算某地任意历史时间段内 WMO 天气状况(晴天、降雨、风暴等)的分布百分比。用于旅行规划、气候概述,或回答“11 月经常下雨吗?”这类问题。
open-meteo-pp-cli weather-mix --place Seattle --past-days 30 --json
跨 API 联合查询
-
compare— 将今天(或任意预报时段)的天气与该日期、该地点的 30 年气候常态值进行比较。当用户询问“这种天气反常吗?”或“与历史情况相比如何?”时使用——单次 API 调用无法回答这类问题。
open-meteo-pp-cli compare --place Seattle --metric temperature_2m_mean --years 30 --json -
is-good-for— 根据综合预报、海洋和空气质量阈值,对冲浪、滑雪、徒步、跑步、骑行给出结论(GO / CAUTION / STOP)。当用户询问决策问题而非数据问题时使用。这样 Agent 无需综合 3 次端点调用的结果即可给出结论。
open-meteo-pp-cli is-good-for surfing --place "Half Moon Bay, CA" --json
面向 Agent 的基础设施
-
panel— 使用一条命令并排获取 N 个位置的快照面板——可行时通过单次 Open-Meteo 调用批量获取。用于一次性比较多个位置的情况;比 N 次单独调用更省钱、更快。
open-meteo-pp-cli panel --place Seattle,Berlin,Tokyo --current temperature_2m,wind_speed_10m,weather_code --json
命令参考
air-quality — 空气质量和花粉:PM2.5、PM10、臭氧、NO2、SO2、CO、灰尘、花粉、欧盟/美国 AQI、UV。
open-meteo-pp-cli air-quality— 空气质量预报和历史数据:污染物、AQI、花粉、UV。
archive — 历史天气数据(ERA5 再分析数据,1940 年至约 5 天前)。变量范围与预报相同。
open-meteo-pp-cli archive— ERA5 的历史逐小时/逐日天气观测数据(1940 年至约 5 天前)。
climate — SSP 情景下的 CMIP6 气候变化预测(1950-2050 年)。
open-meteo-pp-cli climate— SSP 情景下任意 (lat, lon) 的每日 CMIP6 气候预测。模型包括 EC_Earth3P_HR、CMCC_CM2_VHR4 等。
elevation — 数字高程模型查询。每次调用最多支持 100 个坐标。
open-meteo-pp-cli elevation— 查询一个或多个坐标对的海拔(单位:米),最多 100 个。
ensemble — 集合预报(所有模型成员),用于量化不确定性。
open-meteo-pp-cli ensemble— 逐小时集合预报;返回所有集合成员,以便量化不确定性。
flood — 河流流量/洪水预报(GloFAS)。
open-meteo-pp-cli flood— GloFAS 的每日河流流量预报和历史数据。
forecast — 天气预报(最长 16 天)。免费,无需 API 密钥,支持逐小时、逐日和当前天气分辨率。默认模型为当前最佳可用模型;传入 --models 可指定模型(gfs_seamless、ecmwf_ifs025、dwd_icon、jma_seamless、metno_seamless、gem_seamless、meteofrance_arpege_world)。
open-meteo-pp-cli forecast— 一个或多个坐标的 7-16 天天气预报。传入以逗号分隔的纬度/经度可批量获取。
geocode — 地理编码:按名称/邮政编码搜索地点,或按 ID 查询地点。
open-meteo-pp-cli geocode get— 按 Open-Meteo 地理编码 ID 查询单个地点。open-meteo-pp-cli geocode search— 按名称(“Berlin”、“Springfield, IL”)或邮政编码搜索全球地点。
marine — 海洋天气:波高、周期、方向、涌浪分量、海表温度。
open-meteo-pp-cli marine— 海洋预报/历史数据:波浪、涌浪、海表温度。
seasonal — 使用 NCEP CFSv2 的季节预报(最长 9 个月)。
open-meteo-pp-cli seasonal— 以 6 小时为分辨率的 9 个月季节预报。默认模型为 NCEP CFSv2。
新鲜度契约
此 CLI 仅对已注册的、由存储支持的读取命令路径负责有限范围的新鲜度。在 --data-source auto 模式下,这些路径会检查 sync_state,并可能在读取本地数据前执行有限刷新。--data-source local 不会刷新。--data-source live 会读取 API,且不会修改本地存储。设置 OPEN_METEO_NO_AUTO_REFRESH=1 可跳过新鲜度钩子,同时不改变数据源选择。
JSON 输出使用生成的来源信息封装时,新鲜度元数据会出现在 meta.freshness 中。请将其视为所涵盖命令路径的当前缓存新鲜度,而非完整历史回填或 API 特定增强的保证。
查找合适的命令
知道要做什么,但不确定该用哪个命令时,可以直接询问 CLI:
open-meteo-pp-cli which "<capability in your own words>"
which 会根据自然语言能力查询,从此 CLI 精选的功能索引中匹配最合适的命令。退出代码 0 表示至少有一个匹配项;退出代码 2 表示没有可信匹配项——请改用 --help 或使用范围更窄的查询。
示例
为 Agent 选取精简的预报数据片段
open-meteo-pp-cli forecast --latitude 47.6062 --longitude -122.3321 --hourly temperature_2m,precipitation,weather_code --forecast-days 3 --json --select hourly.time,hourly.temperature_2m,hourly.weather_code
使用 --select 和点分隔路径,缩小深层嵌套的时间序列数组范围。Open-Meteo 响应可能达到数十 KB;此选项会将其精简为你实际需要的列。
对比明日预报的变化
open-meteo-pp-cli forecast diff --place Seattle --json
将当前预报与该地点先前缓存的预报进行比较,仅输出发生变化的时段。
异常检查:这个温度是否异常?
open-meteo-pp-cli compare --place Seattle --metric temperature_2m_mean --years 30 --json
将该日期和地点对应的 30 年 ERA5 档案常态数据与当前预报进行合并比较。
旅行规划并排面板
open-meteo-pp-cli panel --place "Seattle,Berlin,Tokyo" --current temperature_2m,weather_code --json
Open-Meteo 原生支持以逗号分隔的坐标;CLI 会批量发起调用,并按地点标注每个结果。
西雅图 10 月的降雨频率是多少?
open-meteo-pp-cli weather-mix --place Seattle --start-date 2024-10-01 --end-date 2024-10-31 --json
将历史小时级 WMO 代码汇总为类别直方图(晴天/降雨/风暴等所占百分比)。
身份验证设置
无需身份验证。
运行 open-meteo-pp-cli doctor 验证设置。
Agent 模式
在任意命令中添加 --agent。它会展开为:--json --compact --no-input --no-color --yes。
-
可通过管道传输 — JSON 输出到 stdout,错误输出到 stderr
-
可筛选 —
--select保留部分字段。点分隔路径可深入嵌套结构;数组会逐元素遍历。对于内容冗长的 API,这对控制上下文大小至关重要:open-meteo-pp-cli air-quality --agent --select id,name,status -
可预览 —
--dry-run显示请求,但不发送 -
适用于离线场景 — 有本地 SQLite 存储时,同步/搜索命令可以使用该存储
-
非交互式 — 不会提示输入;所有输入均通过标志传入
-
只读 — 请勿使用此 CLI 执行创建、更新、删除、发布、评论、点赞、邀请、下单、发送或其他修改数据的请求
响应封套
从本地存储或 API 读取数据的命令会将输出包装在一个来源信息封套中:
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}
解析 .results 获取数据,解析 .meta.source 判断数据来自实时来源还是本地来源。只有当 stdout 连接到终端时,才会向 stderr 输出类似 N results (live) 的人类可读摘要;通过管道传输或由 Agent 消费时,stdout 只包含纯 JSON。
Agent 反馈
当你(或 Agent)发现此 CLI 有异常之处时,请记录下来:
open-meteo-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
open-meteo-pp-cli feedback --stdin < notes.txt
open-meteo-pp-cli feedback list --json --limit 10
条目会保存在本地 ~/.open-meteo-pp-cli/feedback.jsonl。除非设置了 OPEN_METEO_FEEDBACK_ENDPOINT,并且传入了 --send 或将 OPEN_METEO_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”模式。
open-meteo-pp-cli profile save briefing --json
open-meteo-pp-cli --profile briefing air-quality
open-meteo-pp-cli profile list --json
open-meteo-pp-cli profile show briefing
open-meteo-pp-cli profile delete briefing --yes
显式标志始终优先于配置文件中的值;配置文件中的值优先于默认值。agent-context 会在 available_profiles 下列出所有可用配置文件,以便执行内省的 Agent 在运行时发现它们。
退出码
| 代码 | 含义 |
|---|---|
| 0 | 成功 |
| 2 | 用法错误(参数错误) |
| 3 | 未找到资源 |
| 5 | API 错误(上游问题) |
| 7 | 请求过多(等待后重试) |
| 10 | 配置错误 |
参数解析
解析 $ARGUMENTS:
- 为空、
help或--help→ 显示open-meteo-pp-cli --help的输出 - 以
install开头 → 以mcp结尾 → 安装 MCP;否则 → 参见上文的先决条件 - 其他情况 → 直接使用(将其作为 CLI 命令执行,并添加
--agent)
MCP 服务安装
- 安装 MCP 服务:
go install github.com/mvanhorn/printing-press-library/library/other/open-meteo/cmd/open-meteo-pp-mcp@latest - 注册到 Claude Code:
claude mcp add open-meteo-pp-mcp -- open-meteo-pp-mcp - 验证:
claude mcp list
直接使用
- 检查是否已安装:
which open-meteo-pp-cli如果未找到,请提供安装选项(参见本技能顶部的先决条件)。 - 根据上述独特功能和命令参考,选择最符合用户查询的命令。
- 使用
--agent标志执行:open-meteo-pp-cli <command> [subcommand] [args] --agent - 如果存在歧义,请查看子命令帮助:
open-meteo-pp-cli <command> --help。