gtfs-sqljs

Load GTFS transit data into a SQLite database in browser or Node.js.

Updated Nov 5, 2025
One-click install
npx skills add https://github.com/sysdevrun/gtfs-sqljs --skill gtfs-sqljs
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: gtfs-sqljs
Source: https://github.com/sysdevrun/gtfs-sqljs/tree/main/.claude/skills/gtfs-sqljs
Command: npx skills add https://github.com/sysdevrun/gtfs-sqljs --skill gtfs-sqljs

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

GTFS data processing often requires server-side backends to query schedules; this Skill enables client-side or lightweight environments to load GTFS data into a fast, queryable SQLite database, eliminating back-end dependencies.

Core Features & Use Cases

  • Load static GTFS data from ZIP files or pre-loaded buffers into a sql.js-based SQLite database for fast, offline-ready queries.
  • Merge static GTFS with GTFS-RT realtime feeds to reflect current schedules and vehicle positions.
  • Works in both browser and Node.js, with Web Worker recommendations to keep UIs responsive and optional caching for faster reloads.
  • Use cases include building transit dashboards, offline trip planners, and client-side analytics in web apps.

Quick Start

Install gtfs-sqljs and load a GTFS ZIP to create a queryable SQLite database.

Frequently Asked Questions about gtfs-sqljs

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I load static GTFS data into SQLite for client-side queries without a backend?

Load static GTFS data into SQLite by importing ZIP files or pre-loaded buffers into a sql.js database for fast, offline-ready client-side queries. This eliminates server-side backend dependencies by enabling direct browser or Node.js transit schedule processing.

Can I merge GTFS-RT realtime feeds with static GTFS data in the browser?

Merge GTFS-RT realtime feeds with static GTFS data in the browser to reflect current schedules and vehicle positions. This functionality updates the SQLite database with live transit information for accurate, real-time client-side trip planning.

Does loading GTFS data into SQLite work with Web Workers to keep the UI responsive?

Loading GTFS data into SQLite works with Web Workers and Comlink to keep browser UIs responsive. Moving database construction and data loading off the main thread prevents interface blocking during heavy transit schedule processing operations.

What is the best way to cache GTFS transit data for faster offline reloads in web apps?

Cache GTFS transit data using optional caching features during SQLite database construction for faster offline reloads in web apps. This approach stores queryable schedules locally, enabling quick subsequent loads without reprocessing the entire ZIP file.

Can I use TypeScript types when querying GTFS data loaded into a SQLite database?

Use exposed TypeScript types when querying GTFS data loaded into the SQLite database to ensure type-safe integration. Multiple constructors like fromZip, fromZipData, and fromDatabase provide flexible setup options for TypeScript application development.