/install hk-transit-eta
HK Bus ETA / MTR ETA
Use the bundled script to answer Hong Kong bus route + stop queries and MTR heavy rail station + direction queries quickly and consistently.
Quick start
Run the bundled script from the skill directory:
Bus
Legacy bus invocation still works:
python3 scripts/hk_bus_eta.py \x3Croute> \x3Cstop-keyword>
Equivalent explicit subcommand:
python3 scripts/hk_bus_eta.py bus \x3Croute> \x3Cstop-keyword>
Examples:
python3 scripts/hk_bus_eta.py 74X 九龍灣
python3 scripts/hk_bus_eta.py bus A41 青衣 --operator lwb
python3 scripts/hk_bus_eta.py bus 20 啟德 --operator citybus
python3 scripts/hk_bus_eta.py bus 20 "Kai Tak" --operator citybus --direction outbound
python3 scripts/hk_bus_eta.py bus 74X 九龍灣 --direction outbound
python3 scripts/hk_bus_eta.py bus 74X 九龍灣 --json
MTR heavy rail
Structured station-to-station query:
python3 scripts/hk_bus_eta.py mtr \x3Corigin-station> \x3Cdestination-station>
Natural-language prompt parsing:
python3 scripts/hk_bus_eta.py mtr-text "火炭站去金鐘方向幾點有車"
Examples:
python3 scripts/hk_bus_eta.py mtr 火炭 金鐘
python3 scripts/hk_bus_eta.py mtr 火炭 金鐘 --line EAL
python3 scripts/hk_bus_eta.py mtr-text "火炭站去金鐘方向幾點有車"
python3 scripts/hk_bus_eta.py mtr-text "金鐘去北角下一班港島線幾時"
python3 scripts/hk_bus_eta.py mtr-text "荃灣站往中環方向有冇車" --json
Or use an absolute path rooted at the installed skill folder if needed.
Extraction workflow
A. Bus queries
- Extract the route first.
- Examples:
74X,A41,20,NA31.
- Examples:
- Extract the stop or area keyword next.
- Accept stop names, stations, estates, landmarks, districts, malls, piers, airports, hospitals, or short area names.
- Treat messages like
74X 九龍灣幾耐到,A41 青衣站有冇車,城巴20啟德幾時到as route + place queries.
- Infer operator if the user says it explicitly.
九巴→--operator kmb龍運/Long Win→--operator lwb城巴/Citybus→--operator citybus- If the user does not say, default to KMB. If the route obviously looks like a Citybus-only route or the first attempt fails, retry with
--operator citybus.
- If the user hints at direction or destination, pass it through.
去機場,往尖沙咀,outbound,返去often imply direction disambiguation.- Use
--direction outboundor--direction inboundwhen the user's wording clearly prefers one side.
- Run the bus query.
- If multiple stop matches appear, summarize each clearly with operator, direction, stop name, sequence, and destination.
- Report ETA in natural language, usually in minutes first.
- If no match appears, say so and ask for a more specific stop name, estate, station, or direction.
B. MTR heavy rail queries
- Detect that the prompt is station + destination/direction based, not bus-route based.
- Strong triggers:
X站去Y方向,X去Y下一班,往Y有冇車,X站到Y幾點有車.
- Strong triggers:
- Extract the origin station and target station/direction anchor.
- Examples:
火炭站去金鐘方向幾點有車→ origin火炭, target金鐘金鐘去北角下一班港島線幾時→ origin金鐘, target北角, line hintISL荃灣站往中環方向有冇車→ origin荃灣, target中環
- Examples:
- If the message names a line, pass it as
--line.- Common mappings:
東鐵線→EAL港島線→ISL荃灣線→TWL觀塘線→KTL將軍澳線→TKL屯馬線→TML東涌線→TCL機場快綫/Airport Express→AEL南港島線→SIL迪士尼線→DRL
- Common mappings:
- Prefer
mtr-textwhen the user phrased the request naturally and it fits the built-in patterns. - If parsing feels ambiguous, use
mtr \x3Corigin> \x3Cdestination>directly instead of guessing from a messy sentence. - The script resolves line/station mapping from the official MTR lines-and-stations CSV, then filters trains from the official MTR schedule endpoint that actually pass the requested target station.
- If multiple line candidates remain, list them instead of pretending certainty.
Reporting guidance
- Prefer a concise answer like
74X 喺九龍灣下一班大約 3 分鐘後到。or火炭去金鐘方向下一班東鐵線大約 2 分鐘後到,4 號月台。 - If there are multiple likely matches, list them instead of guessing.
- If there is no ETA, say that clearly rather than implying no service.
- Use
--jsononly when structured output is easier for follow-up processing.
Operator / data-source notes
kmb: officialdata.etabus.gov.hkKMB endpoints.lwb: handled through the same KMB-family endpoint structure used by Long Win routes in the KMB dataset.citybus: officialrt.data.gov.hk/v2/transport/citybusendpoints.mtr: officialrt.data.gov.hk/v1/transport/mtr/getSchedule.phpendpoint plus the official MTR lines/stations CSV fromopendata.mtr.com.hk.
Matching behavior
- Bus stop matching is flexible substring/token matching against Traditional Chinese, Simplified Chinese, and English stop names.
- MTR station matching is flexible against Chinese name, English name, and station code.
- For MTR, destination matching is by path logic, not just terminal-code equality: trains are kept only if their displayed destination would carry the passenger past the requested target station on that line.
- If the user gives only a broad area or a very ambiguous station name, refine from the returned candidates.
Scope and limitations
- Bus coverage here remains KMB, Long Win, and Citybus only.
- MTR coverage added here is heavy rail only. Light Rail, buses branded under MTR, and airport/feeder bus services are out of scope.
mtr-texthandles common natural-language forms likeX站去Y方向幾點有車,X去Y下一班, andX往Y有冇車; unusual phrasings may need manual extraction withmtr \x3Corigin> \x3Cdestination>.- Very ambiguous interchange stations or cross-line phrasing may return multiple candidates and need clarification.
- The script does not plan multi-leg journeys; it answers next-train ETA for a specific origin station toward a target station on a line that passes both.
scripts/
scripts/hk_bus_eta.py— query KMB/LWB/Citybus bus ETA, and MTR heavy rail ETA using either structured station arguments or a short natural-language MTR prompt.
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install hk-transit-eta - 安装完成后,直接呼叫该 Skill 的名称或使用
/hk-transit-eta触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
HK Transit ETA 是什么?
Query Hong Kong bus ETA/stop data and MTR heavy rail ETA from natural-language transport questions using official KMB/LWB, Citybus, and MTR open-data endpoin... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 183 次。
如何安装 HK Transit ETA?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install hk-transit-eta」即可一键安装,无需额外配置。
HK Transit ETA 是免费的吗?
是的,HK Transit ETA 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
HK Transit ETA 支持哪些平台?
HK Transit ETA 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 HK Transit ETA?
由 jimpang8(@jimpang8)开发并维护,当前版本 v1.0.1。