Examples

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

Every example ran against the live API on 15 September 2026 with luftqualitaet 0.0.6. 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: luftqualitaet-air-report · luftqualitaet-annual-report · luftqualitaet-station-finder

luftqualitaet-air-report

How has the air been at Leipzig-Mitte today?

luftqualitaet --compact --timeout 60000 meta --use measure --lang en     # "Leipzig-Mitte" -> station 1613
luftqualitaet --compact components --lang en
luftqualitaet --compact airquality --station 1613 --date-from 2026-09-15 --time-from 1 --date-to 2026-09-15 --time-to 24
luftqualitaet --compact thresholds --use airquality --component 3
luftqualitaet --compact thresholds --use airquality --component 5

The request ran at 17:43 CEST. The API reports in CET, so the data went up to the hour ending 15:00 CET, and that last hour only had particulate matter so far. The skill fetched the O₃ and NO₂ bands to explain why an hour counted as level 1.

Air quality — Leipzig-Mitte (station 1613, traffic), 15 Sep 2026, hours 01:00–15:00 CET
  Overall: VERY GOOD most of the day, peaking at GOOD (level 1).
  Driving pollutant: O₃ (ozone) around midday, 68–71 µg/m³ (61–120 band = level 1);
    NO₂ once in the morning rush, 23 µg/m³ at 08:00 (21–40 band = level 1).
  Worst hour: 13:00, index 1 (good), O₃ 71 µg/m³.
  PM₁₀ steady at 9–10 µg/m³, PM₂,₅ at 4–5 µg/m³ (level 0 all day).
  11 h very good, 4 h good, 0 h moderate or worse.
  15:00 is flagged incomplete: only PM₁₀/PM₂,₅ reported, no O₃/NO₂ yet.

luftqualitaet-annual-report

Which stations had the most ozone exceedance days last year?

luftqualitaet --compact components --lang en                 # O₃ = component 3
luftqualitaet --compact transgression-types --lang en
luftqualitaet --compact transgressions --component 3 --year 2025 --lang en
luftqualitaet --compact --timeout 60000 meta --use measure --lang en

The skill ranked on column [3], the yearly count. The monthly columns add up to it: 1,434 station-days in June and 1,186 in August. For 283 of the 286 stations the 2025 series runs to 2025-11-30.

Most ozone (O₃) exceedance days, 2025 (component 3), top 11 of 286 stations
   1. 37 days  680   Kleiner Feldberg, Glashütten     background · rural    · HE  (50.2219, 8.4461)
   2. 36 days  240   Schwarzwald-Süd, Münstertal      background · rural    · BW  (47.8099, 7.7645)
   2. 36 days  656   Fürth/Odenwald                   background · rural    · HE  (49.6535, 8.8173)
   2. 36 days  679   Wasserkuppe                      background · rural    · HE  (50.4977, 9.9359)
   5. 34 days  1845  Dreißigacker                     background · rural    · TH
   5. 34 days  1948  Schauinsland, Oberried-Hofsgrund background · rural    · UB
   7. 33 days  216   Mannheim-Nord                    background · suburban · BW
   7. 33 days  233   Ludwigsburg                      background · suburban · BW
   7. 33 days  283   Karlsruhe-Nordwest               background · urban    · BW
  10. 32 days  289   Schwäbische Alb, Erpfingen       background · rural    · BW
  10. 32 days  1454  Pfälzerwald-Hortenkopf           background · rural    · RP
  … 275 more
280 of 286 stations had at least one exceedance day. Only 6 had none, including
Rostock-Holbeinplatz, Garz and Dresden-Bergstr.
Every top station is a background site, mostly rural, and most are in Hesse and
Baden-Württemberg. Ozone is the opposite of NO₂, which is worst at traffic stations.

Next steps offered: the same ranking for 2024 to compare, or NO₂ exceedances (component 5).

luftqualitaet-station-finder

Which air-quality stations are there in Leipzig? I’d like one for city-centre traffic and one for background air.

luftqualitaet --compact --timeout 60000 meta --use measure --lang en
luftqualitaet --compact station-types --lang en
luftqualitaet --compact station-settings --lang en

Matching “Leipzig” as a substring of the station name also found “Leipziger Str.” stations in Frankfurt (Oder), Chemnitz and Berlin. The skill kept only stations whose city (idx 3) is Leipzig. Coordinates are shown lat first. The API stores them lon first.

Stations in Leipzig (active):
  1613  Leipzig-Mitte          traffic    · urban    · SN  51.3442, 12.3772  Willy-Brandt-Platz/Am Hallischen Tor
  1665  Leipzig Lützner Str.   traffic    · urban    · SN  51.3359, 12.3347  Lützner Str. 34/36
  1647  Leipzig-West           background · suburban · SN  51.3179, 12.2974  Nikolai-Rumjanzew-Str. 100
Dropped 1 decommissioned station: 1670 Leipzig-Thekla (background, active until 2020-12-31).

City-centre traffic: 1613 Leipzig-Mitte. Background: 1647 Leipzig-West.

Next steps offered: today’s air-quality index for 1613 or 1647 via luftqualitaet-air-report.

View the source on GitHub →