ns-trains

Review·Scanned 2/17/2026

This skill queries the NS (Nederlandse Spoorwegen) API to check schedules, departures, disruptions, and plan journeys. It reads NS_SUBSCRIPTION_KEY, runs local Node scripts (e.g., node scripts/commute.mjs), and issues HTTPS requests to gateway.apiportal.ns.nl.

from clawhub.ai·v497c8ea·28.4 KB·0 installs
Scanned from 1.1.0 at 497c8ea · Transparency log ↗
$ vett add clawhub.ai/eggressive/ns-trainsReview findings below

NS Trains Skill

Check Dutch train schedules, departures, disruptions, and plan journeys using the official NS (Nederlandse Spoorwegen) API.

Setup

1. Get an NS subscription key

  1. Go to NS API Portal
  2. Create an account and subscribe to the Ns-App product (free tier available)
  3. Copy your Primary Key

2. Set Environment Variables

export NS_SUBSCRIPTION_KEY="your-subscription-key-here"   # preferred
# Back-compat:
export NS_API_KEY="$NS_SUBSCRIPTION_KEY"                   # legacy name still supported

# Optional: Configure commute stations for quick shortcuts
export NS_HOME_STATION="Utrecht Centraal"
export NS_WORK_STATION="Amsterdam Zuid"

For security, prefer injecting these env vars via your runtime secret mechanism rather than committing them anywhere. Avoid printing or sharing your subscription key.

Quick Usage

🚆 Commute shortcuts

node {baseDir}/scripts/commute.mjs --to-work   # Morning: Home → Work
node {baseDir}/scripts/commute.mjs --to-home   # Evening: Work → Home

Plan any journey

node {baseDir}/scripts/journey.mjs --from "Utrecht Centraal" --to "Amsterdam Zuid"

Check departures from a station

node {baseDir}/scripts/departures.mjs --station "Amsterdam Centraal"

Check arrivals at a station

node {baseDir}/scripts/arrivals.mjs --station "Rotterdam Centraal"

Search for stations

node {baseDir}/scripts/stations.mjs amsterdam
node {baseDir}/scripts/stations.mjs --search "den haag"

Check current disruptions

node {baseDir}/scripts/disruptions.mjs
node {baseDir}/scripts/disruptions.mjs --from "Utrecht" --to "Amsterdam"

Natural Language

Just ask:

  • "When is the next train to Amsterdam?"
  • "Check trains from Utrecht to Rotterdam"
  • "Any train disruptions today?"
  • "Plan my commute to work"
  • "What time does the train arrive?"

Output

Returns journey options with:

  • Departure/arrival times
  • Real-time delays
  • Duration
  • Transfers
  • Platform numbers
  • Disruption warnings
  • Crowdedness forecast (🟢 low / 🟡 medium / 🔴 high)

Commands Reference

CommandDescription
commute.mjs [work|home]Quick commute check (requires NS_HOME_STATION & NS_WORK_STATION)
journey.mjs --from X --to YPlan a journey between any stations
departures.mjs --station XList departures from a station
arrivals.mjs --station XList arrivals at a station
stations.mjs [query]Search for station names
disruptions.mjsCheck current disruptions

API Endpoints Used

  • /reisinformatie-api/api/v3/trips - Journey planning
  • /reisinformatie-api/api/v2/arrivals - Arrivals
  • /reisinformatie-api/api/v2/departures - Departures
  • /reisinformatie-api/api/v3/disruptions - Disruptions
  • /reisinformatie-api/api/v2/stations - Station search

Reference