AirplaneMode is a macOS CLI and menu bar app that uses a local MASQUE relay to provide:
1. Jitter. All of the mac os network simulators I tried apply a fixed constant delay with no jitter model. Real airplane satellite WiFi follows a log-normal distribution — most packets arrive near base RTT, but a few percent spike to 5-10x. AirplaneMode samples jitter from a log-normal distribution fit to real flight measurements.
2. Userspace, with domain scoping and UDP support. No root required. A .mobileconfig profile routes only matched domains through the relay — the rest of your network is unaffected. The relay operates at the UDP packet level via MASQUE, so HTTP/3 and QUIC congestion control respond naturally to simulated conditions.
3. Realistic Profiles. Airlines use performance-enhancing proxies that inflate speed test results. Presets are calibrated from real flights using TLS handshake timing, throughput, and traceroute data collected in the air.
Existing profiles (looking for help in calibrating more):
1. Turkish Airlines JFK→IST (Panasonic Ku-band GEO): ~870ms RTT, 86 KB/s, 2.3s jitter P99. 2. JetBlue domestic (Viasat Ka-band): ~593ms RTT, 3.3 Mbps. 3. American Airlines LGA→EYW (Intelsat GEO): ~715ms RTT, 4.2 Mbps.
If you’re on a flight with Wifi, the repo includes a script to grab traces and a GitHub issue template for submitting them. Just run `sudo ./scripts/flight-bench.sh` a few times during the flight and submit the JSON files. We'll fit a profile from your data.
101008•1h ago
Most airlines redirects you to a website to pay for the wifi, and it seems they block all requests to different domains. Problem is, these platforms suggest to pay with Google Pay / Google Wallet, but if you try to do that, Google Pay DNS are blocked, so the request fails and you can't use your card with Google Pay. So I need to take my card from my physical wallet and type all the digits.
jlreyes•1h ago