Install
openclaw skills install metraChicago Metra commuter rail — real-time train arrivals, vehicle tracking, service alerts, and schedule info for all 11 Metra lines serving the Chicago metrop...
openclaw skills install metraReal-time Chicago Metra commuter rail data — train arrivals (GTFS-RT protobuf), vehicle positions, service alerts, schedule info, and fare calculation for all 11 Metra lines serving the six-county northeastern Illinois region. Requires a free API key for all feeds.
Metra uses standard GTFS-RT protobuf feeds served from a single base URL with Bearer token authentication. No proprietary extensions — clean standard GTFS-RT.
METRA_API_KEY)Get a free key at: https://metra.com/developers
| Feed | Endpoint | Description |
|---|---|---|
| Trip Updates | GET /gtfs/public/tripupdates | Real-time arrival/departure predictions |
| Vehicle Positions | GET /gtfs/public/positions | GPS locations of active trains |
| Alerts | GET /gtfs/public/alerts | Service alerts, delays, construction notices |
Base URL: https://gtfspublic.metrarr.com
Authentication: Authorization: Bearer {METRA_API_KEY} header.
Data updates every 30 seconds. No need to poll more frequently.
| Feed | URL |
|---|---|
| GTFS Static (zip) | https://schedules.metrarail.com/gtfs/schedule.zip |
| Published timestamp | https://schedules.metrarail.com/gtfs/published.txt |
Static schedule updates regularly (sometimes within 24 hours). New scheduled updates publish at 3:00 AM.
scripts/metra.mjsMain entry point. Supports these commands:
# Train arrivals
node scripts/metra.mjs arrivals --station "Union Station"
node scripts/metra.mjs arrivals --station "Naperville" --line BNSF
node scripts/metra.mjs arrivals --station "Ogilvie"
node scripts/metra.mjs arrivals --station "Millennium Station" --line ME
# Vehicle tracking
node scripts/metra.mjs vehicles --line BNSF
node scripts/metra.mjs vehicles --line UP-N
node scripts/metra.mjs vehicles --line ME
# Service alerts
node scripts/metra.mjs alerts
node scripts/metra.mjs alerts --line BNSF
node scripts/metra.mjs alerts --line RI
# Routes and stops
node scripts/metra.mjs routes
node scripts/metra.mjs stops --search "downers grove"
node scripts/metra.mjs stops --line BNSF
node scripts/metra.mjs stops --near 41.8781,-87.6298
node scripts/metra.mjs route-info --line UP-NW
# Fares
node scripts/metra.mjs fares
node scripts/metra.mjs fares --from "Union Station" --to "Naperville"
# Schedule
node scripts/metra.mjs schedule --station "Naperville"
node scripts/metra.mjs schedule --station "Ogilvie" --line UP-N
# Maintenance
node scripts/metra.mjs refresh-gtfs
All Metra feeds require authentication:
METRA_API_KEYOn first use, run node scripts/metra.mjs refresh-gtfs to download and extract the static GTFS data (routes, stops, schedules) to ~/.metra/gtfs/. Refresh periodically or when Metra updates their schedule.
| Line Code | Line Name | Color | Downtown Terminal | Outer Terminal |
|---|---|---|---|---|
| BNSF | BNSF Railway | Orange | Union Station (CUS) | Aurora |
| ME | Metra Electric | Teal | Millennium Station | University Park / South Chicago / Blue Island |
| HC | Heritage Corridor | Purple | Union Station (CUS) | Joliet |
| MD-N | Milwaukee District North | Light Green | Union Station (CUS) | Fox Lake |
| MD-W | Milwaukee District West | Light Green | Union Station (CUS) | Elburn / Big Timber |
| NCS | North Central Service | Gold | Union Station (CUS) | Antioch |
| RI | Rock Island | Red | LaSalle Street Station | Joliet |
| SWS | SouthWest Service | Dark Purple | Union Station (CUS) | Manhattan |
| UP-N | Union Pacific North | Dark Green | Ogilvie Transportation Center (OTC) | Kenosha |
| UP-NW | Union Pacific Northwest | Blue | Ogilvie Transportation Center (OTC) | Harvard / McHenry |
| UP-W | Union Pacific West | Blue | Ogilvie Transportation Center (OTC) | Elburn |
| Ticket Type | Zones 1-2 | Zones 1-2-3 | Zones 1-2-3-4 | Zones 2-3-4 (no downtown) |
|---|---|---|---|---|
| One-Way | $3.75 | $5.50 | $6.75 | $3.75 |
| Day Pass | $7.50 | $11.00 | $13.50 | $7.50 |
| Day Pass 5-Pack | $35.75 | $52.25 | $64.25 | $35.75 |
| Monthly Pass | $75.00 | $110.00 | $135.00 | $75.00 |
Special Passes:
Monthly Passes are valid for unlimited rides on weekdays between selected zones and systemwide on weekends.
--line to filter by specific Metra line code (BNSF, UP-N, etc.)METRA_API_KEY is not set, all commands print a helpful message with the signup URLWhen presenting transit info to the user:
| Endpoint | Data Sent | Data Received |
|---|---|---|
gtfspublic.metrarr.com/gtfs/public/tripupdates | API key (Bearer header, HTTPS) | Trip updates (Protobuf) |
gtfspublic.metrarr.com/gtfs/public/positions | API key (Bearer header, HTTPS) | Vehicle positions (Protobuf) |
gtfspublic.metrarr.com/gtfs/public/alerts | API key (Bearer header, HTTPS) | Service alerts (Protobuf) |
schedules.metrarail.com/gtfs/schedule.zip | None (GET only) | GTFS static data (ZIP) |
schedules.metrarail.com/gtfs/published.txt | None (GET only) | Schedule publish timestamp (text) |
All API calls use HTTPS. The API key is passed as a Bearer token in the Authorization header. No other user data is transmitted.
~/.metra/gtfs/; no data is written elsewhereThis skill reads publicly available transit data from Metra's official GTFS-RT feeds. The API key is used only for Metra API authentication. The skill does not access, store, or transmit any personal information beyond the API key configured by the user.