12306 Query
/install 12306-query
12306 Train Query
Query train schedules and remaining tickets from China Railway 12306.
Query Tickets
node {baseDir}/scripts/query.mjs \x3Cfrom> \x3Cto> [options]
- HTML mode (default): writes file, prints path to stdout
- Markdown mode (
-f md): prints table to stdout
Examples
# All trains from Beijing to Shanghai (defaults to today)
node {baseDir}/scripts/query.mjs 北京 上海
# Markdown table output (to stdout, good for chat)
node {baseDir}/scripts/query.mjs 北京 上海 -t G -f md
# Morning departures, 2h max, with second class available
node {baseDir}/scripts/query.mjs 上海 杭州 -t G --depart 06:00-12:00 --max-duration 1h --seat ze
# Only bookable trains arriving before 6pm
node {baseDir}/scripts/query.mjs 深圳 长沙 --available --arrive -18:00
# Custom output path
node {baseDir}/scripts/query.mjs 广州 武汉 -o /tmp/tickets.html
# JSON output (to stdout)
node {baseDir}/scripts/query.mjs 广州 武汉 --json
Options
-d, --date \x3CYYYY-MM-DD>: Travel date (default: today)-t, --type \x3CG|D|Z|T|K>: Filter train types (combinable, e.g.GD)--depart \x3CHH:MM-HH:MM>: Depart time range (e.g.08:00-12:00,18:00-)--arrive \x3CHH:MM-HH:MM>: Arrive time range (e.g.-18:00,14:00-20:00)--max-duration \x3Cduration>: Max travel time (e.g.2h,90m,1h30m)--available: Only show bookable trains--seat \x3Ctypes>: Only show trains with tickets for given seat types (comma-separated:swz,zy,ze,rw,dw,yw,yz,wz)-f, --format \x3Chtml|md>: Output format —html(default, saves file) ormd(markdown table to stdout)-o, --output \x3Cpath>: Output file path, html mode only (default:{baseDir}/data/\x3Cfrom>-\x3Cto>-\x3Cdate>.html)--json: Output raw JSON to stdout
Output Columns
| Column | Meaning |
|---|---|
| 商务/特等 | Business class / Premium (swz) |
| 一等座 | First class (zy) |
| 二等座 | Second class (ze) |
| 软卧/动卧 | Soft sleeper / Bullet sleeper (rw/dw) |
| 硬卧 | Hard sleeper (yw) |
| 硬座 | Hard seat (yz) |
| 无座 | Standing (wz) |
Values: number = remaining seats, 有 = available (qty unknown), — = not applicable
Station Lookup
node {baseDir}/scripts/stations.mjs 杭州
node {baseDir}/scripts/stations.mjs 香港西九龙
Notes
- Data comes directly from 12306 official API (no key needed)
- Station data is cached for 7 days in
{baseDir}/data/stations.json - Supports city names (resolves to main station) or exact station names
- Works for all train types: G (高铁), D (动车), Z (直达), T (特快), K (快速)
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install 12306-query - After installation, invoke the skill by name or use
/12306-query - Provide required inputs per the skill's parameter spec and get structured output
What is 12306 Query?
Query China Railway 12306 for train schedules, remaining tickets, and station info. Use when user asks about train/高铁/火车 tickets, schedules, or availability... It is an AI Agent Skill for Claude Code / OpenClaw, with 159 downloads so far.
How do I install 12306 Query?
Run "/install 12306-query" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is 12306 Query free?
Yes, 12306 Query is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does 12306 Query support?
12306 Query is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created 12306 Query?
It is built and maintained by zhangsaizz (@zhangsaizz); the current version is v1.0.0.