November 2, 2026 · Kamran Azari · Chrome extension · NS API · Open source
Train apps show you when the train leaves. But what I really want to know is when I need to leave home. This Chrome extension does that for me. It shows the minutes left on the toolbar icon, so I don't need to open anything.

The icon shows the minutes until you must leave. It turns red at 5 minutes or less.
This extension is older than the ESP32 departure countdown. I made it first, for myself. After some updates I decided to make it public and open source, so now everyone can use it.
You make a profile. A profile is the station you leave from and the minutes you need to get there. Walking, cycling, driving or public transit. A destination is optional.
The extension asks the NS API for the next trains and takes the departure time minus your travel time. That is the time you must leave.

The popup has two countdowns: time to leave and time until the train departs. Under that are the next five departures with platform and delay.
| Option | What it does |
|---|---|
| Data source | NS API (direct) with your own key, or your own personal hub |
| Profiles | Name, station, destination, how you travel and minutes to the station. Station names autocomplete, and there is a button to check the travel time on Google Maps |
| Intercity only | Hide the Sprinters |
| Notifications | Turn the "time to leave" notification on or off |
| Use my location | Opens the profile nearest to you. The location is never saved |
| Sync API key | Untick it to keep the key on this device only |

Editing a profile.
Direct NS is the easy way. Get a free key on the NS API portal (subscribe to the Reisinformatie API), paste it in the settings and press Test key. The key stays in your browser.
Personal hub is for when you run your own server. The hub calls NS once and gives the result to all your devices. The extension only needs the hub URL and a token. Chrome asks for permission to reach the hub when you press Save.
For now you install it from the source. There is no build step.
It's plain JavaScript (Manifest V3) and needs Chrome 99 or newer. It's not affiliated with NS, so please follow the NS API terms of use.