ATC for Your Flight

Listen to live ATC for your flight anywhere in U.S. airspace, without guessing which frequency it’s on.

What is this / why is it helpful?

ATC conversations move fast. A flight will typically transition through multiple controllers: groundtowerdeparture / approachmultiple different centers, and then back down again on arrival. The right frequency depends on where the aircraft is right now.

This tool uses the plane's live position and destination (OpenSky/Airlabs) plus inference logic from telemetry (ex: at what position & altitude you've likely switched from center to an approach controller, or whether you're on departure or arrival in a terminal area) to pick the most likely LiveATC feeds, and gives you one "best single feed" button so you can start listening quickly. Note: all airlines including international carriers are supported, but only U.S. airspace is covered (for now).

Demo video here!

Created by @bobcowherd: As an aviation enthusiast, I love listening to ATC online when I fly on commercial flights. It’s very tough to guess which feeds to listen to as you transition frequencies, and this is an impossible barrier for non-aviation geeks to overcome. This tool makes it easy for anyone to follow along with their flight’s current ATC feed, and I hope it exposes more people to a love of aviation. Much appreciation to LiveATC, OpenSky, and AirLabs for their amazing service that make this possible!

Tip: paste a callsign like DAL2126, DAL 2126, or JBU-117. ICAO & IATA codes both work (SWA or WN for Southwest).
Tip: Use "Refresh Now" for new feed recommendations based on the flight's position.
Tip: try airline+number (UAL367). ICAO & IATA codes both work (SWA or WN for Southwest).
Built on Replit (Python/MCP server) using OpenSky, AirLabs & LiveATC links.
🕒 Version history
A running log of major changes.
  • v0.1 — MVP
    OpenSky callsign → position lookup; MCP/ChatGPT-friendly API returning JSON + markdown.
  • v0.2 — UI v1
    Dark UI, summary, Primary/Backup lists, “best single feed”, and “Why these feeds?” explainer.
  • v0.3 — OpenSky robustness
    OAuth token support + retry; recent-flight lookup via /flights/aircraft.
  • v0.4 — Airport coverage
    Expanded known-airport list (top U.S. airports + more); destination/origin preference when nearby.
  • v0.5 — Terminal ranking
    Terminal-mode ranking (App/Dep vs Tower/Ground); “tower-first” at very low altitude.
  • v0.6 — Smart terminal approaches & AirLabs integration
    Calling AirLabs for destination airports, allowing smart selection of approach feeds based on destination rather than proximity in busy airspaces.
  • v0.7 — Alt feed penalties
    Penalized “Alt/Alternate/Backup/Secondary” feeds so main feeds are preferred.
  • v0.8 — Center selection improvements
    Avoid “Low” sectors above ~FL240; de-prioritize Tower/App combos in center mode; treat “Sector XX” as center even without literal “Center”.
  • v0.9 — Frontend map
    Added Leaflet map; fixed disappearing map on refresh/second query by stabilizing the map container DOM.
  • v0.10 — Plane marker
    Replaced default marker with airplane PNG and added rotation based on track heading.
  • v0.11 — IATA callsigns
    Added IATA→ICAO conversion for common carriers (e.g., WN→SWA, UA→UAL) and debugged normalization mismatches.
  • v0.12 — Phase-aware Terminal Approach / Departure logic
    Better selection of approach vs. departure terminal feeds if separate feeds exist for a specific airport. (ex: Not giving you the approach feed when you're departing). Logic: use vertical speed if available, else endpoint-distance secondarily, and bearing as a tertiarty tiebreaker.