pp-weather-goat — скилл погоды для Claude Code: прогноз и вердикты
Скилл для Claude и других агентов: погода, штормовые предупреждения NWS, качество воздуха и совет — ехать на велосипеде или нет.
npx skills add mvanhorn/printing-press-library --skill pp-weather-goat -a claude-codeЧто делает pp-weather-goat
Скилл оборачивает CLI weather-goat-pp-cli, который берёт данные из Open-Meteo и NWS. Ключ API не нужен. Агент вызывает команду и получает готовый ответ: текущие условия, прогноз на день, активные предупреждения. Отдельная команда go walk|bike|hike|commute|drive выдаёт вердикт GO / CAUTION / STOP с обоснованием — ветер, осадки, AQI, риск гололёда, и для каждой активности свои пороги.
Есть compare для двух и более городов рядом, normal — сравнение сегодняшних температур с исторической средней на ту же дату, breathe — AQI, пыльца и УФ с рекомендацией по нагрузке. Команда watch опрашивает NWS каждые 60 секунд во время активной непогоды и печатает новые предупреждения по мере поступления. Для утренней сводки достаточно задать домашнюю локацию через config set-location, дальше вызов без аргументов вернёт текущие условия, прогноз и алерты.
Перед первым запуском нужно поставить бинарник: npx -y @mvanhorn/printing-press-library install weather-goat --cli-only, затем проверить weather-goat-pp-cli --version. Если npx недоступен, есть запасной путь через go install — для него нужен Go 1.26.6 или новее. Скилл не подойдёт для гиперлокальной метеорологии и для предупреждений за пределами США: NWS работает только по Штатам. Если после установки --version пишет «command not found», значит каталог с бинарником не попал в $PATH — это повод проверить окружение агента, а не сам скилл.
Какие задачи решает
- получить вердикт, стоит ли ехать на велосипеде на работу
- сравнить погоду в двух городах на выходные
- узнать, не аномально ли жарко сегодня для этой даты
- проверить активные штормовые предупреждения NWS
- оценить качество воздуха и УФ перед пробежкой
Примеры запросов агенту
- какая сегодня погода в Сиэтле
- стоит ли ехать на велосипеде на работу
- сравни погоду в Портленде и Сан-Франциско на выходные
Как установить pp-weather-goat
1Через Skills CLI (Vercel)
npx skills add mvanhorn/printing-press-library --skill pp-weather-goat -a claude-code2Вручную: положить файлы
~/.claude/skills/pp-weather-goat/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/pp-weather-goat/
1Через Skills CLI (Vercel)
npx skills add mvanhorn/printing-press-library --skill pp-weather-goat -a codex2Вручную: положить файлы
.agents/skills/pp-weather-goat/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add mvanhorn/printing-press-library --skill pp-weather-goat -a cursor2Вручную: положить файлы
.cursor/skills/pp-weather-goat/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install mvanhorn/printing-press-library pp-weather-goat2Вручную: положить файлы
.github/skills/pp-weather-goat/SKILL.md1Через Skills CLI (Vercel)
npx skills add mvanhorn/printing-press-library --skill pp-weather-goat -a gemini-cli2Командой платформы
gemini skills install https://github.com/mvanhorn/printing-press-library --path cli-skills/pp-weather-goatВручную: положить файлы
.devin/skills/pp-weather-goat/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add mvanhorn/printing-press-library --skill pp-weather-goat -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о pp-weather-goat
Как установить pp-weather-goat в Claude?
Сначала поставьте бинарник: npx -y @mvanhorn/printing-press-library install weather-goat --cli-only. Затем добавьте сам скилл: npx skills add mvanhorn/printing-press-library --skill pp-weather-goat -a claude-code. Проверьте установку командой weather-goat-pp-cli --version.
Что делает pp-weather-goat?
Отвечает на вопросы о погоде, прогнозе, осадках, качестве воздуха, пыльце и УФ. Отдельно выдаёт вердикт по активности — идти пешком, ехать на велосипеде, в поход, на работу или за рулём.
Нужен ли ключ API?
Нет. Данные идут из Open-Meteo и NWS, авторизация не требуется. Для запасного способа установки через go install понадобится Go 1.26.6 или новее.
Исходный текст
SKILL.md · Apache-2.0
---
name: pp-weather-goat
description: "Use this skill whenever the user asks about weather, forecasts, temperature, rain, storms, severe weather alerts, air quality, pollen, UV, or wants an activity recommendation (can I walk / bike / hike / commute / drive given the weather). Weather CLI powered by Open-Meteo (global, no auth, unlimited) + NWS (US severe weather). No API key. Triggers on phrasings like 'what's the weather', 'is it going to rain today', 'any storms coming', 'should I bike to work', 'how's the air quality', 'compare NYC and LA weather this weekend', 'is this unusually hot for April'."
author: "Trevin Chow"
license: "Apache-2.0"
argument-hint: "<command> [args] | install cli|mcp"
allowed-tools: "Read Bash"
metadata:
openclaw:
requires:
bins:
- weather-goat-pp-cli
install:
- kind: go
bins: [weather-goat-pp-cli]
module: github.com/mvanhorn/printing-press-library/library/other/weather-goat/cmd/weather-goat-pp-cli
---
<!-- GENERATED FILE — DO NOT EDIT.
This file is a verbatim mirror of library/other/weather-goat/SKILL.md,
regenerated post-merge by tools/generate-skills/. Hand-edits here are
silently overwritten on the next regen. Edit the library/ source instead.
See the repository agent guide, section "Generated artifacts: registry.json, cli-skills/". -->
# Weather GOAT — Printing Press CLI
## Prerequisites: Install the CLI
This skill drives the `weather-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. It defaults binaries to `$HOME/.local/bin` on macOS/Linux and `%LOCALAPPDATA%\Programs\PrintingPress\bin` on Windows:
```bash
npx -y @mvanhorn/printing-press-library install weather-goat --cli-only
```
2. Verify: `weather-goat-pp-cli --version`
3. Ensure the reported install directory is on `$PATH` for the agent/runtime that will invoke this skill.
If the `npx` install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.6 or newer):
```bash
go install github.com/mvanhorn/printing-press-library/library/other/weather-goat/cmd/weather-goat-pp-cli@latest
```
If `--version` reports "command not found" after install, the runtime cannot see the binary directory on `$PATH`. Do not proceed with skill commands until verification succeeds.
## When to Use This CLI
Reach for this when a user wants a weather lookup, storm or alert check, air-quality read, activity recommendation (bike, hike, walk, commute, drive) based on current conditions, or a "is today normal for this time of year" comparison. Particularly valuable as a morning-briefing source with `weather-goat-pp-cli` (no args → current + today's forecast + active alerts for your configured home location).
Don't reach for this when the user needs hyperlocal or commercial-grade meteorology (use a paid provider like Tomorrow.io or ECMWF), or for international severe-weather alerts (NWS is US-only).
## Unique Capabilities
### Activity verdicts — the differentiator
- **`go walk|bike|hike|commute|drive [location]`** — GO / CAUTION / STOP verdict for a specific activity, with reasoning.
_Turns "look at the weather" into "what should I do." Each activity has its own thresholds._
- **walk** — preparation advice (umbrella? jacket? sunscreen? layers?)
- **bike** — wind, rain, AQI, ice thresholds tuned for cycling
- **hike** — lightning, hypothermia risk, altitude UV
- **commute** — compares AM departure vs PM return weather (time-aware)
- **drive** — visibility, ice, wind gusts, NWS warnings
### Severe weather intelligence
- **`alerts [location]`** — Active NWS warnings: tornado, storm, flood, heat. Structured output with severity and area polygons.
- **`watch [location]`** — Poll NWS every 60 seconds during active severe weather. Prints new/updated alerts as they arrive. For running during a storm.
### Context and comparison
- **`normal [location]`** — Is today normal for this time of year? Compares today's high/low/precip against historical average for the same date.
- **`compare <location1> <location2> [...]`** — Side-by-side forecast for 2+ locations. Useful for travel planning or "which city is the weather better this weekend."
- **`morning-brief`** (or just `weather-goat-pp-cli` with no args, if `config set-location` was run) — Current conditions + today's forecast + active NWS alerts in one call. The daily-kickoff command.
### Air, UV, and pollen
- **`breathe [location]`** — AQI + pollen + UV with an exercise recommendation.
- **`air-quality [location]`** — Detailed AQI with PM2.5, ozone, etc.
- **`weather_codes`** — Reference for Open-Meteo weather code mappings (internal but useful when working with `--json` output).
## Command Reference
Core:
- `weather-goat-pp-cli` — Morning brief (requires `config set-location` first, or pass `[location]`)
- `weather-goat-pp-cli forecast [location]` — Multi-day forecast
- `weather-goat-pp-cli alerts [location]` — Active NWS severe weather
- `weather-goat-pp-cli history [location]` — Historical weather
Activity:
- `weather-goat-pp-cli go <activity> [location]` — `walk`, `bike`, `hike`, `commute`, `drive`
Air / environment:
- `weather-goat-pp-cli breathe [location]` — AQI + pollen + UV brief
- `weather-goat-pp-cli air-quality [location]` — Detailed AQI
Context:
- `weather-goat-pp-cli normal [location]` — Today vs historical average
- `weather-goat-pp-cli compare <loc1> <loc2>` — Side-by-side
- `weather-goat-pp-cli watch [location]` — Live NWS monitoring loop
Config + utility:
- `weather-goat-pp-cli config set-location <place>` — Set home location
- `weather-goat-pp-cli geocoding <name>` — Resolve place names to coordinates
- `weather-goat-pp-cli doctor` — Verify connectivity
## Recipes
### "Should I bike to work today?"
```bash
weather-goat-pp-cli go bike --agent
```
Returns a structured GO/CAUTION/STOP verdict with reasoning — wind speed, precipitation, AQI, temperature, ice risk — weighted for cycling specifically.
### Morning briefing after setting home location
```bash
weather-goat-pp-cli config set-location "Seattle, WA"
weather-goat-pp-cli --agent # morning brief — no args
```
Once location is saved, the no-arg invocation returns current conditions + today's forecast + active NWS alerts. Run from a shell startup script or cron at 7am.
### Travel decision — which city is better this weekend?
```bash
weather-goat-pp-cli compare "Portland, OR" "San Francisco, CA" --agent
```
Side-by-side current conditions for both. One glance picks the trip destination.
### Watch for severe weather during a warning
```bash
weather-goat-pp-cli watch --agent & # background poll every 60s
```
Runs indefinitely; prints JSON events to stdout when alerts change. Pipe into a logging tool or Slack webhook for alerting.
### Is today unusually hot?
```bash
weather-goat-pp-cli normal --agent
```
Returns today's high/low/precip alongside the 30-year historical average for the same calendar date. Easy "is this a heat wave" check.
## Auth Setup
**None required.** Open-Meteo is free and unlimited; NWS is free and US-public-data. The `auth` command exists for consistency but is a no-op.
Optional config:
- `WEATHER_GOAT_CONFIG` — override config file path
- Home location persisted to `~/.config/weather-goat-pp-cli/config.toml` via `config set-location`
## Agent Mode
Add `--agent` to any command. Expands to `--json --compact --no-input --no-color --yes`. Use `--forecast-days N` with `forecast`, and `--no-cache` to bypass the 15-minute GET cache.
### Filtering output
`--select` accepts dotted paths to descend into nested responses; arrays traverse element-wise:
```bash
weather-goat-pp-cli <command> --agent --select id,name
weather-goat-pp-cli <command> --agent --select items.id,items.owner.name
```
Use this to narrow huge payloads to the fields you actually need — critical for deeply nested API responses.
## Exit Codes
| Code | Meaning |
|------|---------|
| 0 | Success |
| 2 | Usage error |
| 3 | Location not found (geocoding failed) |
| 5 | API error (Open-Meteo or NWS issue) |
| 7 | Rate limited (very rare; Open-Meteo is unlimited) |
## Installation
```bash
go install github.com/mvanhorn/printing-press-library/library/other/weather-goat/cmd/weather-goat-pp-cli@latest
weather-goat-pp-cli config set-location "Your City, ST"
weather-goat-pp-cli doctor
```
### MCP Server
```bash
go install github.com/mvanhorn/printing-press-library/library/other/weather-goat/cmd/weather-goat-pp-mcp@latest
claude mcp add weather-goat-pp-mcp -- weather-goat-pp-mcp
```
## Argument Parsing
Given `$ARGUMENTS`:
1. **Empty, `help`, or `--help`** → run `weather-goat-pp-cli --help`
2. **`install`** → CLI; **`install mcp`** → MCP
3. **Activity queries ("should I bike/walk/hike...")** → `go <activity> [location] --agent`
4. **Severe weather ("any tornado warnings", "storms coming")** → `alerts [location] --agent`
5. **Comparison ("better weather in X or Y")** → `compare <loc1> <loc2> --agent`
6. **Anything else** → `forecast [location]` (or morning brief if no location passed and home is configured)
<!-- pr-218-features -->
## Agent Workflow Features
This CLI exposes three shared agent-workflow capabilities patched in from cli-printing-press PR #218.
### Named profiles
Persist a set of flags under a name and reuse them across invocations.
```bash
# Save the current non-default flags as a named profile
weather-goat-pp-cli profile save <name>
# Use a profile — overlays its values onto any flag you don't set explicitly
weather-goat-pp-cli --profile <name> <command>
# List / inspect / remove
weather-goat-pp-cli profile list
weather-goat-pp-cli profile show <name>
weather-goat-pp-cli profile delete <name> --yes
```
Flag precedence: explicit flag > env var > profile > default.
### --deliver
Route command output to a sink other than stdout. Useful when an agent needs to hand a result to a file, a webhook, or another process without plumbing.
```bash
weather-goat-pp-cli <command> --deliver file:/path/to/out.json
weather-goat-pp-cli <command> --deliver webhook:https://hooks.example/in
```
File sinks write atomically (tmp + rename). Webhook sinks POST `application/json` (or `application/x-ndjson` when `--compact` is set). Unknown schemes produce a structured refusal listing the supported set.
### feedback
Record in-band feedback about this CLI from the agent side of the loop. Local-only by default; safe to call without configuration.
```bash
weather-goat-pp-cli feedback "what surprised you or tripped you up"
weather-goat-pp-cli feedback list # show local entries
weather-goat-pp-cli feedback clear --yes # wipe
```
Entries append to `~/.weather-goat-pp-cli/feedback.jsonl` as JSON lines. When `WEATHER_GOAT_FEEDBACK_ENDPOINT` is set and either `--send` is passed or `WEATHER_GOAT_FEEDBACK_AUTO_SEND=true`, the entry is also POSTed upstream (non-blocking — local write always succeeds).
© Trevin Chow · Apache-2.0 · mvanhorn/printing-press-library