Skip to main content

blips

Live aircraft and an approach-control game — drawn for the terminal.

PyPI Python License: MIT

blips turns community ADS-B and public weather data into a live, mouse-friendly air-traffic scope. It is pure Python, has no dependencies for its core experience, adapts to your terminal theme, and needs no account or API key.

Geography sets the stage: a dim block-colour sea with coastlines, borders and city labels picked out in braille. Live aircraft move over it as directional blips coloured by altitude, each with an ATC-style data block, a one-minute velocity leader and a fading trail. Between feed polls they glide on dead reckoning, so the sky moves the way the sky moves. Weather radar settles in underneath by default, showing the storms the aircraft are threading.

Install

With uv:

uv tool install blips

pipx install blips and pip install blips work too. blips requires Python 3.10+ on macOS or Linux, and a terminal with good Unicode support. Truecolor is recommended; 256- and 16-colour terminals are supported.

To try blips once without keeping it installed:

uvx blips --location jfk

Watch the sky

blips                              # centre on your approximate location
blips --location jfk               # or any place name
blips --location 51.47,-0.45 --zoom 1.5
blips --no-weather                 # leave out the weather-radar underlay
blips --print                      # one static frame for scripts or captures

Drag to pan, use + and - to zoom, and hover or click an aircraft for its full data readout and route when one is known.

Key Action
+ / - Zoom in / out
drag Pan the scope
hover / click Inspect an aircraft
t Toggle trails
r Toggle range rings
g Toggle ground traffic
w Toggle weather radar
space Pause the glide animation
q Quit

Work the frequency

There is an approach-control sim hiding inside the scope. The live feed steps aside and simulated flights become yours: vector and sequence them around a real airport, clear approaches, hand departures to centre, and keep everyone three miles and a thousand feet apart.

blips --game                     # the airport nearest you
blips --game tpa                 # Tampa approach
blips --game egll                # Heathrow director
blips --game billings            # somewhere the terrain pushes back
blips --game --calm              # a gentler opening shift

Everything is typed into the command bar. Instructions chain, and pilots read the full clearance back:

> rpa5655 l 230 c 40
  Brickyard 5655, turn left heading two three zero, climb and maintain 4,000.

The sector is built around real runways, navaids, terrain and weather. At supported US airports its named SIDs and STARs come from the FAA's published procedures and can be drawn, inspected and flown. Traffic thickens as the shift goes on; separation losses, go-arounds, clean handoffs, prompt landings and caught bad readbacks all reach the shift book.

Press ? in a shift for a two-page command card, or read the full game manual for phraseology, procedures, scoring, voices and everything the frequency eventually throws at you. The --game flag remains absent from blips --help; now you know where it is.

Pilot voices

voice or Ctrl+V makes the frequency audible, with one voice kept for each flight. macOS uses the system say voices. On Linux, install the optional local Piper backend:

uv tool install 'blips[voice]'

The first transmission then downloads two multi-speaker models (about 150 MB) to ~/.cache/blips/voices. Speech is synthesized locally on the CPU; turning voice off returns to the text-only frequency.

Data and privacy

With no --location, blips asks ipinfo.io for an approximate location from your IP address. Pass a place or coordinates to avoid that lookup. Place-name search uses Open-Meteo. Live mode necessarily sends the visible area's centre and radius to the selected aircraft and weather providers; no blips account or telemetry service is involved.

Data sources and coverage
  • Aircraft — adsb.lol, airplanes.live and adsb.fi, elected by coverage for the current view and polled once every five seconds. These community feeds depend on volunteer receivers, so coverage is thinner over oceans and sparsely populated land.
  • Routes — demand-driven callsign lookups from adsb.im, requested only for an aircraft being inspected.
  • Weather radar — LibreWXR worldwide, with NEXRAD from the Iowa Environmental Mesonet over the continental US and RainViewer as a fallback elsewhere. Choose a colour scheme with --wx-theme, for example dark-sky, nexrad or rainbow.
  • Basemap — Natural Earth geography, vendored and simplified from its public-domain datasets.
  • Airports and navaids — trimmed public-domain OurAirports data.
  • US procedures and fixes — the FAA's public Coded Instrument Flight Procedures data. Outside its coverage, the game still uses real airports, runways and navaids but cannot offer the same published SID/STAR detail.
  • Game schedules — distilled at build time from open Wikipedia airline and destination tables, with operator identifiers supplemented by OpenFlights.
  • Game terrain — sampled when a shift starts from Open-Meteo's elevation API and cached locally.

Lineage

The braille geography, terminal-theme adaptation and live rendering loop began as the radar command in linecast, a sibling collection of terminal weather, sunlight, tide, radar and map tools. The weather-radar underlay came home from the same project. blips takes that shared visual language into the moving sky, then lets you work it.

License

MIT

Metadata

Release files for blips 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for blips 0.1.0
File Size Uploaded Provenance
blips-0.1.0.tar.gz 4.7 MB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for blips 0.1.0
File Interpreter ABI Platform
blips-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 9.2 MB

Release files / blips-0.1.0.tar.gz

Download URL blips-0.1.0.tar.gz
Size 4.7 MB
Tags Source
SHA-256 checksum
How to use checksums
dd600f3417ca1100d3f9720f3f7147890f568dcd18245c0dcfaf7f0f52137f4a
BLAKE2b-256 checksum
How to use checksums
f790279552a0ddf84ccbe13a096fd910405d95d69f5cdaa796b1b288cd727dbb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / blips-0.1.0-py3-none-any.whl

Download URL blips-0.1.0-py3-none-any.whl
Size 4.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
7713c19f81fbf14fa3b4f516ebeabf0a557c64b1a32e5929b66f169eb263abf8
BLAKE2b-256 checksum
How to use checksums
76c85b1b0af2704ceb3088244e2d8d0306d0a6b66f69f0b58e9e4459236c4f79
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Security for blips 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for blips-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page