車到未 — one Hong Kong bus app for all five operators

Five operators, one search box. The route database ships inside the app, so the first stop card is on screen before a network request has finished.

 App Store

Hong Kong's bus network is one system with five APIs

From a passenger's point of view there is one bus network. From an app's point of view there are five separate open data feeds, each with its own field names, its own quirks, and its own idea of how to express a timetable. Most apps handle one or two operators well and treat the others as second class, which means that at a stop served by a Citybus route and a green minibus, half the information is missing.

車到未 treats all five as first class: KMB, Citybus, New Lantao Bus, MTR Bus and green minibus, in one search and one arrival list.

What a Hong Kong bus app covering all operators has to get right

The engineering is mostly invisible, which is the point — it shows up as speed and completeness.

Correctness worked out rather than assumed

The parts of this app that took the most effort are the ones you never see: which operator a route really belongs to, how five providers each express a timetable, how to avoid a stale clock producing a confident wrong answer. Those decisions are documented in the source with the date they were verified against the live feed, which means they can be rechecked when an upstream feed changes rather than rotting silently.

Stops within thirty metres are treated as the same physical stop, so a single kerbside position does not appear as three separate entries because three operators named it differently.

Who it is for

Anyone whose regular stop is served by more than one operator — which, outside the densest urban routes, is most stops. The single-operator apps simply do not answer the question at that kerb.

People travelling to Lantau, where New Lantao Bus is the operator and coverage in other apps is thin. Anyone who relies on green minibuses, which are frequently an afterthought elsewhere. And anyone who falls asleep on a long bus ride and would like to be woken up at the right place.

Data sources

Arrival estimates come from the public open data endpoints of each operator, published via data.gov.hk and the operators' own endpoints. The static route and stop dataset is built from those same sources and bundled with the app. It is unofficial and not affiliated with any bus operator.

Estimates are the operators' predictions and can be wrong; traffic and cancellations move them. Location is used to find stops near you. Nothing is uploaded.

 App Store

Frequently asked questions

Which operators does it cover? Five: KMB, Citybus, New Lantao Bus, MTR Bus and green minibus. Long Win routes appear under KMB, because the KMB feed carries them and never labels them separately — verified against the live endpoint.

Why is the app fast to open? Because the route and stop database is built at compile time and shipped inside the app rather than downloaded on first launch. The first stop card does not wait for a network round trip.

Does the stop alarm work with the screen off? Yes — that is the entire point. An earlier foreground-only version was removed because the limitation made the feature useless.

Why do I not see duplicate stops for different operators? Because stops within about thirty metres are treated as the same physical location, so one kerbside position does not appear three times under three operator names.

Is it official? No. It is unofficial and built on public open data.