linz-public-transport
Query Linz Linien raw EFA endpoints for stop lookup and live departures.
Setup & Installation
Install command
clawhub install fjrevoredo/linz-public-transportIf the CLI is not installed:
Install command
npx clawhub@latest install fjrevoredo/linz-public-transportOr install with OpenClaw CLI:
Install command
openclaw skills install fjrevoredo/linz-public-transportor paste the repo link into your assistant's chat
Install command
https://github.com/openclaw/skills/tree/main/skills/fjrevoredo/linz-public-transportWhat This Skill Does
Queries Linz Linien EFA endpoints to look up stops by name and fetch live departure times. Uses a Python script against the official Linz AG API with no external dependencies beyond the standard library.
Queries the official Linz Linien EFA API directly instead of relying on third-party transit apps or scrapers, giving access to raw departure data programmably.
When to Use It
- Check next tram departures from a Linz stop before leaving home
- Resolve a stop name to its numeric stop ID for automation
- Fetch departures for a specific stop ID in a script or workflow
- Find stops matching a partial name or street
- Monitor upcoming buses from a stop during a commute
View original SKILL.md file
# Linz Public Transport
Use this skill to interact with Linz Linien EFA endpoints:
- `GET /efa/XML_STOPFINDER_REQUEST`
- `GET /efa/XML_DM_REQUEST`
Read endpoint details in `{baseDir}/references/endpoints.md` before implementation.
Use `{baseDir}/scripts/linz_transport.py` as the default execution path.
## Workflow
1. Resolve the API base URL.
2. Run the script subcommand that matches the task.
3. Return a compact, user-facing summary.
## Primary Tooling
- Script path: `{baseDir}/scripts/linz_transport.py`
- Runtime: Python 3, standard library only.
- Base URL input:
- `--base-url <url>` argument, or
- `LINZ_TRANSPORT_API_BASE_URL` environment variable, or
- default `http://www.linzag.at/linz2`.
Preferred commands:
- Search stops:
- `python {baseDir}/scripts/linz_transport.py stops "taubenmarkt"`
- Fetch departures by stop ID:
- `python {baseDir}/scripts/linz_transport.py departures --stop-id 60501160 --limit 10`
- Resolve stop and fetch departures in one call:
- `python {baseDir}/scripts/linz_transport.py next "taubenmarkt" --limit 10 --pick-first`
## Step 1: Resolve Base URL
- Use user-provided base URL first.
- Otherwise use `LINZ_TRANSPORT_API_BASE_URL` if available.
- If neither exists, use `http://www.linzag.at/linz2`.
## Step 2: Present Output
- Sort by `countdownInMinutes` ascending if needed.
- Show the next 5-10 departures unless user asks for more.
- Include both relative (`countdownInMinutes`) and absolute (`time`) times.
- Keep field names stable when returning JSON.
## Error Handling
- If stop search returns empty list, suggest nearby spellings and retry with a shorter query token.
- If multiple stop matches are returned, rerun with explicit `--stop-id` or use `next ... --pick-first` only when ambiguity is acceptable.
- If departures response is empty, state that no upcoming departures are currently available.
- If HTTP request fails, report status code, endpoint, and retry guidance.
- If EFA response includes a `message` code, include that code in diagnostics.
## Minimal Examples
```bash
python {baseDir}/scripts/linz_transport.py stops "taubenmarkt"
python {baseDir}/scripts/linz_transport.py departures --stop-id 60501160 --limit 10
python {baseDir}/scripts/linz_transport.py next "taubenmarkt" --limit 10 --pick-first
```
```powershell
python "{baseDir}/scripts/linz_transport.py" stops "taubenmarkt"
python "{baseDir}/scripts/linz_transport.py" departures --stop-id 60501160 --limit 10
python "{baseDir}/scripts/linz_transport.py" next "taubenmarkt" --limit 10 --pick-first
```
Example Workflow
Here's how your AI assistant might use this skill in practice.
User asks: Check next tram departures from a Linz stop before leaving home
- 1Check next tram departures from a Linz stop before leaving home
- 2Resolve a stop name to its numeric stop ID for automation
- 3Fetch departures for a specific stop ID in a script or workflow
- 4Find stops matching a partial name or street
- 5Monitor upcoming buses from a stop during a commute
Query Linz Linien raw EFA endpoints for stop lookup and live departures.
Security Audits
These signals reflect official OpenClaw status values. A Suspicious status means the skill should be used with extra caution.
Similar Skills
VIEW ALLAgent Browser
A fast Rust-based headless browser automation CLI.
babyconnect
ActiveCampaign CRM integration for lead management, deal tracking.
bits
Control browser automation agents via the Bits MCP server.
testskillx
Simple test skill that calls a GET endpoint to fetch a daily post.