# Send Cta Skill to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "cta",
    "name": "Cta Skill",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/brianleach/cta",
    "canonicalUrl": "https://clawhub.ai/brianleach/cta",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/cta",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=cta",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "CLAUDE.md",
      "README.md",
      "SKILL.md",
      "package-lock.json",
      "package.json",
      "scripts/cta.mjs"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "cta",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-29T17:12:11.700Z",
      "expiresAt": "2026-05-06T17:12:11.700Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=cta",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=cta",
        "contentDisposition": "attachment; filename=\"cta-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "cta"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/cta"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/cta",
    "downloadUrl": "https://openagent3.xyz/downloads/cta",
    "agentUrl": "https://openagent3.xyz/skills/cta/agent",
    "manifestUrl": "https://openagent3.xyz/skills/cta/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/cta/agent.md"
  }
}
```
## Documentation

### CTA Chicago Transit

Real-time Chicago CTA transit data — L train arrivals, bus predictions, service alerts, and route information. Requires free API keys for train and bus data; alerts work without any keys.

### When to Use

User asks about CTA, L train, Blue Line, Red Line, Brown Line, or any Chicago rail line
User asks about Chicago bus routes, bus tracker, or train tracker
User asks "when is the next train" or "is the Red Line running" in a Chicago context
User mentions specific CTA stations (O'Hare, Midway, Clark/Lake, Belmont, etc.)
User asks about CTA fares, Ventra, or how to ride Chicago transit
User asks about CTA service alerts, delays, or detours
User asks about nearby stops or route information in Chicago

### Data Sources

CTA uses 3 proprietary REST APIs. Train Tracker and Bus Tracker require free API keys. Customer Alerts is open access.

### Train Tracker API (requires CTA_TRAIN_API_KEY)

Get a free key at: https://www.transitchicago.com/developers/traintrackerapply/

EndpointDescriptionArrivals by station (mapid)Train arrivals at a parent stationArrivals by stop (stpid)Train arrivals at a directional stopTrain positions (rt)Live positions of all trains on a lineFollow a run (runnumber)Track a specific train run

Data refreshes approximately once per minute. Daily limit: 50,000 requests per key.

### Bus Tracker API v2 (requires CTA_BUS_API_KEY)

Get a free key at: https://www.transitchicago.com/developers/bustracker/

EndpointDescriptionPredictions by stopBus arrival predictions at a stopPredictions by vehiclePredictions for a specific busVehicle locationsLive bus positions on a routeRoutes listAll active bus routesRoute directionsAvailable directions for a routeStops for route/directionAll stops along a route

Bus data updates approximately every 30 seconds.

### Customer Alerts API (NO key required)

EndpointDescriptionRoute statusesCurrent status of all routesAll alertsAll active service alertsAlerts by routeAlerts filtered by routeAlerts by stationAlerts filtered by station

### GTFS Static Feed

FeedFormatURLGTFS Static (zip)ZIPhttps://www.transitchicago.com/downloads/sch_data/google_transit.zip

Used for stop names, route info, and schedule lookups. Same stop IDs used across all APIs.

### Quick Start: Use the helper scripts

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

### Script: scripts/cta.mjs

Main entry point. Supports these commands:

# L train arrivals
node scripts/cta.mjs arrivals --station "Clark/Lake"
node scripts/cta.mjs arrivals --mapid 40380
node scripts/cta.mjs arrivals --stop 30070
node scripts/cta.mjs arrivals --stop-search "ohare"
node scripts/cta.mjs arrivals --stop-search "belmont" --route Red

# Bus predictions
node scripts/cta.mjs bus-arrivals --stop 456
node scripts/cta.mjs bus-arrivals --stop 456 --route 22
node scripts/cta.mjs bus-arrivals --stop-search "michigan"

# Vehicle tracking
node scripts/cta.mjs vehicles --route Red
node scripts/cta.mjs bus-vehicles --route 22

# Service alerts
node scripts/cta.mjs alerts
node scripts/cta.mjs alerts --route Red

# Routes and stops
node scripts/cta.mjs routes
node scripts/cta.mjs bus-routes
node scripts/cta.mjs stops --search "belmont"
node scripts/cta.mjs stops --near 41.8781,-87.6298 --radius 0.3
node scripts/cta.mjs route-info --route Red
node scripts/cta.mjs route-info --route 22

# Maintenance
node scripts/cta.mjs refresh-gtfs

### Setup: API Keys

Train and bus commands require free API keys:

Train Tracker key: Apply at https://www.transitchicago.com/developers/traintrackerapply/
Bus Tracker key: Apply at https://www.transitchicago.com/developers/bustracker/
Set environment variables: CTA_TRAIN_API_KEY and CTA_BUS_API_KEY

Alert commands work without any keys.

### Setup: GTFS Static Data

On first use, run node scripts/cta.mjs refresh-gtfs to download and extract the static GTFS data (routes, stops, schedules) to ~/.cta/gtfs/. This only needs to be refreshed when CTA updates their schedule.

### L Train Lines Reference

Route CodeLineTerminalsRedRed LineHoward ↔ 95th/Dan RyanBlueBlue LineO'Hare ↔ Forest ParkBrnBrown LineKimball ↔ LoopGGreen LineHarlem/Lake ↔ Ashland/63rd or Cottage GroveOrgOrange LineMidway ↔ LoopPPurple LineLinden ↔ Howard (Express to Loop weekdays)PinkPink Line54th/Cermak ↔ LoopYYellow LineDempster-Skokie ↔ Howard

### Key Bus Routes Reference

RouteNameNotes22ClarkMajor north-south corridor36BroadwayNorth Side lakefront77BelmontMajor east-west crosstown151SheridanLakefront express146Inner Drive/Michigan ExpressLoop to north lakefront8HalstedLong north-south route9AshlandMajor north-south corridor49WesternLongest route in system66ChicagoMajor east-west route7979thMajor south side east-west

### CTA Fares Reference (2026)

Fare TypePriceRegular (Ventra/contactless)$2.50Bus transfer$0.25Rail-to-rail transferFree within 2 hoursReduced fare$1.251-Day Pass$5.003-Day Pass$15.007-Day Pass$20.0030-Day Pass$75.00

Payment via Ventra card, Ventra app, or contactless bank card. Transfers valid for 2 hours.

### Tips for Users

Station IDs are in the 4xxxx range (parent stations); stop IDs in the 3xxxx range (directional)
Use --station or --stop-search for name-based lookups; use --mapid for exact station IDs
Alerts always work — no API key needed — so check alerts first if something seems wrong
Train data refreshes ~1 minute; bus data refreshes ~30 seconds
For the Loop, trains may show as arriving from different directions depending on the line

### Error Handling

If CTA_TRAIN_API_KEY is not set, train commands print a helpful message with the signup URL
If CTA_BUS_API_KEY is not set, bus commands print a helpful message with the signup URL
Alert commands always work (no key required)
Invalid station/stop searches show "No matching station found" with suggestions
Network errors and API error responses produce friendly messages

### Response Formatting

When presenting transit info to the user:

Lead with the most actionable info (next arrival time, active alerts)
Show times in 12-hour format with AM/PM
Include line color AND destination (e.g., "Red Line toward 95th/Dan Ryan")
For trains: show "Due" for imminent arrivals, minutes for upcoming
For bus predictions, show estimated minutes until arrival
If there are active service alerts for the route being queried, always mention them

### External Endpoints

EndpointData SentData Receivedhttps://lapi.transitchicago.com/api/1.0/ttarrivals.aspxAPI key (query param, HTTPS)Train arrivals (JSON)https://lapi.transitchicago.com/api/1.0/ttpositions.aspxAPI key (query param, HTTPS)Train positions (JSON)https://lapi.transitchicago.com/api/1.0/ttfollow.aspxAPI key (query param, HTTPS)Train run details (JSON)https://www.ctabustracker.com/bustime/api/v2/*API key (query param, HTTPS)Bus predictions/positions (JSON)https://www.transitchicago.com/api/1.0/routes.aspxNone (GET only)Route statuses (JSON)https://www.transitchicago.com/api/1.0/alerts.aspxNone (GET only)Service alerts (JSON)https://www.transitchicago.com/downloads/sch_data/google_transit.zipNone (GET only)GTFS static data (ZIP)

All API calls use HTTPS. API keys are passed as query parameters to CTA's official APIs. No other user data is transmitted.

### Security & Privacy

API keys required — Train and Bus Tracker APIs require free developer keys passed as URL query parameters
No user data transmitted — requests contain only API keys and route/stop identifiers, no personal information
Local storage only — GTFS static data is cached locally at ~/.cta/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 shell commands

### Trust Statement

This skill reads publicly available transit data from CTA's official APIs. API keys are used only for CTA API authentication. The skill does not access, store, or transmit any personal information beyond the API keys configured by the user.
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: brianleach
- Version: 1.0.0
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-04-29T17:12:11.700Z
- Expires at: 2026-05-06T17:12:11.700Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/cta)
- [Send to Agent page](https://openagent3.xyz/skills/cta/agent)
- [JSON manifest](https://openagent3.xyz/skills/cta/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/cta/agent.md)
- [Download page](https://openagent3.xyz/downloads/cta)