Wayseer

Marketplace

Aircraft

wayseer-labs/aircraft · version 0.1.1 · published 8 October 2026 ·

Live aircraft from ADS-B, read from adsb.lol or a local readsb or dump1090 receiver.

  1. Get it with >modules.get id=wayseer-labs/aircraft: Wayseer downloads the package for your platform, checks it, shows what it declares, and installs it on Y (getting a module).
  2. Name it in your config as a source of kind: external with module: wayseer-labs/aircraft, and its own options as below (configuration). A config that names it before it's installed offers to get it when Wayseer opens.

It runs under a license key that covers modules from others (pricing). Or download the package for your platform below and install it with >modules.install file= and its path (installing a package).

Aircraft 0.1.1 packages
Linux x86-64wayseer-labs-aircraft-0.1.1-linux-amd64.wsmod.tar.gz
12.0 MB
SHA-256 c0a22adf41231a5b6ac4777439cc4ebcffdc5dde44618320502e0677156e4f77
Linux ARM64wayseer-labs-aircraft-0.1.1-linux-arm64.wsmod.tar.gz
11.0 MB
SHA-256 d347caf6c120b3719d3e2c3e84d1b29a5b891d8c2b7e3cf9250f8cde43691c10
Windows x86-64wayseer-labs-aircraft-0.1.1-windows-amd64.wsmod.zip
12.0 MB
SHA-256 cddad8ccc4ce4a83e9a32afe01bd2f0e7cb87fd520158989d4c19d1f236ad305
macOSNot offered yet.

Earlier versions: 0.1.0, published 7 October 2026

What it may do

What its signed manifest declares. The app holds it to this: it may report only these kinds, and offers only these actions, each waiting for you to confirm it.

Reports
Aircraft aircraft/aircraft, Operators aircraft/operator, Areas aircraft/area
Actions
None: it only reads
Reaches
api.adsb.lol:443, and the addresses you configure
Secrets
Reads the ones you name, from a file, the environment or the keyring
Source
github.com/wayseer-net/desktop-module-aircraft at v0.1.1, commit 5a7871c48eaa, MIT

Using it

From the module's own documentation at v0.1.1, written by its publisher.

Live aircraft from ADS-B in Wayseer Desktop. Each aircraft appears on the Geo lens where it is and moves on every read. It carries its callsign, registration, type, altitude, speed, track and squawk. An emergency squawk turns it red and shows in Stream.

It is an external module, published in the Wayseer marketplace, and is not built into the app. It reads one of two sources:

adsb.lol (default)

The adsb.lol API: a community network's live data

Terms
Open data under ODbL 1.0, "available to everyone", no key today

receiver

Your own readsb, tar1090 or dump1090-fa receiver's aircraft.json

Terms
Yours

OpenSky Network, airplanes.live and ADSB.fi are not offered. Their terms allow only non-commercial or personal use, and Wayseer's users include businesses.

Wayseer is a lens, not a store. The module keeps only aircraft heard within expire, and at most max_aircraft of them. It never asks adsb.lol for the whole world: it needs an area.

Configuration

Install the package with >modules.install, then name it in a config:

modules:
  - kind: external
    name: sky
    options:
      module: wayseer-labs/aircraft
      options:
        area: {lat: 51.47, lon: -0.45, radius_nm: 40}   # around Heathrow

A local receiver, which needs no area:

      options:
        source: receiver
        url: http://adsb-pi.local/tar1090/data/aircraft.json

source

adsb.lol or receiver.

Default
adsb.lol

url

The receiver's aircraft.json; for adsb.lol, the API's base (a mirror).

Default
https://api.adsb.lol

area

lat, lon and radius_nm (up to 250 nm). adsb.lol needs this or box.

Default
none

box

south, west, north and east in degrees, not across the antimeridian, within 250 nm of its center. adsb.lol is asked for the circle around it, and only aircraft inside the box are kept.

Default
none

interval

How often the source is read: at least 5s for adsb.lol, 500ms for a receiver.

Default
30s for adsb.lol, 2s for a receiver

timeout

The longest wait for one read.

Default
10s

expire

How long an aircraft stays after it was last heard (10s to 1h).

Default
1m

max_aircraft

The most aircraft kept; the least recently heard go first.

Default
1000

operators

Shows the airline an airline callsign names (BAW123 belongs to BAW).

Default
true

secret_file
secret_env
secret_keyring

A receiver's bearer token, for one behind an authenticating proxy. adsb.lol takes none.

Default
none

A secret in secret_env must also be listed in the entry's env. A secret_keyring on Linux also needs DBUS_SESSION_BUS_ADDRESS there.

adsb.lol's limits rise and fall with its load. When it answers 429 Too Many Requests, the module waits for its Retry-After, or twice the interval, doubling with each limit in a row, and at most five minutes. The error shows in the module's health until a read works. Requests name the module in their User-Agent, and Health declares the interval as the module's pace, so Wayseer doesn't call its data stale between reads.

What it shows

aircraft/aircraft

callsign, registration, type, category, squawk, emergency, altitude_ft, on_ground, speed_kt, track_deg, vertical_rate_fpm

One per
aircraft, by its 24-bit address (hex)

aircraft/operator

icao

One per
airline designator in a callsign

aircraft/area

source, aircraft (the count), data (adsb.lol's attribution)

One per
instance: where aircraft are sought, placed at its center

An aircraft is named by its callsign, else its registration, else its address. Each is a member_of its operator. Squawk 7500 or 7700, or an ADS-B emergency of general, unlawful or downed, makes it critical; squawk 7600 or another emergency makes it a warning. The reason says which. An aircraft with no position has no place, so the Geo lens counts it as "without a place".

Series (>grid.show metric=): aircraft.altitude (feet, 0 on the ground) and aircraft.speed (knots) on each aircraft, and aircraft.count on the area. The SDK has no unit for feet or knots, so they carry none, and the names and attributes say the unit.

Events: emergency when one begins (critical or warning) and when it ends (info), and appeared and gone (debug) as aircraft come and go, so a busy area does not flood Stream.

Data and attribution

Data from adsb.lol is © adsb.lol contributors and is made available under the Open Database License 1.0. The area entity's data attribute carries this attribution in the app. The test fixtures in testdata are made up and copy no real flight.