Västerbotten & Umeå public transport trip planner (Tabussen/Ultra). Plans bus journeys using ResRobot API. Supports stops, addresses, coordinates, regional and local routes throughout Västerbotten county.
数据来源:ClawHub。 在 ClawSkills 查看
选择你使用的 Agent
方法一:命令行安装(推荐)
推荐(无需提前安装 clawhub)
npx clawhub@latest --dir ~/.claude/skills install tabussen或使用 clawhub CLI(需提前安装)
clawhub --dir ~/.claude/skills install tabussen⚠️ 需要 Node.js 18+,没有 Node?请使用下方方法二直接下载 ZIP。 安装 Node.js →
方法二:手动下载安装(无需 Node)
下载 ZIP,解压后将文件夹放到以下路径,重启 Agent 即可:
安装路径
~/.claude/skills/tabussen/💡解压后将文件夹放到上方路径,重启 Agent 即可生效
--- name: tabussen description: Västerbotten & Umeå public transport trip planner (Tabussen/Ultra). Plans bus journeys using ResRobot API. Supports stops, addresses, coordinates, regional and local routes throughout Västerbotten county. license: MIT compatibility: Requires curl, jq. Works with Claude Code and compatible agents. metadata: author: simskii version: "1.0.0" region: sweden-vasterbotten ---
Plan public transport journeys in Västerbotten, Sweden - including Umeå local traffic (Ultra) and regional routes (Länstrafiken Västerbotten).
This skill uses the ResRobot API (Trafiklab) to provide journey planning for Tabussen/Ultra. ResRobot is Sweden's national public transport API covering all operators including Länstrafiken Västerbotten.
Coverage:
Search for stops, stations, or points of interest.
./search-location.sh <query> [limit]
| Argument | Description | |----------|-------------| | query | Location name to search for (append ? for fuzzy search) | | limit | Number of results to show (default: 5, max: 10) |
Output includes:
ID - The stop identifier (use this in journey search)Name - Official name of the stopCoordinates - Latitude, longitudeWeight - Traffic volume indicator (higher = more traffic)Search tips:
? suffix for fuzzy/partial matching: "Vasaplan?" ?: "Vasaplan""Umeå Vasaplan"Plan a journey between two locations using their IDs.
./journey.sh <from-id> <to-id> [datetime] [mode]
| Argument | Description | |----------|-------------| | from-id | Origin stop ID (from search) | | to-id | Destination stop ID | | datetime | Optional: "18:30", "tomorrow 09:00", "2026-01-28 14:00" | | mode | Optional: "depart" (default) or "arrive" |
Coordinate-based search:
./journey.sh "63.825#20.263" <to-id> [datetime] [mode]
Use lat#lon format for coordinates (WGS84 decimal degrees).
---
Before searching, understand what the user wants:
| User Says | Intent | How to Query | |-----------|--------|--------------| | "now", "next bus", "how do I get to" | Travel Now | No datetime parameter | | "in 30 minutes", "in 1 hour" | Depart Later | Calculate time, use depart mode | | "around 15:00", "sometime afternoon" | Around Time | Query with offset (see below) | | "arrive by 18:00", "need to be there at 9" | Arrive By | Use arrive mode | | "tomorrow morning", "on Friday at 10" | Future Time | Use specific datetime |
When user wants options "around" a time, query 15-30 minutes earlier to show options before and after:
# User: "I want to travel around 15:00"
# Query at 14:30 to get options spanning 14:30-16:00+
./journey.sh ... "14:30" depart
Convert relative times to absolute:
| User Says | Current: 14:00 | Query Time | |-----------|----------------|------------| | "in 30m" | -> | "14:30" | | "in 1h" | -> | "15:00" | | "in 2 hours" | -> | "16:00" |
---
When presenting journey results to users, use these emojis and formatting guidelines.
| Emoji | Use For | |-------|---------| | bus | Bus (Tabussen/Ultra) | | train | Train | | walk | Walking segment | | clock | Time/duration | | clock1 | Departure time | | goal | Arrival time | | pin | Stop/station | | house | Origin (home/start) | | target | Destination | | warning | Delay or disruption | | check | On time | | arrows_counterclockwise | Transfer/change |
Always include these key elements from the tool output:
For a simple direct journey:
**Leave now** from Vasaplan
**Vasaplan** -> **Universitetet**
Bus 1 (mot Mariehem) departs 09:07
Arrives 09:18 at Universitetet
Total: 11 min
For a journey with transfer:
**Leave at 08:45**
Walk 300m to Vasaplan (~4 min)
**Vasaplan** -> **Umeå C** -> **Skellefteå**
**Leg 1:**
Bus 1 departs 08:51
Arrives Umeå C 09:05
Transfer at Umeå C (15 min)
**Leg 2:**
Bus 100 (mot Skellefteå) departs 09:20
Arrives Skellefteå busstation 11:45
Total: 3h | 1 change
Always show walking details:
When showing journey options, make timing crystal clear:
I found 3 options for you:
**Option 1 - Leave now (09:00)** Recommended
Walk 5 min -> Bus 1 at 09:07 -> arrives 09:25
Total: 25 min
**Option 2 - Leave in 15m (09:15)**
Walk 5 min -> Bus 1 at 09:22 -> arrives 09:40
Total: 25 min
**Option 3 - Leave in 30m (09:30)**
Walk 5 min -> Bus 8 at 09:37 -> arrives 09:48
Total: 18 min | Faster but later departure
Which works best for you?
---
Follow this workflow when a user asks for a trip:
Parse what the user wants:
Search for origin and destination separately:
./search-location.sh "Vasaplan?"
./search-location.sh "Universitetet?"
Check each result carefully:
When results don't match or are ambiguous, ask clarifying questions:
I searched for "centrum" and found multiple locations:
1. Umeå Vasaplan (central bus hub)
2. Skellefteå centrum
3. Lycksele centrum
Which one did you mean?
When no results are found, try these strategies:
```bash # If "Storgatan 10" fails, try: ./search-location.sh "Storgatan 10, Umeå?" ```
```bash # "Universitetet" -> "Umeå universitet" # "Sjukhuset" -> "NUS" or "Norrlands universitetssjukhus" ```
```bash ./search-location.sh "univ?" ```
Once you have confirmed IDs for both locations:
./journey.sh <from-id> <to-id> [datetime] [mode]
Use the formatting guide above to present results clearly. Always use actual numbers from the tool output - never estimate or speculate.
---
The search API is sensitive to formatting. Follow these rules:
...
安装 Tabussen 后,可以对 AI 说这些话来触发它
Help me get started with Tabussen
Explains what Tabussen does, walks through the setup, and runs a quick demo based on your current project
Use Tabussen to västerbotten & Umeå public transport trip planner (Tabussen/Ultra)
Invokes Tabussen with the right parameters and returns the result directly in the conversation
What can I do with Tabussen in my marketing & growth workflow?
Lists the top use cases for Tabussen, with example commands for each scenario
将技能文件夹放到 ~/.claude/skills/tabussen/ 目录(个人级,所有项目可用),或 .claude/skills/tabussen/(项目级)。重启 AI 客户端后,用 /tabussen 主动调用,或让 AI 根据上下文自动发现并使用。
Tabussen 支持 Claude、Cursor、OpenClaw,可与这些 AI 平台无缝集成,扩展其能力。
Tabussen 可免费安装使用。请查阅仓库了解许可证信息。
Västerbotten & Umeå public transport trip planner (Tabussen/Ultra). Plans bus journeys using ResRobot API. Supports stops, addresses, coordinates, regional and local routes throughout Västerbotten county.
Tabussen 属于「Marketing & Growth」分类,该分类的技能帮助 AI 智能体在此领域执行专业任务。
Automate my marketing & growth tasks using Tabussen
Identifies repetitive steps in your workflow and sets up Tabussen to handle them automatically