{
  "schemaVersion": "1.0",
  "item": {
    "slug": "a-nach-b",
    "name": "A nach B - AT Public Transport Service (VOR)",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/manmal/a-nach-b",
    "canonicalUrl": "https://clawhub.ai/manmal/a-nach-b",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/a-nach-b",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=a-nach-b",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "departures.sh",
      "disruptions.sh",
      "route.sh",
      "search.sh",
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "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."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "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. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/a-nach-b"
    },
    "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."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/a-nach-b",
    "agentPageUrl": "https://openagent3.xyz/skills/a-nach-b/agent",
    "manifestUrl": "https://openagent3.xyz/skills/a-nach-b/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/a-nach-b/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "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."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "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. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "VOR AnachB - Austrian Public Transport API",
        "body": "Query Austrian public transport for real-time departures, route planning, and service disruptions using the HAFAS API."
      },
      {
        "title": "Quick Reference",
        "body": "ScriptPurposesearch.shFind stations/stops by namedepartures.shReal-time departures at a stationroute.shPlan a trip between two locationsdisruptions.shCurrent service disruptions\n\nAPI: HAFAS (Hacon Fahrplan-Auskunfts-System)\nEndpoint: https://vao.demo.hafas.de/gate"
      },
      {
        "title": "1. Search Stations/Stops",
        "body": "Find station IDs by name:\n\n./search.sh \"Stephansplatz\"\n./search.sh \"Wien Hauptbahnhof\"\n./search.sh \"Linz\"\n./search.sh \"Salzburg Hbf\"\n\nReturns station names, IDs (extId), and coordinates.\n\nResponse fields:\n\nname: Station name\nextId: Station ID for use in other queries\ntype: S (Station), A (Address), P (POI)\ncoordinates: WGS84 coordinates (lon/lat in 1e-6 format)"
      },
      {
        "title": "2. Real-Time Departures",
        "body": "Get next departures from a station:\n\n./departures.sh <station-id> [count]\n\n# Examples:\n./departures.sh 490132000        # Wien Stephansplatz, 10 departures\n./departures.sh 490132000 20     # Wien Stephansplatz, 20 departures\n./departures.sh 490060200        # Wien Hauptbahnhof\n./departures.sh 444130000        # Linz Hbf\n./departures.sh 455000100        # Salzburg Hbf\n\nResponse fields:\n\nline: Line name (U1, S1, RJ, etc.)\ndirection: Final destination\ndeparture: Scheduled departure time\ndelay: Delay in minutes (if any)\nplatform: Platform/track number"
      },
      {
        "title": "3. Route Planning",
        "body": "Plan a trip between two stations:\n\n./route.sh <from-id> <to-id> [results]\n\n# Examples:\n./route.sh 490132000 490060200        # Stephansplatz → Hauptbahnhof\n./route.sh 490132000 444130000 5      # Wien → Linz, 5 results\n./route.sh \"Graz Hbf\" \"Wien Hbf\"      # Search by name (slower)\n\nResponse fields:\n\ndeparture: Departure time\narrival: Arrival time\nduration: Trip duration\nchanges: Number of transfers\nlegs: Array of trip segments with line info"
      },
      {
        "title": "4. Disruptions",
        "body": "Check current service disruptions:\n\n./disruptions.sh [category]\n\n# Examples:\n./disruptions.sh            # All disruptions\n./disruptions.sh TRAIN      # Train disruptions only\n./disruptions.sh BUS        # Bus disruptions only"
      },
      {
        "title": "Common Station IDs",
        "body": "StationIDWien Stephansplatz490132000Wien Hauptbahnhof490134900Wien Westbahnhof490024300Wien Praterstern490056100Wien Karlsplatz490024600Wien Schwedenplatz490119500Linz Hbf444116400Salzburg Hbf455000200Graz Hbf460086000Innsbruck Hbf481070100Klagenfurt Hbf492019500St. Pölten Hbf431543300Wiener Neustadt Hbf430521000Krems a.d. Donau431046400\n\nTip: Always use ./search.sh to find the correct station ID."
      },
      {
        "title": "Transport Types",
        "body": "CodeTypeICE/RJ/RJXHigh-speed trainsIC/ECInterCity/EuroCityREX/RRegional Express/RegionalSS-Bahn (suburban rail)UU-Bahn (Vienna metro)STRTram/StraßenbahnBUSBusASTDemand-responsive transport"
      },
      {
        "title": "API Details (for advanced usage)",
        "body": "The scripts use the HAFAS JSON API. For custom queries:\n\ncurl -s -X POST \"https://vao.demo.hafas.de/gate\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"svcReqL\": [{\n      \"req\": { ... },\n      \"meth\": \"METHOD_NAME\",\n      \"id\": \"1|1|\"\n    }],\n    \"client\": {\"id\": \"VAO\", \"v\": \"1\", \"type\": \"AND\", \"name\": \"nextgen\"},\n    \"ver\": \"1.73\",\n    \"lang\": \"de\",\n    \"auth\": {\"aid\": \"nextgen\", \"type\": \"AID\"}\n  }'\n\nAvailable methods:\n\nLocMatch - Location/station search\nStationBoard - Departures/arrivals\nTripSearch - Route planning\nHimSearch - Disruptions/service messages\nJourneyDetails - Details of a specific journey"
      },
      {
        "title": "Tips",
        "body": "Find station IDs first: Always use search.sh to find the correct station ID before querying departures or routes.\n\n\nStation vs Stop: Major stations have multiple platforms - the main station ID covers all platforms.\n\n\nReal-time data: Departures include real-time delays when available.\n\n\nAustria-wide: This API covers all Austrian public transport, not just Vienna.\n\n\nCross-border: Some routes extend to neighboring countries (Germany, Czech Republic, etc.)."
      }
    ],
    "body": "VOR AnachB - Austrian Public Transport API\n\nQuery Austrian public transport for real-time departures, route planning, and service disruptions using the HAFAS API.\n\nQuick Reference\nScript\tPurpose\nsearch.sh\tFind stations/stops by name\ndepartures.sh\tReal-time departures at a station\nroute.sh\tPlan a trip between two locations\ndisruptions.sh\tCurrent service disruptions\n\nAPI: HAFAS (Hacon Fahrplan-Auskunfts-System)\nEndpoint: https://vao.demo.hafas.de/gate\n\n1. Search Stations/Stops\n\nFind station IDs by name:\n\n./search.sh \"Stephansplatz\"\n./search.sh \"Wien Hauptbahnhof\"\n./search.sh \"Linz\"\n./search.sh \"Salzburg Hbf\"\n\n\nReturns station names, IDs (extId), and coordinates.\n\nResponse fields:\n\nname: Station name\nextId: Station ID for use in other queries\ntype: S (Station), A (Address), P (POI)\ncoordinates: WGS84 coordinates (lon/lat in 1e-6 format)\n2. Real-Time Departures\n\nGet next departures from a station:\n\n./departures.sh <station-id> [count]\n\n# Examples:\n./departures.sh 490132000        # Wien Stephansplatz, 10 departures\n./departures.sh 490132000 20     # Wien Stephansplatz, 20 departures\n./departures.sh 490060200        # Wien Hauptbahnhof\n./departures.sh 444130000        # Linz Hbf\n./departures.sh 455000100        # Salzburg Hbf\n\n\nResponse fields:\n\nline: Line name (U1, S1, RJ, etc.)\ndirection: Final destination\ndeparture: Scheduled departure time\ndelay: Delay in minutes (if any)\nplatform: Platform/track number\n3. Route Planning\n\nPlan a trip between two stations:\n\n./route.sh <from-id> <to-id> [results]\n\n# Examples:\n./route.sh 490132000 490060200        # Stephansplatz → Hauptbahnhof\n./route.sh 490132000 444130000 5      # Wien → Linz, 5 results\n./route.sh \"Graz Hbf\" \"Wien Hbf\"      # Search by name (slower)\n\n\nResponse fields:\n\ndeparture: Departure time\narrival: Arrival time\nduration: Trip duration\nchanges: Number of transfers\nlegs: Array of trip segments with line info\n4. Disruptions\n\nCheck current service disruptions:\n\n./disruptions.sh [category]\n\n# Examples:\n./disruptions.sh            # All disruptions\n./disruptions.sh TRAIN      # Train disruptions only\n./disruptions.sh BUS        # Bus disruptions only\n\nCommon Station IDs\nStation\tID\nWien Stephansplatz\t490132000\nWien Hauptbahnhof\t490134900\nWien Westbahnhof\t490024300\nWien Praterstern\t490056100\nWien Karlsplatz\t490024600\nWien Schwedenplatz\t490119500\nLinz Hbf\t444116400\nSalzburg Hbf\t455000200\nGraz Hbf\t460086000\nInnsbruck Hbf\t481070100\nKlagenfurt Hbf\t492019500\nSt. Pölten Hbf\t431543300\nWiener Neustadt Hbf\t430521000\nKrems a.d. Donau\t431046400\n\nTip: Always use ./search.sh to find the correct station ID.\n\nTransport Types\nCode\tType\nICE/RJ/RJX\tHigh-speed trains\nIC/EC\tInterCity/EuroCity\nREX/R\tRegional Express/Regional\nS\tS-Bahn (suburban rail)\nU\tU-Bahn (Vienna metro)\nSTR\tTram/Straßenbahn\nBUS\tBus\nAST\tDemand-responsive transport\nAPI Details (for advanced usage)\n\nThe scripts use the HAFAS JSON API. For custom queries:\n\ncurl -s -X POST \"https://vao.demo.hafas.de/gate\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"svcReqL\": [{\n      \"req\": { ... },\n      \"meth\": \"METHOD_NAME\",\n      \"id\": \"1|1|\"\n    }],\n    \"client\": {\"id\": \"VAO\", \"v\": \"1\", \"type\": \"AND\", \"name\": \"nextgen\"},\n    \"ver\": \"1.73\",\n    \"lang\": \"de\",\n    \"auth\": {\"aid\": \"nextgen\", \"type\": \"AID\"}\n  }'\n\n\nAvailable methods:\n\nLocMatch - Location/station search\nStationBoard - Departures/arrivals\nTripSearch - Route planning\nHimSearch - Disruptions/service messages\nJourneyDetails - Details of a specific journey\nTips\n\nFind station IDs first: Always use search.sh to find the correct station ID before querying departures or routes.\n\nStation vs Stop: Major stations have multiple platforms - the main station ID covers all platforms.\n\nReal-time data: Departures include real-time delays when available.\n\nAustria-wide: This API covers all Austrian public transport, not just Vienna.\n\nCross-border: Some routes extend to neighboring countries (Germany, Czech Republic, etc.)."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/manmal/a-nach-b",
    "publisherUrl": "https://clawhub.ai/manmal/a-nach-b",
    "owner": "manmal",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/a-nach-b",
    "downloadUrl": "https://openagent3.xyz/downloads/a-nach-b",
    "agentUrl": "https://openagent3.xyz/skills/a-nach-b/agent",
    "manifestUrl": "https://openagent3.xyz/skills/a-nach-b/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/a-nach-b/agent.md"
  }
}