Install
openclaw skills install @patello/sl-trafiklab-apiFetch real-time SL (Stockholm public transport) departures and deviation information using a Python CLI tool. Use when checking departures, querying transit delays, or saving favorite sites and routes for quick status checks.
openclaw skills install @patello/sl-trafiklab-apiThis skill retrieves real-time departure and deviation information from SL (Stockholm public transport) via a Python CLI client. It does NOT require registration of sites to make queries—you can query departures and deviations for any site or line on demand. The favorites configuration allows you to save frequently used stops and routes to run quick status checks (e.g., departures, disruptions, and safety buffers) without re-entering names or IDs.
The most critical task when checking saved routes is to filter out noise. The user should not be notified about disruptions at sites or lines they are not actually using on that specific route.
Your favorite stops and routes are stored in your workspace at .sl/preferences.json.
You must interact with this configuration exclusively via the site save/remove and route save/remove subcommands, which handle validation.
The skill is written for the ClawHub-installed layout: it lives in the agent workspace under skills/sl-trafiklab-api/ and all commands are invoked as python3 skills/sl-trafiklab-api/scripts/cli.py from the agent workspace root (e.g. ~/.openclaw/workspace-assistant).
Always run the CLI from the agent workspace root, not from inside the skill directory. The preferences.json path is resolved relative to the current working directory, not the skill directory. Running from any other directory will cause route check, site check, and other preference-dependent commands to silently report "not found."
Use python3 (not python) as the invocation command on systems where Python 3 is installed without a python symlink.
--direction FlagThe --direction flag on site departures accepts numeric codes only (1 or 2), not destination names. Passing destination name strings (e.g. "Märsta") will be rejected with a helpful error message.
route find Time Outputroute find returns departure and arrival times in UTC. Always convert to the user's local timezone (Europe/Stockholm) before presenting results.
The --time and --date inputs are interpreted as Stockholm local time (i.e. --time 15:00 means a 15:00 local departure), while the returned leg times are UTC. Do not confuse the two: with summer time (CEST, UTC+2), a --time 12:00 request may show first legs around 10:00 UTC on screen — that is correct, not a bug.
All actions are performed by invoking python3 skills/sl-trafiklab-api/scripts/cli.py. For detailed command arguments and response layouts, refer to references/api.md.
python3 skills/sl-trafiklab-api/scripts/cli.py site list "<query>"python3 skills/sl-trafiklab-api/scripts/cli.py site departures <site_id> [--line <line>] [--transport <mode>] [--direction <dir>] [--forecast <forecast>]--direction filters by numeric code (1/2). Line/direction filters are applied locally so the response is not truncated to the API's server-side cap (filtered requests return only a small subset, ~3 rows). The board still covers roughly the next hour; for a fuller schedule or planning use route find.python3 skills/sl-trafiklab-api/scripts/cli.py site check [<site_id>] [-v]python3 skills/sl-trafiklab-api/scripts/cli.py site save <site_id> "<display_name>" [--lines <lines>] [--modes <modes>] / python3 skills/sl-trafiklab-api/scripts/cli.py site remove <site_id>python3 skills/sl-trafiklab-api/scripts/cli.py route check [<alias>] [-v]python3 skills/sl-trafiklab-api/scripts/cli.py route find <origin_or_alias> [<destination>] [--time <HH:MM>] [--date <YYYY-MM-DD>] [--number <1-3>] [--all] [--via <via_stop>] [--dwell-time <HH:MM>] [--not-via <avoid_stop>]python3 skills/sl-trafiklab-api/scripts/cli.py route save <origin> <destination> <alias> [--time <HH:MM>] [--date <YYYY-MM-DD>]route find query (run with the exact same origin, destination, time, and date parameters to ensure option alignment). Used to monitor transfer connection safety buffers at specific steps.
python3 skills/sl-trafiklab-api/scripts/cli.py route save <origin> <destination> <proposal_index> <alias> [--time <HH:MM>] [--date <YYYY-MM-DD>]python3 skills/sl-trafiklab-api/scripts/cli.py route save <alias> '<legs_json>'python3 skills/sl-trafiklab-api/scripts/cli.py route remove <alias>[!TIP] Workflow: Saving a Route with Specific Constraints (e.g., specific line or transfer points) To save a route with specific constraints (for example, to restrict a connection to a specific bus/train line or path):
- Run
python3 skills/sl-trafiklab-api/scripts/cli.py route find "<origin>" "<destination>" [--time <HH:MM>] [--date <YYYY-MM-DD>]to list travel proposals.- Identify the option index (e.g., Option 1, Option 2) from the search output that meets the constraints.
- Save using the option index, passing the exact same time/date parameters to ensure option alignment:
python3 skills/sl-trafiklab-api/scripts/cli.py route save "<origin>" "<destination>" <option_index> "<alias>" [--time <HH:MM>] [--date <YYYY-MM-DD>].
python3 skills/sl-trafiklab-api/scripts/cli.py deviations [--site <site_id>] [--line <line>] [--future]