Air Signal and Crew Air

The AQI where you are, the next 24 hours, and two plain sentences on when to run or close the windows.

Air Signal shows the air quality index for this hour and the next 24 hours for any place in the world, then says what to do in two sentences, like 'Good for a run until 3:00 PM'. Point the camera at the sky to check it for smoke, and report what you smell or see. No account, no ads.

Live on the web; iPhone app submitted, in review · Web, iPhone · Free, no ads

The AQI now and the next 24 hoursSky check verdict on a photoReport what the air is likeCommunity sensors, fires and the AirNow monitor

What it does

Now and the next 24 hours

This hour's AQI as a NowCast in its EPA colour band, the worst hour ahead, and 24 hourly bars in the place's own time zone. In the US it is checked against the nearest EPA AirNow monitor, with fires within 50 km and National Weather Service alerts.

Sky check

Point the camera at the horizon to see the nearest satellite-detected fire and air monitor on their compass bearings, or check a photo: a vision model says whether it shows smoke or haze and whether it looks worse than the forecast.

Reports

Say what the air is like (smoke smell, haze, ash, dust, chemical smell, clear) and how strong, 1 to 5. Each report goes with this hour's forecast, wind, nearest monitor and fire, and is queued on the phone for up to 35 hours if you are offline.

Map

Community sensors around you with raw PM2.5, satellite fire detections and the AirNow monitor.

Privacy

No account and no ads. To give you a forecast, the app sends the place you look at, rounded on the phone to about 1 km, to our server at airsignal.app. Sky photos pass through it once with faces painted over. A report carries a point rounded to about 1 km and no identifier.

  • Account: none. The app has no sign-in and no account.
  • Reaches us: The forecast place: coordinates rounded on the phone to 2 decimals (about 1 km) or a place name. Used to answer and cached by place for about 10 minutes, not stored with you.; Reports you send: kind, intensity 1 to 5, the minute observed, the point at 2 decimals, an optional sky smoke score. No heading, no photo, no install id. Kept 24 months.; A rate-limit code: a salted hash of your IP address, rotated daily and erased after 2 days.; Usage counts: app launched, forecast viewed, sky checked (see Analytics).
  • Other services: Apple (MapKit), TypeSafe (through our server)

Full privacy policy

About

Air Signal turns air quality and weather into a judgement about being outside: run, cycle, open the windows, let the kids out. It covers about 62,000 cities and, instead of one index number, scores 14 signals and says which one is costing the points, because “the air is clean but the UV will burn you in twenty minutes” is the useful sentence.

The 14 signals

Air (PM2.5), temperature, wind, UV, pressure, humidity, sea state, earthquakes, fire distance, pollen, geomagnetic activity, daylight, noise and the moon. Each is scored on its own curve in the Rust core (the ideal temperature is 23 °C, wind under 25 km/h, UV under 6), then combined.

Sensors and the model, resolved rather than averaged

Two sources: the CAMS atmospheric model through Open-Meteo, and Sensor.Community, about 15,000 citizen sensors. Cheap sensors read high in humidity or beside a road, and models miss local events, so where the two disagree the site says by how much and resolves it, weighting the sensors more as the gap grows. In Moscow the model said 130 µg/m³, ten sensors agreed on 6.7, and the answer is 6.2; an average would have been 68, a number that was true nowhere.

Crew Air, for outdoor crews

airsignal.app/crew answers, hour by hour for a site and a shift, what California’s wildfire-smoke rule (Cal/OSHA §5141.1) and heat rule (§3395) require. Built at the Stanford Cleantech Hackathon, 23-24 October 2026, and live and free since.

  • NowCast, not the daily mean. Open-Meteo’s PM2.5 AQI is a 24-hour average; the rule uses the current AQI, so the engine recomputes the EPA NowCast from hourly PM2.5.
  • Rules are data. One JSON rulebook per jurisdiction, not thresholds buried in code.
  • Checked against the ground. An AirNow monitor within 25 km that disagrees scales the forecast, cautiously (clamped to 0.5-3×); NASA VIIRS fires within 50 km raise a warning, and the wind draws each fire’s smoke cone.
  • A record and a signal. It prints the record an inspector asks for, and the same plan goes out as JSON for a dispatch system.

How it is built, and what it does with your data

One Rust core, airq, behind every surface: the CLI runs it natively, airsignal.app runs it compiled to WebAssembly on Cloudflare Workers, and the iPhone apps ask the site’s API, so every surface gives the same number from the same code. No account, no ads, no tracking beyond a page counter. Every page also answers in Markdown, with an OpenAPI document for agents.

Where to use it

How it was built

FAQ

Where does the number come from?

Open-Meteo's CAMS forecast, turned into a NowCast, the measure the EPA uses for the current hour. In the US it is also checked against the nearest EPA AirNow monitor, with NASA FIRMS fires and NWS alerts.

Does it work outside the US?

Yes, the forecast works anywhere. Fire detections and AirNow monitors are US only, so outside the US those cards are empty.

Is it a measurement where I stand?

No. It is a forecast at about 1 km. Trust your eyes and nose, and use the sky check or a report when they disagree.

Do I need an account?

No. There is no sign-in and no ads.

Privacy policy Support Crew Air privacyCrew Air support All products