rail-cli
Use rail for UK National Rail data: live departures, arrivals, station search, destination filtering, and agent-friendly batch search.
Setup
- - INLINECODE1
- Get a free Darwin access token: https://realtime.nationalrail.co.uk/OpenLDBWSRegistration/Registration
- INLINECODE2 or add to INLINECODE3
- Station search works without a token. Departures and arrivals require one.
Departures
- - From a station: INLINECODE4
- By station name: INLINECODE5
- Filter to destination: INLINECODE6
- Include calling points: INLINECODE7
- Limit results: INLINECODE8
Arrivals
- - At a station: INLINECODE9
- By CRS code: INLINECODE10
- Filter from origin: INLINECODE11
- Include calling points: INLINECODE12
- Limit results: INLINECODE13
Station Search
- - Search by name: INLINECODE14
- Return only CRS codes: INLINECODE15
- Return only names: INLINECODE16
- Return explicit name + CRS projection: INLINECODE17
- Batch search from stdin: INLINECODE18
- Batch search as JSON: INLINECODE19
Output
- - All commands default to text in TTY, JSON when piped
- Force JSON: INLINECODE20
- Force text: INLINECODE21
- Disable colour: INLINECODE22
- Success envelope: INLINECODE23
- Error envelope: INLINECODE24
Agent Notes
- -
rail search --stdin is pipeline-only and expects newline-delimited queries on stdin - INLINECODE26 is intentionally narrow:
name, crs, or INLINECODE29 - INLINECODE30 and a positional query cannot be used together
- Search output stays stable unless projection flags are explicitly used
- Errors are structured and suitable for agent retry/self-correction
Configuration
- -
DARWIN_ACCESS_TOKEN — required for departures/arrivals (free registration) - INLINECODE32 — optional, override Huxley2 instance URL (default: public instance)
Notes
- - Accepts station names ("kings cross", "leeds") and CRS codes (
KGX, LDS, EDB) - CRS codes are 3-letter station identifiers
- Covers every National Rail station in Great Britain
- Data powered by National Rail Darwin via Huxley2
- Exit codes: 0 success, 2 bad input or ambiguity, 3 upstream failure, 4 internal error
- When a station name is ambiguous, the error includes candidate suggestions
rail-cli
使用 rail 获取英国国家铁路数据:实时发车、到站信息、车站搜索、目的地筛选,以及适用于智能体的批量搜索。
设置
- - npm install -g @shan8851/rail-cli
- 获取免费的 Darwin 访问令牌:https://realtime.nationalrail.co.uk/OpenLDBWSRegistration/Registration
- export DARWINACCESSTOKEN=your_token 或添加到 .env 文件
- 车站搜索无需令牌。发车和到站信息需要令牌。
发车信息
- - 从某车站:rail departures KGX
- 按车站名称:rail departures kings cross
- 筛选目的地:rail departures edinburgh --to york
- 包含途经站点:rail departures KGX --expand
- 限制结果数量:rail departures KGX --limit 5
到站信息
- - 在某车站:rail arrivals leeds
- 按 CRS 代码:rail arrivals LDS
- 筛选出发地:rail arrivals leeds --from london
- 包含途经站点:rail arrivals LDS --expand
- 限制结果数量:rail arrivals LDS --limit 5
车站搜索
- - 按名称搜索:rail search waterloo
- 仅返回 CRS 代码:rail search waterloo --select crs
- 仅返回名称:rail search waterloo --select name
- 返回明确的名称+CRS 映射:rail search waterloo --select name,crs
- 从标准输入批量搜索:printf waterloo\nvictoria\n | rail search --stdin
- 以 JSON 格式批量搜索:printf waterloo\nvictoria\n | rail search --stdin --json
输出
- - 所有命令默认在 TTY 中以文本形式输出,通过管道时以 JSON 形式输出
- 强制 JSON 格式:rail departures KGX --json
- 强制文本格式:rail departures KGX --text
- 禁用颜色:rail --no-color departures KGX
- 成功信封:{ ok, schemaVersion, command, requestedAt, data }
- 错误信封:{ ok, schemaVersion, command, requestedAt, error }
智能体说明
- - rail search --stdin 仅适用于管道模式,期望在标准输入中接收换行符分隔的查询
- rail search --select 范围严格限定为:name、crs 或 name,crs
- rail search --stdin 和位置查询不能同时使用
- 除非显式使用映射标志,否则搜索输出保持稳定
- 错误信息结构化,适合智能体重试/自我修正
配置
- - DARWINACCESSTOKEN — 发车/到站信息必需(免费注册)
- RAILAPIURL — 可选,覆盖 Huxley2 实例 URL(默认:公共实例)
说明
- - 接受车站名称(kings cross、leeds)和 CRS 代码(KGX、LDS、EDB)
- CRS 代码是 3 字母车站标识符
- 覆盖英国所有国家铁路车站
- 数据由英国国家铁路 Darwin 通过 Huxley2 提供
- 退出代码:0 成功,2 输入错误或歧义,3 上游故障,4 内部错误
- 当车站名称存在歧义时,错误信息中包含候选建议