Tidbyt app to display NYC subway times for multiple stations, Citibike availability, and weather on one screen.
Install deps (requires uv):
uv sync
brew install pixlet parallel
Copy the .env file:
cp .env.local.example .env
Modify .env
with proper values. Variables with the CHANGEME
placeholder are required.
Run both the API server and the Tidbyt server simultaneously (requires GNU parallel, installed above):
make serve
Open http://localhost:8080/ to view the TidByt preview app.
To actually show the app on your Tidbyt, make sure that TIDBYT_API_KEY
and TIDBYT_DEVICE_ID
in .env
.
You can find these in the Tidbyt mobile app.
TIDBYT_API_KEY=CHANGEME
TIDBYT_DEVICE_ID=CHANGME
Then run the server with TIDBYT_ENABLE_PUSH=1
:
TIDBYT_ENABLE_PUSH=1 make serve
Tidbyt's official NYC Subway app limits you to viewing one station at a time. Citibike and weather are separate apps. Checking all the transit options means waiting for multiple screens. This app consolidates everything I need into one screen.
Short answer: This code was written specifically for my apartment. I’m not particularly interested in supporting community usage.
Slightly longer answer: Tidbyt's Starlark SDK has limitations when it comes to querying complex APIs like the MTA's GTFS feed. This requires the use of a proxy server, which means the app is no longer purely Starlark-based. I have no desire to expose the proxy server to the internet or have others depend on it for their devices.