← Back to Skills Marketplace
brianleach

Capmetro Skill

by Brian Leach · GitHub ↗ · v1.0.3
cross-platform ✓ Security Clean
728
Downloads
0
Stars
0
Active Installs
4
Versions
Install in OpenClaw
/install capmetro-skill
Description
Austin CapMetro transit - real-time vehicle positions, next arrivals, service alerts, route info, and trip planning for buses and rail (MetroRail, MetroRapid...
README (SKILL.md)

CapMetro Austin Transit

Real-time Austin CapMetro transit data - vehicle positions, next arrivals, service alerts, and route information. No API key required.

When to Use

  • User asks about Austin bus or train schedules, arrival times, or delays
  • User asks "when is the next bus/train" or "is the 801 running"
  • User asks about CapMetro service alerts, detours, or disruptions
  • User wants to know where a bus/train currently is
  • User asks about nearby stops or route information
  • User mentions MetroRail (Red Line), MetroRapid (801/803), or any Austin bus route
  • User asks about CapMetro fares, how to ride, or general transit info

Data Sources

All feeds are open access, no API key required, hosted on the Texas Open Data Portal.

GTFS-RT (Real-Time) Feeds - Updated every 15 seconds

Feed Format URL
Vehicle Positions JSON https://data.texas.gov/download/cuc7-ywmd/text%2Fplain
Vehicle Positions Protobuf https://data.texas.gov/download/eiei-9rpf/application%2Foctet-stream
Trip Updates Protobuf https://data.texas.gov/download/rmk2-acnw/application%2Foctet-stream
Service Alerts Protobuf https://data.texas.gov/download/nusn-7fcn/application%2Foctet-stream

GTFS Static Feed - Route/Stop/Schedule data

Feed Format URL
GTFS Static (zip) ZIP https://data.texas.gov/download/r4v4-vz24/application%2Fx-zip-compressed

Implementation

Quick Start: Use the helper scripts

The scripts in this skill's scripts/ directory handle fetching, parsing, and presenting CapMetro data.

Script: scripts/capmetro.mjs

Main entry point. Supports these commands:

# Get current service alerts
node scripts/capmetro.mjs alerts

# Get real-time vehicle positions (optionally filter by route)
node scripts/capmetro.mjs vehicles [--route 801]

# Get next arrivals at a stop (by stop_id)
node scripts/capmetro.mjs arrivals --stop \x3Cstop_id>

# Get arrivals by searching stop name (uses best match)
node scripts/capmetro.mjs arrivals --stop-search "lakeline" --route 550

# Get arrivals filtered by direction/headsign
node scripts/capmetro.mjs arrivals --stop-search "downtown" --route 550 --headsign "lakeline"

# Get arrivals filtered by route at a stop
node scripts/capmetro.mjs arrivals --stop \x3Cstop_id> --route 801

# Search for stops by name or location
node scripts/capmetro.mjs stops --search "domain" 
node scripts/capmetro.mjs stops --near 30.4,-97.7

# List all routes
node scripts/capmetro.mjs routes

# Get route details including stops
node scripts/capmetro.mjs route-info --route 801

# Download/refresh GTFS static data (run periodically)
node scripts/capmetro.mjs refresh-gtfs

Setup: GTFS Static Data

On first use, run node scripts/capmetro.mjs refresh-gtfs to download and extract the static GTFS data (routes, stops, schedules) to ~/.capmetro/gtfs/. This only needs to be refreshed when CapMetro updates their schedule (typically quarterly or during service changes).

Key Route Reference

Route Name Type
550 MetroRail Red Line Rail (Leander ↔ Downtown)
801 MetroRapid North/South Rapid Bus (Tech Ridge ↔ Southpark Meadows)
803 MetroRapid Burnet/South Lamar Rapid Bus (Domain ↔ Westgate)
1 N Lamar/S Congress Local Bus
7 Duval/Dove Springs Local Bus
10 S 1st/Red River Local Bus
20 Manor Rd/Riverside Local Bus
300 Oltorf/Riverside Crosstown Crosstown Bus
325 Ohlen/Loyola Crosstown Bus
985 Night Owl Late Night Service

Tips for Users

  • Stop IDs can be found on CapMetro stop signs, in the Transit app, or by searching with the stops command
  • MetroRapid 801/803 have the most frequent service (every 10-12 minutes during peak)
  • MetroRail Red Line (550) runs Leander to Downtown Austin with limited frequency
  • Service alerts often contain detour information - check alerts before advising routes
  • Vehicle position data updates every ~15 seconds, so locations are near real-time

Error Handling

  • If a feed returns an error or empty data, inform the user that real-time data may be temporarily unavailable
  • The JSON vehicle positions feed is easier to parse and a good fallback if protobuf parsing fails
  • GTFS static data is required for stop names, route names, and schedule lookups - ensure it's been downloaded

Response Formatting

When presenting transit info to the user:

  • Lead with the most actionable info (next arrival time, active alerts)
  • Include route number AND name (e.g., "Route 801 MetroRapid")
  • Show times in 12-hour format with AM/PM
  • For delays, show both scheduled and estimated times
  • For vehicle positions, describe location relative to landmarks when possible
  • If there are active service alerts for the route the user asked about, always mention them

Fares Reference (as of 2025)

Fare Type Price
Local / MetroRapid $1.25
MetroRail $3.50 (single)
Day Pass $2.50
7-Day Pass $11.25
31-Day Pass $41.25

Payment via Umo app, tap-to-pay, or fare card. Free transfers within 2 hours.

External Endpoints

Endpoint Data Sent Data Received
data.texas.gov/download/cuc7-ywmd/... None (GET only) Vehicle positions (JSON)
data.texas.gov/download/eiei-9rpf/... None (GET only) Vehicle positions (Protobuf)
data.texas.gov/download/rmk2-acnw/... None (GET only) Trip updates (Protobuf)
data.texas.gov/download/nusn-7fcn/... None (GET only) Service alerts (Protobuf)
data.texas.gov/download/r4v4-vz24/... None (GET only) GTFS static data (ZIP)

All endpoints are open-access Texas Open Data Portal URLs. No API key, authentication, or user data is transmitted.

Security & Privacy

  • No credentials required - all data sources are open access, no API keys or tokens
  • No user data transmitted - requests are anonymous GET calls with no query parameters containing user info
  • Local storage only - GTFS static data is cached locally at ~/.capmetro/gtfs/; no data is written elsewhere
  • No telemetry - this skill does not phone home or collect usage data
  • Input handling - stop names and route IDs from user input are used only for local filtering, never interpolated into URLs or shell commands

Trust Statement

This skill only reads publicly available transit data from the Texas Open Data Portal. It does not access, store, or transmit any personal information. All network requests are read-only GET calls to open government data feeds.

Usage Guidance
This skill appears to do what it claims: fetch public CapMetro GTFS/GTFS-RT data and present arrivals/vehicle positions. Before installing, confirm you trust the source (the GitHub repo listed) and that you're comfortable with these practical points: (1) it requires Node.js and the system 'unzip' binary and will run npm install (protobufjs) in the skill directory; (2) it will download and extract a GTFS ZIP into ~/.capmetro/gtfs and will overwrite files there when refreshing (the script uses unzip -o); (3) it only makes read-only GET requests to data.texas.gov (no credentials required). If you want extra caution, review the full scripts/capmetro.mjs file locally or run the skill in a sandboxed environment; optionally inspect the GTFS ZIP contents before extraction or modify the script to validate zip entries.
Capability Analysis
Type: OpenClaw Skill Name: capmetro-skill Version: 1.0.3 The OpenClaw AgentSkills skill bundle for CapMetro transit appears benign. It adheres to its stated purpose of fetching and displaying public transit data from the Texas Open Data Portal. The `SKILL.md` and `scripts/capmetro.mjs` explicitly declare security and privacy practices, which are consistent with the code's behavior: no credentials required, no user data transmitted, and data is cached locally in `~/.capmetro/gtfs/`. The use of `execFileSync` for `unzip` to extract GTFS static data is a standard practice, with arguments passed as an array, mitigating shell injection risks. User inputs are used for internal filtering and searching, not for constructing shell commands or external URLs. There is no evidence of data exfiltration, persistence mechanisms, or malicious prompt injection attempts against the AI agent.
Capability Assessment
Purpose & Capability
Name/description (CapMetro transit data) match the included files and runtime behavior. The script fetches GTFS and GTFS-RT feeds from the Texas Open Data Portal, parses protobuf/JSON feeds, and uses GTFS static files for stop/route lookups. Required binaries (node, unzip) are reasonable for a Node.js script that downloads and extracts a ZIP.
Instruction Scope
SKILL.md and README instruct the agent/user to run npm install and to run the included node script and refresh-gtfs. The runtime instructions are narrowly scoped to fetching/parsing CapMetro feeds and caching GTFS in ~/.capmetro/gtfs. The skill documentation and the script explicitly state there are no env vars or other system-wide reads. Note: the skill will write files under the user's home directory (~/.capmetro/gtfs) and will make outbound GET requests to data.texas.gov; this is expected but worth noting.
Install Mechanism
There is no automated registry install spec, but SKILL.md (and the README) instructs running npm install (or an inline npm install --prefix $SKILL_DIR protobufjs). The package.json declares protobufjs as a dependency and package-lock.json references public npm packages — this is proportionate. The script uses the system 'unzip' via execFileSync to extract the downloaded GTFS ZIP; the feed URL is data.texas.gov (a well-known public host). Minor caution: extracting remote archives with system unzip (-o) can overwrite files; the code writes into ~/.capmetro/gtfs and does not validate archive contents for path traversal or unexpected filesystem writes, which is a generic risk when extracting remote archives but consistent with the skill's purpose.
Credentials
The skill declares no required env vars or credentials and the code does not read credentials. All external endpoints are the Texas Open Data Portal URLs listed in SKILL.md and the script comments. There are no unexpected secrets requested.
Persistence & Privilege
The skill is not always-included and can be invoked by the user or the agent. It persists cached GTFS files under the user's home directory (~/.capmetro/gtfs) which is reasonable for this use. It does not modify other skills or global agent configuration.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install capmetro-skill
  3. After installation, invoke the skill by name or use /capmetro-skill
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.3
Fix vehicles command showing zero results (camelCase routeId field)
v1.0.2
List files explicitly in manifest to satisfy ClawHub scanner
v1.0.1
declare unzip as required binary dependency
v1.0.0
Initial release
Metadata
Slug capmetro-skill
Version 1.0.3
License
All-time Installs 0
Active Installs 0
Total Versions 4
Frequently Asked Questions

What is Capmetro Skill?

Austin CapMetro transit - real-time vehicle positions, next arrivals, service alerts, route info, and trip planning for buses and rail (MetroRail, MetroRapid... It is an AI Agent Skill for Claude Code / OpenClaw, with 728 downloads so far.

How do I install Capmetro Skill?

Run "/install capmetro-skill" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Capmetro Skill free?

Yes, Capmetro Skill is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Capmetro Skill support?

Capmetro Skill is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Capmetro Skill?

It is built and maintained by Brian Leach (@brianleach); the current version is v1.0.3.

💬 Comments