Examples

Real examples for the Claude Code skills of the pegel plugin, one per skill: a request, the pegel commands the skill ran, and the answer Claude gave.

Every example ran against the live API on 15 September 2026 with pegel 0.0.5. The data changes, so your results will differ; the ids and keys shown work for trying the requests yourself. Long lists are shortened.

To try them, install the CLI and the plugin — see SKILLS.md.

Skills: pegel-river-overview · pegel-stations-geojson · pegel-trend · pegel-water-level-check

pegel-river-overview

Is the Elbe running low right now? Show me the gauges along the river.

pegel --compact waters | jq -r '.[] | [.shortname, .longname] | @tsv'          # ELBE
pegel --compact stations list --waters ELBE --include-timeseries --include-current
pegel --compact stations list --waters ELBE --include-current | jq '.[0] | keys'  # no timeseries key: embed dropped

Without --include-timeseries, the current reading is silently dropped, so the skill passed both flags. It kept stations that have no W series in the list and marked them, so the table has all 73 gauges, not just the 67 that have a level.

ELBE: 73 gauges, 0 high, 38 low water (as of 15 Sep 2026, 17:45 local time)
  Every gauge from SCHÖNA (km 2.05) down to HOHNSTORF (km 568.987) reports low.
  ARTLENBURG and GEESTHACHT are normal. The 27 gauges from WEHR GEESTHACHT UP to
  CUXHAVEN STEUBENHÖFT have no mean-low/high reference (unknown).

  km       gauge                   level    state
  2.05     SCHÖNA                   71 cm   low ⬇
  55.63    DRESDEN                  56 cm   low ⬇
  154.15   TORGAU                   54 cm   low ⬇
  294.82   BARBY                    26 cm   low ⬇
  326.67   MAGDEBURG-STROMBRÜCKE    48 cm   low ⬇
  350.64   ROGÄTZ                   -3 cm   low ⬇
  453.98   WITTENBERGE              77 cm   low ⬇
  504.7    DÖMITZ                    5 cm   low ⬇
  568.987  HOHNSTORF               412 cm   low ⬇
  573.86   ARTLENBURG              410 cm   normal
  583.393  GEESTHACHT              404 cm   normal
  623.1    HAMBURG ST. PAULI       636 cm   unknown
  724      CUXHAVEN STEUBENHÖFT    652 cm   unknown
  … 60 more in the full table

  No water-level series (6): PRELOUC (km -220.1, Q only), WITTENBERGGÜTE (km 1, TR only),
    and 4 LF/WT stations between km 641.5 and 685.1.
  Older readings: PIRNA 12:15, MÜHLBERG 14:45, NEU DARCHAU 14 Sep 23:00.
  Levels are in cm relative to each gauge's own zero, so they can't be compared between gauges.

Next steps offered: the trend at one gauge (e.g. DRESDEN) with pegel-trend.

pegel-stations-geojson

Make me a GeoJSON of the Danube gauges with their current water levels, for QGIS.

pegel --compact stations list --waters DONAU --include-timeseries --include-current | jq '{type:"FeatureCollection", features: [ … (.timeseries[]? | select(.shortname=="W")) as $w … ]}' > pegel-donau.geojson   # 25 features, 9 with [null, null]
pegel --compact stations list --waters DONAU --include-timeseries --include-current > donau-raw.json   # 27 stations
pegel --compact stations list --waters DONAU --include-timeseries --include-current | jq '{type:"FeatureCollection", features: [ .[] | select(.longitude != null and .latitude != null) | … ([.timeseries[]? | select(.shortname=="W")][0]) as $w … ]}' > pegel-donau.geojson

The first file failed the validity check. 9 stations have no coordinates, and the stock one-liner had silently dropped the 2 stations without a W series. The skill looked at the raw listing, skipped the stations without coordinates, and kept the no-W stations with a null level. The rewrite replaced its own default file, so no confirmation was needed.

Wrote pegel-donau.geojson (8.7 KB): one FeatureCollection with 18 gauge points on the DONAU.
  Dropped 9 of 27 stations with no longitude/latitude: 8 VIA DONAU gauges
    (THEBNERSTRASSL … WILHERING) and KACHLET WEHR UP.
  Properties: shortname, longname, km, agency, water, level (cm), unit, state, measuredAt
  state:  low 11 · normal 2 (ERLAU, SCHWABELWEIS) ·
          unknown 3 (ACHLEITEN, KELHEIM DONAU, INGOLSTADT LUITPOLDSTRASSE) ·
          no W series 2 (PASSAU LUITPOLDBRÜCKE DFH, PASSAU STEINBACHBRÜCKE DFH, level null)
  Checks: parses as one FeatureCollection; coordinates are numeric [lon, lat],
          lon 11.426–13.587, lat 48.567–49.024.

Next steps offered: colour the points by state in QGIS, or open the file at https://geojson.io.

pegel-trend

The Elbe at Dresden is low. Is it still falling? Show me the last week.

pegel --compact stations list --fuzzy-id dresden                 # DRESDEN, ELBE km 55.63
pegel --compact measurements DRESDEN W --start P7D
pegel --compact measurements DRESDEN W --start P1D

Over the full week the level barely changed, but there was a rise and fall in between. The skill added a 24-hour window to answer “still falling?” for right now.

DRESDEN (ELBE), water level W: last 7 days
  now 56 cm, was 55 cm  →  steady, +1 cm over 7 days
  range over window: 52–64 cm  (min 10 Sep 16:00, max last reached 13 Sep 15:30)
  A small rise to 63–64 cm on 12–13 Sep has gone: 64 → 56 cm since 13 Sep 15:30 (≈ 4 cm/day).
  Last 24 h: 57 → 56 cm, range 56–58 cm. It is barely falling now.
  window 2026-09-08T18:00+02:00 → 2026-09-15T17:45+02:00, 672 readings, 15-min spacing

Next steps offered: a CSV of the 7-day series for charting, or the low-water verdict via pegel-water-level-check.

pegel-water-level-check

How low is the Rhine at Kaub and Köln right now? Show me the gauge marks too.

pegel --compact stations list --fuzzy-id kaub                    # KAUB, RHEIN km 546.23
pegel --compact stations list --fuzzy-id köln                    # KÖLN, RHEIN km 688
pegel --compact current KAUB
pegel --compact current KÖLN
pegel --compact current KAUB Q
pegel --compact timeseries KAUB W                                # unit cm
pegel --compact stations get KAUB --include-timeseries --include-characteristic
pegel --compact stations get KÖLN --include-timeseries --include-characteristic

The user asked for the marks, so the skill also fetched each gauge’s characteristic values and listed them as published, with their codes. Both gauges publish MNW/MHW as well as GlW and the M_I/M_II marks.

Rhine water levels (as of 15 Sep 2026, 17:45 local time):
  KAUB  (km 546.23)   33 cm   low ⬇  (below mean low water)    stateNswHsw: normal
        marks (cm): GlW 77 · MNW 65 · NNW 25 (2018-10-22) · MW 208 · MHW 544 · M_I 460 · M_II/HSW 640
        TuGLW (fairway depth below GlW) 190 · flow Q 577 m³/s at 17:30
  KÖLN  (km 688)      76 cm   low ⬇  (below mean low water)    stateNswHsw: normal
        marks (cm): GlW 139 · MNW 114 · NNW 69 (2018-10-23) · MW 297 · MHW 725 · M_I 620 · M_II/HSW 830
        TuGLW 250

Both gauges are below GlW (Kaub by 44 cm, Köln by 63 cm). Kaub is 8 cm and Köln 7 cm
above their NNW, the lowest low water, set in October 2018.

Next steps offered: the trend at KAUB over the last week with pegel-trend.

View the source on GitHub →