Install
openclaw skills install irailQuery Belgian railway (NMBS/SNCB) schedules via the irail CLI. Use when the user wants train departures, connections between stations, train compositions, or service disruptions. Triggered by mentions of Belgian trains, NMBS, SNCB, iRail, train schedules, or railway delays.
openclaw skills install irailCLI for Belgian railways (NMBS/SNCB) via iRail API. No authentication required.
# Station departures
irail liveboard Brugge
# Find connections
irail connections Brugge Leuven
# Check disruptions
irail disturbances
None required. iRail API is public and free to use.
--json when parsing output programmatically| Flag | Format | Use case |
|---|---|---|
| (default) | Table | User-facing with colors |
--json | JSON | Agent parsing, scripting |
Colors indicate: red = delays, yellow = platform changes.
# Departures from station
irail liveboard Brugge
irail liveboard "Brussel-Centraal"
# Arrivals instead of departures
irail liveboard Brugge --arrivals
# Specific date/time
irail liveboard Brugge --time 09:00 --date 2025-02-15
# JSON for scripting
irail liveboard Brugge --json
# Different language
irail liveboard Brugge --lang en
# Find routes
irail connections Brugge Leuven
# Specific departure time
irail connections Brugge Leuven --time 09:00
# Arrive by time (instead of depart at)
irail connections Brugge Leuven --time 14:00 --arrive-by
# More results
irail connections Brugge Leuven --results 10
# JSON for parsing
irail connections Brugge Leuven --json
# List all stations
irail stations
# Search stations
irail stations --search bruss
irail stations --search gent
# JSON for scripting
irail stations --json
# Show train information
irail vehicle IC1832
# Include all stops
irail vehicle IC1832 --stops
# JSON output
irail vehicle IC1832 --json
# Show train composition (seats, amenities)
irail composition S51507
irail composition IC1832
# JSON for parsing
irail composition S51507 --json
# All current disruptions
irail disturbances
# Only planned works
irail disturbances --type planned
# Only unplanned disruptions
irail disturbances --type disturbance
# JSON for scripting
irail disturbances --json
# Get next train to destination
irail connections Brugge Leuven --json | jq -r '.[0].departure'
# Find station ID
irail stations --search "brussel" --json | jq -r '.[0].id'
# Check if delays exist on liveboard
irail liveboard Brugge --json | jq '[.[] | select(.delay > 0)] | length'
# Get platform for next departure
irail liveboard Brugge --json | jq -r '.[0].platform'
# List all disruptions
irail disturbances --json | jq -r '.[].title'
| Variable | Description |
|---|---|
IRAIL_LANG | Default language (nl, fr, en, de) |
IRAIL_JSON | Default to JSON output |
NO_COLOR | Disable colored output |
| Code | Language |
|---|---|
nl | Dutch (default) |
fr | French |
en | English |
de | German |
irail liveboard Brugge --lang fr
irail connections Brugge Leuven --lang en
| Command | Description |
|---|---|
liveboard | Station departures/arrivals |
connections | Route planning between stations |
stations | List/search stations |
vehicle | Train information and stops |
composition | Train car composition |
disturbances | Service disruptions |
completion | Shell completions |
irail vehicle IC1832 --json | jq '.delay // 0'
irail connections Brugge Leuven --json | jq '.[0].vias | length'
irail connections Brugge Leuven --json | jq '[.[] | select(.vias == null or (.vias | length) == 0)]'
brew install dedene/tap/irail