GTFS Tools CLI
GTFS フィードをインポートし、交通データをクエリし、路線/運行/カレンダー/シェイプをブラウズし、運行スケジュールを比較し、駅/通路/路線/運行/停車時刻を編集し、変更をエクスポートするか、ローカルダッシュボードを開きます。
リファレンスファイル
正確な列名、SQL 構文、またはフラグの詳細が必要な場合は、以下を参照してください。
- references/commands.md — すべての CLI コマンドとフラグおよび例
- references/edits.md — 運行 / スケジュール / サービスの編集の適用と、CLI にサービス変更を渡すための変更セット形式
- references/tables.md — 列タイプを含むテーブルとビューのスキーマ
gtfs拡張関数リファレンス — 実行可能な例付きのすべての SQL 関数 (markdown)- GTFS Tools CLI ドキュメント および ドキュメントインデックス — すべてのドキュメントページ (markdown)
- references/gtfs-schedule-reference.md — 駅部品、通路、および欠落接続監査に焦点を当てた GTFS スケジュールフィールドリファレンス
- references/examples.sql — 実用的な SQL クエリ例
インストール
CLI をグローバルにインストールし、スキルを登録します。
npm install -g @gabrielahn/gtfs-tools
gtfs-tools install-skill openai
または、npx を使用してスキルのみをインストールします。
npx skills add gabrielAHN/gtfs-tools
AI プロバイダーには anthropic、openai、google、または generic を使用します。gtfs-tools install-skill --list-providers を実行すると、解決されたインストールパスが表示されます。--provider <name> は位置引数のプロバイダー名と同等であり、--target-dir <dir> はデフォルトを上書きします。--target-dir が設定されている場合、非対話型の使用でもプロバイダーが必要です。その隣にある古い gtfs-viz スキルディレクトリはそのまま残り、古いものとして報告されます。このスキルがインストールされたら、自分で削除してください。
一般的なヘルプには gtfs-tools h を、gtfs-tools h <command> を使用すると、gtfs-tools help <command> および gtfs-tools <command> -h と同じコマンド固有のヘルプを表示できます。
インストール済みの CLI を表示または更新します。
gtfs-tools --version
gtfs-tools update --check
gtfs-tools update
gtfs-tools update --provider openai
update は、インポートされたデータセットとセッションを保持します。CLI 更新後、インストール済みスキルをそのプロバイダー向けに更新するには --provider を追加します。
gabrielAHN/gtfs-tools のチェックアウトから:
npm ci
npm run build
npm install -g .
クイックスタート
gtfs-tools import /path/to/feed.zip
gtfs-tools status
gtfs-tools stations
gtfs-tools station "Park Street"
gtfs-tools station_pathways "Park Street" --data
インポート
gtfs-tools import /absolute/path/to/feed.zip
gtfs-tools import https://example.com/gtfs/feed.zip
gtfs-tools import s3://my-bucket/gtfs/feed.zip # s3a://、s3n:// も同様
gtfs-tools import r2://my-bucket/gtfs/feed.zip
プレーンまたは引用符で囲まれたパスまたは URL を使用します。バッククォートは使用しないでください。インポートは一度限りです。新しいインポートは現在のデータセットを置き換えます。データは ~/.gtfs-viz-cli/current に保存されます。データセットは 7 日後に自動的に期限切れになります。
リモートフィードは最初に ~/.gtfs-viz-cli/downloads/ にダウンロードされます。ZIP アーカイブである必要があり、インポート後に削除されます。ダウンロードおよび検証の失敗 (ZIP ではない、stops.txt がない) は現在のデータセットに影響を与えません。DuckDB インポート自体の失敗は、ローカルファイルの場合と同様に、データセットをクリアします。クエリ文字列 (署名付き URL) はダウンロードに使用されますが、保存も出力もされません。ユーザー名またはパスワードが埋め込まれた URL は拒否され、他のスキーム (gs://、az://、hf://、…) はサポートされていません。http(s) URL パス内のエンコードされていない @ も拒否されます。%40 としてパーセントエンコードし、URL に資格情報を絶対に入れないでください。
s3:// および r2:// オブジェクトは、DuckDB シークレットを通じて認証されます。最初に一致するシークレット (永続的なものを含む、例: duckdb -c "CREATE PERSISTENT SECRET (TYPE s3, KEY_ID '…', SECRET '…', REGION 'us-east-1')") が使用されます。次に、s3:// の場合は、AWS 環境変数、一時的な credential_chain シークレットによる AWS プロファイルまたは SSO、次に匿名リクエストが試行されます。r2:// には CREATE PERSISTENT SECRET (TYPE r2, KEY_ID '…', SECRET '…', ACCOUNT_ID '…') が必要です。MinIO およびその他の S3 互換ストレージは、ENDPOINT、URL_STYLE 'path'、USE_SSL を指定した s3 シークレットを使用します。実行するコマンドにシークレット値を貼り付けるようユーザーに依頼しないでください。代わりに、ユーザー自身でシークレットを作成するよう依頼してください。
ブラウズ & フィルター
CLI で直接駅または停留所をフィルタリングします。
gtfs-tools stations # すべての駅
gtfs-tools stations --name "Park" # 名前に「Park」を含む
gtfs-tools stations --pathways "no" # 通路なし
gtfs-tools stations --wheelchair "accessible" # アクセシブル
gtfs-tools stations --station-id place-pktrm # 正確な ID
gtfs-tools stations --name "Park" --pathways "yes" # 複合条件
gtfs-tools stops # すべての単独停留所
gtfs-tools stops --name "Albany" # 名前に「Albany」を含む
gtfs-tools stops --location-type "Stop" # タイプ別
gtfs-tools stops --wheelchair "unknown" # 車いす対応状況別
gtfs-tools trips # 運行ビューを開く
gtfs-tools trips --route R1 --data # 路線の運行を表示
gtfs-tools trip trip-123 --data # 運行の停車時刻を表示
gtfs-tools trip trip-123 --view timeline # タイムラインビューを開く
gtfs-tools trip trip-123 --compare trip-456 # 2 つの運行を比較
gtfs-tools calendar --data # すべてのサービスを一覧表示
gtfs-tools calendar SAT-1 --data # サービスのカレンダーを表示
gtfs-tools shapes --data # すべてのシェイプを一覧表示
gtfs-tools shapes shape-123 --data # シェイプのポイントを表示
JSON 出力には --format json を追加します。
ダッシュボード
コマンドはデフォルトでダッシュボードを開きます。代わりに行を出力するには --data を追加します。
gtfs-tools station "Park Street" # 駅情報を開く
gtfs-tools station "Park Street" --data # 行を出力
gtfs-tools stop-info "Trade Center" # ポップアップとズーム付きの停留所マップを開く
gtfs-tools station_connections "Park Street" # フローグラフを開く
gtfs-tools station_pathways place-pktrm --node-id node-pktrm-stair7-gl
gtfs-tools view --view stations/map --map-focus 42.355,-71.06,12
gtfs-tools view --view export --url-only
出力されたダッシュボード URL をユーザーに返します。
駅検索
gtfs-tools station "Park Street"
gtfs-tools station --id place-pktrm --data
gtfs-tools station --id place-pktrm --format json
値のタイプがわかっている場合は --station-id または --station-name を使用します。どちらの可能性もある場合は --selected-station または位置引数を使用します。
通路 & 接続
gtfs-tools station_connections "Park Street" --data
gtfs-tools station_pathways "Park Street" --data
gtfs-tools station_pathways place-pktrm --node-id node-pktrm-stair7-gl --data
--node-id は、駅内のプラットフォーム、出口/入口、または通路ノードを対象とします。
駅の欠落部品や内部接続の破損を確認する場合は、駅部品とネットワーク関数のみを使用してください。まず get_station_stops(station_id) から始め、次に get_station_pathways(station_id)、get_station_routes(station_id)、find_shortest_path、または find_reachable_stops を調査します。StopsTable から駅内部の接続性を監査しないでください。このテーブルは単独の停留所を対象としています。「references/gtfs-schedule-reference.md」を参照してください。
路線 & サービス
gtfs-tools routes # すべての路線を一覧表示
gtfs-tools routes --type Bus # タイプでフィルター
gtfs-tools routes --route-name "Metro" # 名前でフィルター
gtfs-tools routes --route-id ROUTE_ID # ID でフィルター
gtfs-tools route "Line 1" # 路線情報を開く
gtfs-tools route --route-id ROUTE_ID --data # 路線データを出力
gtfs-tools route "Line 1" --view service # サービスの表示を開く
運行 & 停車時刻
gtfs-tools trips --data # すべての運行を一覧表示
gtfs-tools trips --route R1 --data # 路線の運行を表示
gtfs-tools trip trip-123 --data # 停留所名付きの停車時刻
gtfs-tools trip trip-123 --data --view info # 運行メタデータ
gtfs-tools trip trip-123 --view timeline # タイムラインビューを開く
gtfs-tools trip trip-123 --view map # マップビューを開く
gtfs-tools trip trip-123 --compare trip-456 --data # 停車時刻を比較
gtfs-tools trip trip-123 --compare trip-456,trip-789 --view map # 3 つの運行をマップ上で比較
gtfs-tools trips --compare trip-1,trip-2,trip-3 # ダッシュボードで運行を比較
ビュー: timetable (デフォルト)、timeline (時間チャート)、map (位置)、info (メタデータ、--data と併用)。
カレンダー & シェイプ
gtfs-tools calendar --data # 運行数付きのサービスを一覧表示
gtfs-tools calendar --route R1 --data # 路線のサービスを表示
gtfs-tools calendar SAT-1 --data # サービスのカレンダー + 日付
gtfs-tools shapes --data # ポイント数付きのシェイプを一覧表示
gtfs-tools shapes --route R1 --data # 路線のシェイプを表示
gtfs-tools shapes shape-123 --data # シェイプのポイントを表示
路線ラインバンド
gtfs-tools route-bands # 並行路線ラインバンドを構築 (路線分離)
gtfs-tools route-bands --data # band_rows、routes、widest_bundle を出力
gtfs-tools route-bands --status --data # 再構築せずに既存のバンド数を報告
GTFS shapes のみから RouteShapeBandsTable を構築します。廊下を共有する路線は 1 つの中心線に収束され、ダッシュボードの路線分離ビューで平行なバンドとして描画されるように横方向のレーンが与えられます。これらの回廊マクロを実行するには、query ではなくこれを使用してください。これらは書き込み可能な空間セッションを必要とします。
駅路線 & 経路探索
gtfs-tools station_routes "South Station" --data
gtfs-tools station_routes "South Station" --data --time-interval 60
gtfs-tools station_routes "South Station" --data --connection-type "Exit/Entrance"
gtfs-tools station_routes "South Station" --data --node-id door-sstat-dewey
gtfs-tools station_shortest_route "South Station" --data
station_shortest_route は、入口から出口までの時間ベースで最速ルートを見つけます。
データ編集 (接続)
gtfs-tools add_connection --from NODE_A --to NODE_B --traversal-time 45
gtfs-tools add_connection --from NODE_A --to NODE_B --bidirectional --pathway-mode 2 --stair-count 12
gtfs-tools update_connection --pathway-id PATHWAY_ID --traversal-time 60
gtfs-tools delete_connection --pathway-id PATHWAY_ID
通路モード: 1=歩道、2=階段、3=動く歩道、4=エスカレーター、5=エレベーター、6=改札口、7=出口ゲート。
まず通路 ID を見つけます。
gtfs-tools station_pathways "Park Street" --data
gtfs-tools query --sql "SELECT pathway_id, from_stop_id, to_stop_id, traversal_time FROM PathwaysView WHERE from_stop_id LIKE '%pktrm%'"
データ編集 (ノード)
gtfs-tools add_node --stop-id NEW_ID --lat 42.35 --lon -71.06 --parent-station place-pktrm
gtfs-tools add_node --stop-id door-new --stop-name "New Entrance" --lat 42.35 --lon -71.06 --location-type "Exit/Entrance" --parent-station place-pktrm
gtfs-tools update_node --stop-id NODE_ID --stop-name "Main Lobby"
gtfs-tools delete_node --stop-id NODE_ID
ロケーションタイプ: Station、Stop、Exit/Entrance、Generic Node、Boarding Area。
まず停止 ID を見つけます。
gtfs-tools query --name station-stops --args-json '{"stationId":"place-pktrm"}' --data
運行、スケジュール、サービスの編集
インポートしたフィードにサービス変更 (アラートページなどから) を適用します。CLI はアラートを読み取りません。変更内容を編集に変換します。完全な変更セット形式、読み取り→確認→確認→実装→レビューのワークフロー、およびアラート検証レポート形式 (データ内ステータス + アラート説明 + ソースリンク + クリック可能で CLI 検証済みのダッシュボードリンク) については、references/edits.md を参照してください。また、運行を別の路線に再ルーティングする方法 (例:「A/C を F 経由で運行」) についても説明されています。gtfs-tools reroute を使用します。これは、停留所を単にスキップするのではなく、ドナー路線の停留所を調整されたタイミングで組み込みます。gtfs-tools trip <id> --compare <donor_trip> --view map で表示します。
gtfs-tools add_trip --trip-id T2 --route-id R1 --service-id WKD --headsign "Uptown Express" --direction-id 0
gtfs-tools update_trip --trip-id T2 --headsign "Express" # 指定されたフィールドのみ変更
gtfs-tools delete_trip --trip-id T2 # stop_times に連鎖
gtfs-tools set_stop_times --trip-id T2 --stops-json '[{"stop_sequence":1,"stop_id":"S1","arrival_time":"09:00:00","departure_time":"09:00:00"}]'
gtfs-tools reroute --trip A_TRIP # 影響を受ける運行を直接rerouteフォームで開く
gtfs-tools reroute --trip A_TRIP --via F_TRIP --from "W 4 St-Wash Sq" --to "Jay St-MetroTech" # AをF経由でこれらの停留所間で運行
gtfs-tools remove_stops --trip T2 --stops "Spring St,Canal St" # スキップ/急行、駅迂回
gtfs-tools truncate_trip --trip T2 --to "14 St" # 短絡/早期終了
gtfs-tools split_trip --trip T2 --gap-from "Crescent St" --gap-to "Broadway Junction" --new-trip-id T2_SEC2 # 2区間分割
gtfs-tools add_calendar --service-id WKND --days sat,sun --start-date 20260101 --end-date 20261231
gtfs-tools update_calendar --service-id WKD --days mon,tue,wed,thu,fri,sat
gtfs-tools delete_calendar --service-id WKND
gtfs-tools add_calendar_date --service-id WKD --date 20260906 --exception-type 1 # 1=追加、2=日付のサービスを削除
gtfs-tools delete_calendar_date --service-id WKD --date 20260906
gtfs-tools add_service --service-id NEW --days mon,tue,wed,thu,fri --start-date 20260101 --end-date 20261231 --calendar-dates '[{"date":"20260906","exception_type":2}]'
gtfs-tools add_service --service-id NEW --days mon,tue,wed,thu,fri --start-date 20260101 --end-date 20261231 --added-dates '["20261126","20261225"]' --removed-dates '["20260906"]'
update_trip の引数はオプションです。指定されたフィールドのみが変更されます。
データのエクスポート
gtfs-tools export /path/to/export.zip
gtfs-tools export --format csv
gtfs-tools export --format geojson
gtfs-tools export --format gtfs
gtfs-tools export --format gtfs-zip
gtfs-tools export --format gtfs-unzip
gtfs-tools export --format gtfs-sql
gtfs-tools export --format gtfs-sql-zip
エクスポートは、編集、追加、削除を含む現在のデータセット全体を保存します。
SQL クエリ
gtfs-tools query --sql "SELECT * FROM stops LIMIT 5"
gtfs-tools query --named station-stops --args-json '{"stationId":"place-pktrm"}'
gtfs-tools query --named station-stops --args-json '{"stationId":"place-pktrm"}' --data
gtfs-tools query --file /path/to/query.sql
gtfs-tools query --describe
gtfs-tools query --describe --named
gtfs-tools query --describe --named station-stops
gtfs-tools query --walk --sql "SELECT * FROM stops" # DuckDB のクエリプランを表示
--named は references/examples.sql から SQL をロードします。--describe は --named を指定せずにすべての SQL 関数を表示し、--named とともに特定の名前付きクエリの詳細を表示します。--walk は DuckDB EXPLAIN ANALYZE 出力を解釈して表示します。
システムコマンド
gtfs-tools status
gtfs-tools dbinfo
gtfs-tools logs
gtfs-tools clear
gtfs-tools clear --force
gtfs-tools update
gtfs-tools uninstall-skill openai
gtfs-tools version
gtfs-tools help
gtfs-tools help import
gtfs-tools help add_connection