Takeoff and landing alerts
Send N12345 or UA1234 and TailWatcher checks it every minute. Each alert gives the nearest airport, altitude, speed and heading, and opens the plane on a live map when tapped.
TailWatcher follows the planes and flights your household cares about on free, public ADS-B data, and pings everyone's phone through the ntfy app the moment one takes off. It also keeps an eye on the plane flying in for your next trip, so you hear it's running late before the gate agent tells you.
Tail numbersFollow one specific aircraft, like a friend's Cessna or the club's Piper, by its registration.
Flight numbersFollow whichever plane the airline puts on UA1234 today. The alert names it: "UA1234 (N38473) departed".
Your tripsFollow the plane coming to pick you up, and hear early if it's going to make you late.
TailWatcher started as "tell me when Dad's plane takes off". It now handles the whole trip, for everyone in the house, from one small app on your Start9.
Send N12345 or UA1234 and TailWatcher checks it every minute. Each alert gives the nearest airport, altitude, speed and heading, and opens the plane on a live map when tapped.
Your flight's plane is usually still finishing an earlier flight somewhere else. TailWatcher follows it in and warns you when it will land within 45, then 20, minutes of your departure.
Share a trip with share 1 Mom & Dad and they get one note, then your departure and landing on the day. No app to learn: they tap one invite link to subscribe.
Enter the flight out and the flight home in one go: inbound UA1234 11/14 return UA5678 11/21.
Add a connection with then and hear how many minutes you'll have to make it.
Paste a booking confirmation, or drop in an .eml or .ics file, and the trip form fills itself in.
Everyone manages their own list by typing in their ntfy topic: N12345, list, remove.
info N12345 replies with the type, FAA owner city and state, engine, live position and a photo.
A web dashboard for the whole house, in a clean Modern theme or a split-flap departures Board.
Each plane shows roughly where it is, like "40 nm NE of Denver, CO", or Parked once it goes quiet.
Text someone a normal web link. It walks them through installing ntfy and subscribing in two taps.
When an airline renumbers or cancels your flight, TailWatcher notices and suggests the likely new number.
Each person gets their own watcher, alert list, landing setting and priority. A plane two people follow is checked once.
Community feeds adsb.fi and adsb.lol, polled in one batched request per cycle, with automatic fallback.
Use public ntfy.sh with zero setup, or keep every alert on your own hardware with StartOS's NTFY.
Four waypoints from install to the first alert. Most people are done in about five minutes.
Add TailWatcher to your Start9 server. It needs nothing else: no NTFY package, account or token.
Open the dashboard and tap + Add watcher for each person who wants alerts. A name is all it needs.
Connect phone makes a one-tap subscribe link for the free ntfy app. Text it to them, wherever they are.
Add a tail or flight number, from the dashboard or by texting it. The next takeoff lands on their lock screen.
Every minute, one batched request covers every plane anyone is watching.
Your airline app says "on time" right up until it doesn't. The plane you'll board is still in the air somewhere else, and that's the first place a delay shows. TailWatcher watches it for you.
inbound UA1234 N38473 dep 4:30pm with the plane from your airline's "Where's my plane?" screen.inbound UA1234 11/14 is enough. It finds your time and the assigned plane, and re-checks as the day gets closer.change.Both flights in one message. They're listed together, shared together, and cancelled together unless you add only.
dep 6pm from LAS means 6pm in Las Vegas. Every airport's zone ships with the app.
Family get your departure and landing, not every inbound-plane update. It only follows your flight around its own departure.
Each person's ntfy topic doubles as a chat with TailWatcher. They can add, rename and remove their own planes from the message bar, and nobody else's list.
| Send | Does |
|---|---|
N12345 or UA1234 | Watch a tail number or a flight number |
add N12345 Vegas trip | Watch it with a nickname |
UA1234 for 2 days | Stop automatically. Also 12h, until fri |
list | Your list, what's airborne, time left |
info N12345 | What it is, who owns it, where it is now |
inbound UA1234 11/14 | Follow the plane flying in for your flight |
share 1 Mom & Dad | Send them your takeoff and landing |
remove N12345 | Stop watching |
Send help for the full list, or read the text commands guide.
The Web UI shows every watcher, plane and trip in the house, recent alerts, and whether everything's healthy. Add and edit right on the page.

Modern: trip cards with a progress bar from Scheduled to At the airport, each person's planes with live status, and a feed of everything sent.Board: the same data on an airport departures board. Split-flap tiles flip only the letters that changed since the last refresh. Screenshots use sample data.
TailWatcher is a StartOS 0.4 service. It's on its way to the Start9 community registry; until then you can build and sideload it.
Build the .s9pk from source on any Linux or macOS machine with Docker, Node.js and start-cli.
# clone and build tailwatcher_x86_64.s9pk
git clone https://github.com/RogerUp-Labs/tailwatcher
cd tailwatcher
makeUpload the .s9pk with StartOS's Sideload option, or run make install to send it to the server in ~/.startos/config.yaml.
Start TailWatcher, open its Web UI, add a watcher for each person and tap Connect phone.
Paste a free AeroDataBox key in ⚙ Settings for automatic trip lookups, or switch alerts to your own NTFY with Set up NTFY for me.
Yes. TailWatcher is MIT-licensed, the ADS-B feeds are free community projects, ntfy.sh is free, and AeroDataBox's Basic plan is free. There's nothing to subscribe to.
Anything broadcasting ADS-B that a volunteer receiver can hear: airliners, business jets, most private planes and many helicopters, worldwide. Coverage on the ground at small airports is thinner, so a takeoff there may arrive as "is airborne" a few minutes later.
No. By default alerts go through the public ntfy.sh service, and each person's topic is a long random name. If you'd rather keep alerts on your own hardware, install NTFY on StartOS and tap Set up NTFY for me in Settings.
Yes, with the free ntfy app from the App Store. Use ntfy.sh for instant iPhone alerts: a self-hosted NTFY can't use Apple's push service, so alerts may wait until the app is opened.
The feeds TailWatcher uses are unfiltered, so planes in the FAA's LADD program still show up. Aircraft in the FAA's PIA privacy program broadcast a temporary address and can't be followed by tail number anywhere.
StartOS makes self-hosting a one-click affair, and a watcher that runs around the clock belongs on an always-on server, not a laptop. Your list of planes, trips and family members never leaves your house.
Alerts reach only the phones subscribed to each person's topic. The dashboard is reachable on your home network and VPN, and you can turn on a password for it. Invite links expire and can be cancelled.
It's an optional flight-schedule API. With a key, inbound UA1234 11/14 finds your departure time and the assigned plane by itself. Without one, you tell TailWatcher which plane it is, which your airline app usually shows.
Every 60 seconds by default, with every watched plane in a single batched request to stay well within the feeds' limits. If one feed says "too many requests", TailWatcher uses the other.
The watcher is plain Python 3.12 with no dependencies, so it can run anywhere, but the packaging, settings and setup flow are built for StartOS. Contributions for other platforms are welcome.
TailWatcher is MIT-licensed and made by RogerUp Labs. Bug reports, field reports from real flights and pull requests are all welcome.
Install TailWatcher, add the people you fly with, and let the planes tell you when they're moving.