How it works

A pipeline you can read end to end.

Forked from the OpenHNW codebase and re-pointed: the watchlist-scoped feed layer is flipped to capture-all, and resolve-misses become classified, registered newcomers.

01 · ingest

Capture all

Area-scoped ADS-B and global AIS adapters pull every contact in range — not just known identifiers. Commercial traffic is dropped at the gate.

02 · classify

Resolve & classify

Each fix resolves to a known asset by hex/IMO, or auto-registers — placed in the taxonomy by AIS ship type, broadcast ICAO type, or call sign.

03 · archive

Persist & derive

Every fix lands in local SQLite; the movement engine derives stops, legs and dark spans. No sampling.

04 · surface

Map, TUI, API

The dashboard, the terminal console and the JSON/WebSocket API all read the same read-models.

OpenTAC Current Known Locations view: the roster switched to Locations mode listing every tracked asset's last fix, beside the live map.
The Current Known Locations surface — every tracked asset's last fix, read back from the local archive.
Classification

Honest auto-discovery into the taxonomy.

A newcomer is never just a dot. Vessels are classified from their AIS ship type, aircraft from the broadcast ICAO type and operational call sign — into major category → subcategory → platform class. A Chinook becomes a military helicopter, an MQ-9 a military UAV, a King Air air-ambulance fixed-wing — automatically, the first time it is seen.

  • +Platform-correct — helicopter, fixed-wing, UAV, vessel and satellite are never conflated.
  • +State-only gate — commercial cargo, tanker, passenger and private traffic is filtered at ingest.
  • +Curated override — a watchlist entry always wins over a live guess.
  • +New-type alerts — the first sighting of a new asset type can notify you by ntfy or email.
OpenTAC inspector on a military helicopter (IN773, a Black Hawk): the Classification block shows Military · Military helicopter · Helicopter, with type, operator, identifiers and live position.
What the operator sees — a military Black Hawk auto-classified to Military · Military helicopter · Helicopter, with type, identifiers and provenance.
The watchlist

Curated in the open, by the community.

The reference dataset is a public GitHub repository under CC-BY-SA. Anyone can propose an addition by pull request; CI validates every row against the schema and the scope rules, and scope-sensitive categories route to a designated reviewer.

  • Aircraft, vessels, satellites — three datasets, one schema discipline.
  • Provenance required — every entry carries a primary source and confidence.
  • Scope discipline — assets, not individuals; no minors; enforced in CI.
  • Contribute from the console — the inspector drafts a valid entry for you.
Overlays

Two optional layers. Off by default.

Both sit beneath the contacts on the same map, both respect the no-telemetry stance, and neither touches the position audit record.

Overlay 01 · Weather

Weather, for context

A precipitation raster over the map, so a holding aircraft or a lifeboat that hasn't launched reads in its meteorological context. Keyless RainViewer tiles, proxied through your own tile cache.

◌ off by default · /weather on
Overlay 02 · Satellites

Satellites, honestly

Ground tracks and overhead passes for military and reconnaissance satellites, propagated from public CelesTrak elements. Every position is an explicit prediction — the inspector says so, every time.

◌ off by default · /satellites on