transit
transit は日本の経路検索と発車案内を行う小さな Go 製 CLI です。公開 Transit API(https://api.transit.ls8h.com/)を利用します。MCP サーバーも計画中です。
インストール
Homebrew(macOS / Linux)
brew install atani/tap/transit
winget(Windows)
winget install atani.transit
ソースから
go install github.com/atani/transit/cmd/transit@latest
使い方
駅名サジェスト
transit suggest 渋谷 --limit 3
駅名 / よみ / 路線(事業者) をタブ区切りで表示します。同名駅は路線ごとに複数並びます。
経路検索
transit plan 渋谷 新宿 --time 09:00 --num 1
オプションは次のとおりです。
--date YYYYMMDD 日付
--time HH:MM 基準時刻
--type departure|arrival|first|last 出発基準・到着基準・始発・終電
--num N 候補数
発車案内
transit departures 渋谷 --limit 5
発車時刻 / 種別 / 路線(方面)-> 行先 を時刻順に表示します。
共通オプション
--json を付けると構造化 JSON を出力します。スクリプトやエージェント連携に使えます。transit version でバージョンを表示します。
駅の指定方法
駅名はそのまま渡せば suggest で解決されます。上級者は解決を飛ばして直接指定もできます。
geo:35.681,139.767(緯度経度)
- フィード修飾の駅 ID(例:
scrape-fukuoka-subway:福岡市-空港線-博多)
API について
時刻はサービス日の午前0時からの秒数です。終電後は 01:30(+1d)、前日扱いは 23:30(-1d) のように日跨ぎを表示します。
駅名は複数の候補に一致します。1 つの駅名が事業者ごとのフィードに分かれて存在し、さらに同名のバス停も一致するためです。plan は次の優先順で出発・到着の組を選びます。
- 同じフィードの鉄道駅どうし(乗換なしで到達できる可能性が高い)
- 別フィードの鉄道駅どうし(API が事業者をまたぐ乗換を計算)
- 上記が無い場合は同じフィードの停留所、それも無ければ各先頭候補
鉄道駅をバス停より優先するのは、押上 のような駅名がバス停にも一致し、そちらに解決すると終日かかるバス経路になることがあるためです。公共交通機関の経路が見つからず徒歩のみになった場合は、CLI が注記を表示します。
環境変数 TRANSIT_API_BASE_URL で API のベース URL を差し替えられます。