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.
uvx subwaytop # the live map
uvx subwaytop "union sq" # a station's departures
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
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.pyrebuilds 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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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 logRelease 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 logSecurity 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
Both files in this release have been uploaded with provenance metadata.
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 logA 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.