12306 Query
Query China Railway 12306 for train schedules, remaining tickets, and station info. Use when user asks about train/高铁/火车 tickets, schedules, or availability...
MIT-0 · Free to use, modify, and redistribute. No attribution required.
⭐ 0 · 17 · 1 current installs · 1 all-time installs
MIT-0
Security Scan
OpenClaw
Benign
high confidencePurpose & Capability
Name/description ask for 12306 queries and the package requires only Node and includes two scripts that call 12306 endpoints and a station cache. Required binaries (node) and bundled station data are appropriate. Minor bookkeeping inconsistency: _meta.json ownerId and the registry Owner ID/README install path differ (suggests a forked/copy origin) but this does not affect functionality.
Instruction Scope
SKILL.md instructs running the included node scripts; the scripts perform only the advertised actions: fetching station_name.js and leftTicket/query from 12306, parsing results, printing JSON/MD or writing an HTML file, and caching stations.json. The scripts write/read a local cache (data/stations.json) and output HTML/JSON as described; they do not read other system files or access unrelated environment variables or external endpoints.
Install Mechanism
No install spec — instruction-only plus included source files. Nothing is downloaded at install time; network access occurs at runtime (fetching 12306). This is low-risk and proportionate to the skill.
Credentials
The skill requests no environment variables or credentials. It only uses network access to 12306 and local filesystem access to cache station data and save HTML output — both expected for the stated purpose.
Persistence & Privilege
always:false and no requests to persist or modify other skills or agent-wide configuration. The only persistence is a local cache file under the skill's data directory (data/stations.json), which is appropriate for performance.
Assessment
This skill appears to do exactly what it says: it requires Node.js and will make HTTPS requests to kyfw.12306.cn / www.12306.cn at runtime, then cache station data in data/stations.json and optionally write HTML output files in the skill directory or a user-specified path. No credentials are requested. Before installing, ensure you trust the skill source (there are small metadata inconsistencies between the registry Owner ID, _meta.json, and README install path), confirm you have Node >= 18 so the built-in fetch is available, and be comfortable with the skill writing a cache file under its data/ directory. If you need stronger assurance, ask the publisher for provenance (author account) or run the scripts in an isolated environment first.scripts/stations.mjs:3
File read combined with network send (possible exfiltration).
About static analysis
These patterns were detected by automated regex scanning. They may be normal for skills that integrate with external APIs. Check the VirusTotal and OpenClaw results above for context-aware analysis.Like a lobster shell, security has layers — review code before you run it.
Current versionv1.0.0
Download ziplatest
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
Runtime requirements
🚄 Clawdis
Binsnode
SKILL.md
12306 Train Query
Query train schedules and remaining tickets from China Railway 12306.
Query Tickets
node {baseDir}/scripts/query.mjs <from> <to> [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 <YYYY-MM-DD>: Travel date (default: today)-t, --type <G|D|Z|T|K>: Filter train types (combinable, e.g.GD)--depart <HH:MM-HH:MM>: Depart time range (e.g.08:00-12:00,18:00-)--arrive <HH:MM-HH:MM>: Arrive time range (e.g.-18:00,14:00-20:00)--max-duration <duration>: Max travel time (e.g.2h,90m,1h30m)--available: Only show bookable trains--seat <types>: Only show trains with tickets for given seat types (comma-separated:swz,zy,ze,rw,dw,yw,yz,wz)-f, --format <html|md>: Output format —html(default, saves file) ormd(markdown table to stdout)-o, --output <path>: Output file path, html mode only (default:{baseDir}/data/<from>-<to>-<date>.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 (快速)
Files
6 totalSelect a file
Select a file to preview.
Comments
Loading comments…
