TransportationDocumentedScanned
uk-trains
UK National Rail departures, arrivals, delays, platforms.
Share:
Installation
npx clawhub@latest install uk-trainsView the full skill documentation and source below.
Documentation
UK Trains
Query National Rail Darwin API for live train departures and arrivals.
Setup
Requires free Darwin API token:
NATIONAL_RAIL_TOKEN in environment (or configure in skills.entries.uk-trains.apiKey)Commands
# Departures
./scripts/trains.py departures PAD
./scripts/trains.py departures PAD to OXF --rows 5
# Arrivals
./scripts/trains.py arrivals MAN
./scripts/trains.py arrivals MAN from EUS
# Station search
./scripts/trains.py search paddington
./scripts/trains.py search kings
Station Codes
Use 3-letter CRS codes:
PAD= London PaddingtonEUS= London EustonKGX= London Kings CrossVIC= London VictoriaWAT= London WaterlooMAN= Manchester PiccadillyBHM= Birmingham New StreetEDB= Edinburgh WaverleyGLC= Glasgow CentralBRI= Bristol Temple MeadsLDS= LeedsLIV= Liverpool Lime StreetRDG= ReadingOXF= OxfordCBG= Cambridge
Response Format
JSON with:
locationName,crs- Station infomessages[]- Service alertstrainServices[]- List of trains:
std/sta - Scheduled departure/arrival time-
etd/eta - Expected time ("On time", "Delayed", or actual time)-
platform - Platform number-
operator - Train operating company-
destination[].name - Final destination-
isCancelled, cancelReason, delayReason - Disruption info
Message Template
Use this compact format for WhatsApp/chat responses:
π {Origin} β {Destination}
*{dep} β {arr}* βπ{platform} β π {coaches}
{status}
*{dep} β {arr}* βπ{platform} β π {coaches}
{status}
Elements
- Header: π emoji + origin β destination
- Time: Bold, departure β arrival times
- Platform: π + number (or "TBC" if unknown)
- Coaches: π + space + number
- Status:
Example
π Hemel Hempstead β Euston
*20:18 β 20:55* βπ4 β π 4
β
On time
*20:55 β 21:30* βπ4 β π 12
β
On time
*21:11 β 21:41* βπ4 β π 8
β
On time
Getting Arrival Times
To show arrival times, make two API calls:departures {origin} to {dest} β get departure times + service IDsarrivals {dest} from {origin} β get arrival timesMatch services by the numeric prefix in serviceID (e.g., 4748110HEMLHMP_ matches 4748110EUSTON__).
Notes
- Separate each service with a blank line
- Omit coaches if formation data unavailable
- For delays, show expected time:
β οΈ Delayed (exp 20:35)