Skip to main content

subwaytop

Every NYC subway train, live, in your terminal.
A real-time map of the whole system, departure boards for any station, and service alerts, straight from the MTA's open feeds. No API key, no signup.

PyPI CI Python MIT

uvx subwaytop               # the live map
uvx subwaytop "union sq"    # a station's departures

subwaytop showing every NYC subway train moving on a live map
Real MTA data recorded on a weekday at noon, replayed at 30× so you can see the trains move.

What you get

  • A live map of every train (usually 400–600 of them), each in its line's color, moving between stations as it goes
  • Departure boards: press / and type a station. Complexes like Times Sq are merged the way riders think of them
  • Service alerts, with delayed lines flagged in the legend
  • Focus on one line: press its letter or number (L, 7, A…) to dim everything else
  • Zoom and pan the map; station names appear as you zoom in

Times Sq-42 St departures in subwaytop

Keys

/ open a station's departures
+ - zoom
arrows or h j k l pan
1–7, A–Z focus a line (press again to clear)
esc back to the full map
q quit

More

subwaytop --line L                     # start focused on one line
subwaytop "bedford av" --board         # print departures once and exit (handy in scripts)
subwaytop --record rush-hour --minutes 60  # save the feeds every 30 s...
subwaytop --replay rush-hour --speed 30    # ...and watch rush hour in two minutes

How it works

  • The MTA publishes GTFS-realtime feeds for every subway line, refreshed about every 30 seconds. subwaytop decodes them with a tiny built-in protobuf reader (tested field by field against Google's official bindings), so the only dependency is Textual.
  • The feeds say when each train will reach each upcoming stop. subwaytop places every train between its previous and next station according to those predictions, so trains glide along instead of jumping from stop to stop.
  • Station locations, line shapes, colors and typical travel times come from the MTA's static GTFS, condensed into a 160 KB file that ships with the package (tools/build_static.py rebuilds it).
  • The map is drawn with braille characters, eight dots per terminal cell, in any terminal with true color.

License

MIT. Transit data © MTA, used under the MTA's open data terms. subwaytop is not affiliated with or endorsed by the MTA.

Metadata

Release files for subwaytop 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 subwaytop 0.1.0
File Size Uploaded Provenance Actions
subwaytop-0.1.0.tar.gz 72.7 kB With provenance Details for subwaytop-0.1.0.tar.gz

Built distribution (wheel)

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

Total release size: 118.3 kB

Release files / subwaytop-0.1.0.tar.gz

Download URL subwaytop-0.1.0.tar.gz
Size 72.7 kB
Tags Source
SHA-256 checksum
How to use checksums
79d92433ae026a3302c430f55d80955ca09e057bbfc500ee9a75ef40289d00f2
BLAKE2b-256 checksum
How to use checksums
3040f4e7033a2456febbd8b8d66355934a0962949e466396f716c3550602672d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 5, 2026.

Transparency log

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

Download URL subwaytop-0.1.0-py3-none-any.whl
Size 45.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a2a8010b6811499668eaa1b785bba4bedee8fd8dc47642594a42cf694d73c4fb
BLAKE2b-256 checksum
How to use checksums
7311161bb202adf0adc4838324b11748f9a9cb331be7770b6abd6f5fb1187bda
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 5, 2026.

Transparency log

Security for subwaytop 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 subwaytop-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 Nov 5, 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