{
  "schemaVersion": "1.0",
  "item": {
    "slug": "tfl",
    "name": "TfL London Transit",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/brianleach/tfl",
    "canonicalUrl": "https://clawhub.ai/brianleach/tfl",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/tfl",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=tfl",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "CLAUDE.md",
      "README.md",
      "SKILL.md",
      "package-lock.json",
      "package.json",
      "scripts/tfl.mjs"
    ],
    "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. 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."
        },
        {
          "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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.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/tfl"
    },
    "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/tfl",
    "agentPageUrl": "https://openagent3.xyz/skills/tfl/agent",
    "manifestUrl": "https://openagent3.xyz/skills/tfl/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/tfl/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. 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."
      },
      {
        "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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "TfL London Transit",
        "body": "Real-time London TfL transit data — Tube arrivals, bus predictions, line status, disruptions, journey planning, and route information. Uses TfL's single unified REST API for all modes. API key optional (free, recommended for higher rate limits)."
      },
      {
        "title": "When to Use",
        "body": "User asks about the Tube, London Underground, TfL, or London public transport\nUser mentions specific Tube lines (Bakerloo, Central, Circle, District, Hammersmith & City, Jubilee, Metropolitan, Northern, Piccadilly, Victoria, Waterloo & City)\nUser asks \"is the Northern line running\" or \"when's the next Tube\"\nUser mentions London stations (King's Cross, Oxford Circus, Waterloo, Victoria, Paddington, etc.)\nUser asks about London buses, DLR, Overground, Elizabeth line, or trams\nUser asks about TfL service status, delays, disruptions, or planned closures\nUser asks about Oyster, contactless, or TfL fares\nUser asks about journey planning in London"
      },
      {
        "title": "Data Sources",
        "body": "TfL has a single unified REST API (api.tfl.gov.uk) that returns JSON for ALL modes — Tube, bus, DLR, Overground, Elizabeth line, trams, river bus, cable car. No protobuf, no SIRI, no multiple feed formats. Just one clean REST API with consistent JSON responses.\n\nAPI key: Register for a free app_key at https://api-portal.tfl.gov.uk/ — append ?app_key={KEY} to requests. The API works without a key for basic usage but is rate-limited; with a key you get 500 requests per minute."
      },
      {
        "title": "Key Endpoints",
        "body": "EndpointDescription/Line/Mode/tube/StatusAll Tube line statuses/Line/{lineId}/StatusSpecific line status/StopPoint/{naptanId}/ArrivalsArrivals at a stop/Line/{lineId}/Arrivals/{stopPointId}Arrivals filtered by line/StopPoint/Search/{query}Search stops by name/StopPoint?lat=&lon=&radius=Stops near location/Line/{lineId}/StopPointsStops on a line/Line/{lineId}/Route/Sequence/{dir}Route stop sequence/Line/{lineId}/DisruptionDisruptions on a line/Journey/JourneyResults/{from}/to/{to}Journey planning/Line/Mode/busAll bus routes\n\nAll endpoints return JSON. Append ?app_key={KEY} for authenticated requests."
      },
      {
        "title": "Quick Start: Use the helper scripts",
        "body": "The scripts in this skill's scripts/ directory handle fetching, parsing, and presenting TfL data."
      },
      {
        "title": "Script: scripts/tfl.mjs",
        "body": "Main entry point. Supports these commands:\n\n# Tube line status\nnode scripts/tfl.mjs status\nnode scripts/tfl.mjs status --all\nnode scripts/tfl.mjs status --line victoria\n\n# Arrivals at a station\nnode scripts/tfl.mjs arrivals --station \"Oxford Circus\"\nnode scripts/tfl.mjs arrivals --stop 940GZZLUOXC\nnode scripts/tfl.mjs arrivals --stop-search \"kings cross\"\nnode scripts/tfl.mjs arrivals --stop-search \"kings cross\" --line piccadilly\n\n# Bus arrivals\nnode scripts/tfl.mjs bus-arrivals --stop 490005183E\nnode scripts/tfl.mjs bus-arrivals --stop-search \"oxford circus\"\nnode scripts/tfl.mjs bus-arrivals --stop-search \"oxford circus\" --route 24\n\n# Disruptions\nnode scripts/tfl.mjs disruptions\nnode scripts/tfl.mjs disruptions --line northern\n\n# Routes and stops\nnode scripts/tfl.mjs routes\nnode scripts/tfl.mjs routes --all\nnode scripts/tfl.mjs bus-routes\nnode scripts/tfl.mjs stops --search \"waterloo\"\nnode scripts/tfl.mjs stops --near 51.5074,-0.1278 --radius 500\nnode scripts/tfl.mjs stops --line victoria\nnode scripts/tfl.mjs route-info --line bakerloo\nnode scripts/tfl.mjs route-info --route 24\n\n# Journey planning\nnode scripts/tfl.mjs journey --from \"waterloo\" --to \"kings cross\"\nnode scripts/tfl.mjs journey --from \"51.5031,-0.1132\" --to \"51.5308,-0.1238\""
      },
      {
        "title": "Setup: API Key (Optional, Recommended)",
        "body": "Basic functionality works without a key (rate-limited). For 500 requests/minute:\n\nRegister at https://api-portal.tfl.gov.uk/\nSet environment variable: TFL_API_KEY"
      },
      {
        "title": "Tube Lines Reference",
        "body": "Line IDLine NameEmojiTerminalsbakerlooBakerloobrownHarrow & Wealdstone <-> Elephant & CastlecentralCentralredEpping / Ealing Broadway <-> West RuislipcircleCircleyellowHammersmith (loop via Liverpool Street)districtDistrictgreenRichmond / Ealing Broadway <-> Upminsterhammersmith-cityHammersmith & CitypinkHammersmith <-> BarkingjubileeJubileesilverStanmore <-> StratfordmetropolitanMetropolitanmagentaChesham / Amersham / Uxbridge <-> AldgatenorthernNorthernblackEdgware / High Barnet <-> Morden / BatterseapiccadillyPiccadillydark blueHeathrow T5 / Uxbridge <-> CockfostersvictoriaVictorialight blueWalthamstow Central <-> Brixtonwaterloo-cityWaterloo & CitytealWaterloo <-> Bank"
      },
      {
        "title": "Other TfL Rail Modes",
        "body": "Line IDNameTypedlrDLRDocklands Light RailwaylibertyLibertyOverground (Romford — Upminster)lionessLionessOverground (Watford — Euston)mildmayMildmayOverground (Stratford — Richmond/Clapham)suffragetteSuffragetteOverground (Gospel Oak — Barking)weaverWeaverOverground (Liverpool St — Enfield/Cheshunt/Chingford)windrushWindrushOverground (Highbury — Crystal Palace/Clapham/W Croydon)elizabethElizabeth lineCrossrailtramLondon TramsCroydon Tramlink"
      },
      {
        "title": "TfL Fares Reference (from March 2025)",
        "body": "Fare TypePriceTube Zone 1 (Oyster/contactless, peak)£2.80Tube Zone 1 (Oyster/contactless, off-peak)£2.70Tube Zones 1-2 (peak)£2.80Tube Zones 1-2 (off-peak)£2.70Tube Zones 1-3 (peak)£3.50Tube Zones 1-3 (off-peak)£2.80Bus & Tram (any journey)£1.75Hopper fare (unlimited bus/tram within 1 hour)£1.75 totalDaily cap Zones 1-2£8.90Weekly cap Zones 1-2£44.70Cash single (ticket machine)£6.70 (Zone 1)\n\nPeak: Mon-Fri 6:30-9:30am and 4:00-7:00pm (except public holidays)."
      },
      {
        "title": "Tips for Users",
        "body": "NaPTAN IDs are the station identifiers — Tube stations use 940GZZLU{code} format\nUse --station or --stop-search for name-based lookups; use --stop for exact NaPTAN IDs\nTimes are shown in 24-hour format (London convention)\nThe arrivals command uses timeToStation (seconds) from the TfL API for ETA\nBus stops have their own NaPTAN IDs in 490{code} format\nJourney planning returns fare estimates when available"
      },
      {
        "title": "Error Handling",
        "body": "If TFL_API_KEY is not set, requests still work but are rate-limited — a note is printed\n429 rate limit responses print a helpful message with the key signup URL\nInvalid station/stop searches show \"No matching station found\" with suggestions\nNetwork errors and API error responses produce friendly messages\nStation closed or no service shows an appropriate message"
      },
      {
        "title": "Response Formatting",
        "body": "When presenting transit info to the user:\n\nLead with the most actionable info (next arrival time, line status)\nShow line name with color emoji (e.g., \"🔴 Central: Good Service\")\nShow times in 24-hour format (London convention)\nFor arrivals: show line + destination + minutes (from timeToStation / 60)\nShow platform name when available\nFor journey planning: show step-by-step with mode, line, duration, and fare\nAlways mention disruptions for queried lines"
      },
      {
        "title": "External Endpoints",
        "body": "EndpointData SentData Receivedapi.tfl.gov.uk/Line/*/StatusAPI key (query param, optional)Line status (JSON)api.tfl.gov.uk/StopPoint/*/ArrivalsAPI key (query param, optional)Arrivals (JSON)api.tfl.gov.uk/StopPoint/Search/*API key (query param, optional)Stop search results (JSON)api.tfl.gov.uk/StopPoint?lat=&lon=API key (query param, optional)Nearby stops (JSON)api.tfl.gov.uk/Line/*/StopPointsAPI key (query param, optional)Stops on line (JSON)api.tfl.gov.uk/Line/*/Route/Sequence/*API key (query param, optional)Route sequence (JSON)api.tfl.gov.uk/Line/*/DisruptionAPI key (query param, optional)Disruptions (JSON)api.tfl.gov.uk/Journey/JourneyResults/*API key (query param, optional)Journey results (JSON)api.tfl.gov.uk/Line/Mode/busAPI key (query param, optional)Bus routes (JSON)\n\nAPI key is passed as a query parameter to TfL's official API. No other user data is transmitted."
      },
      {
        "title": "Security & Privacy",
        "body": "API key optional — TfL Unified API works without a key (rate-limited); with a free key you get 500 req/min\nNo user data transmitted — requests contain only the optional API key and route/stop identifiers, no personal information\nNo local storage — this skill does not write any files to disk (no GTFS cache needed — TfL is all live API)\nNo telemetry — this skill does not phone home or collect usage data\nInput handling — stop names and route IDs from user input are URL-encoded in API queries, never interpolated into shell commands"
      },
      {
        "title": "Trust Statement",
        "body": "This skill reads publicly available transit data from TfL's official Unified API. The optional API key is used only for TfL API rate-limit authentication. The skill does not access, store, or transmit any personal information beyond the API key configured by the user."
      }
    ],
    "body": "TfL London Transit\n\nReal-time London TfL transit data — Tube arrivals, bus predictions, line status, disruptions, journey planning, and route information. Uses TfL's single unified REST API for all modes. API key optional (free, recommended for higher rate limits).\n\nWhen to Use\nUser asks about the Tube, London Underground, TfL, or London public transport\nUser mentions specific Tube lines (Bakerloo, Central, Circle, District, Hammersmith & City, Jubilee, Metropolitan, Northern, Piccadilly, Victoria, Waterloo & City)\nUser asks \"is the Northern line running\" or \"when's the next Tube\"\nUser mentions London stations (King's Cross, Oxford Circus, Waterloo, Victoria, Paddington, etc.)\nUser asks about London buses, DLR, Overground, Elizabeth line, or trams\nUser asks about TfL service status, delays, disruptions, or planned closures\nUser asks about Oyster, contactless, or TfL fares\nUser asks about journey planning in London\nData Sources\n\nTfL has a single unified REST API (api.tfl.gov.uk) that returns JSON for ALL modes — Tube, bus, DLR, Overground, Elizabeth line, trams, river bus, cable car. No protobuf, no SIRI, no multiple feed formats. Just one clean REST API with consistent JSON responses.\n\nAPI key: Register for a free app_key at https://api-portal.tfl.gov.uk/ — append ?app_key={KEY} to requests. The API works without a key for basic usage but is rate-limited; with a key you get 500 requests per minute.\n\nKey Endpoints\nEndpoint\tDescription\n/Line/Mode/tube/Status\tAll Tube line statuses\n/Line/{lineId}/Status\tSpecific line status\n/StopPoint/{naptanId}/Arrivals\tArrivals at a stop\n/Line/{lineId}/Arrivals/{stopPointId}\tArrivals filtered by line\n/StopPoint/Search/{query}\tSearch stops by name\n/StopPoint?lat=&lon=&radius=\tStops near location\n/Line/{lineId}/StopPoints\tStops on a line\n/Line/{lineId}/Route/Sequence/{dir}\tRoute stop sequence\n/Line/{lineId}/Disruption\tDisruptions on a line\n/Journey/JourneyResults/{from}/to/{to}\tJourney planning\n/Line/Mode/bus\tAll bus routes\n\nAll endpoints return JSON. Append ?app_key={KEY} for authenticated requests.\n\nImplementation\nQuick Start: Use the helper scripts\n\nThe scripts in this skill's scripts/ directory handle fetching, parsing, and presenting TfL data.\n\nScript: scripts/tfl.mjs\n\nMain entry point. Supports these commands:\n\n# Tube line status\nnode scripts/tfl.mjs status\nnode scripts/tfl.mjs status --all\nnode scripts/tfl.mjs status --line victoria\n\n# Arrivals at a station\nnode scripts/tfl.mjs arrivals --station \"Oxford Circus\"\nnode scripts/tfl.mjs arrivals --stop 940GZZLUOXC\nnode scripts/tfl.mjs arrivals --stop-search \"kings cross\"\nnode scripts/tfl.mjs arrivals --stop-search \"kings cross\" --line piccadilly\n\n# Bus arrivals\nnode scripts/tfl.mjs bus-arrivals --stop 490005183E\nnode scripts/tfl.mjs bus-arrivals --stop-search \"oxford circus\"\nnode scripts/tfl.mjs bus-arrivals --stop-search \"oxford circus\" --route 24\n\n# Disruptions\nnode scripts/tfl.mjs disruptions\nnode scripts/tfl.mjs disruptions --line northern\n\n# Routes and stops\nnode scripts/tfl.mjs routes\nnode scripts/tfl.mjs routes --all\nnode scripts/tfl.mjs bus-routes\nnode scripts/tfl.mjs stops --search \"waterloo\"\nnode scripts/tfl.mjs stops --near 51.5074,-0.1278 --radius 500\nnode scripts/tfl.mjs stops --line victoria\nnode scripts/tfl.mjs route-info --line bakerloo\nnode scripts/tfl.mjs route-info --route 24\n\n# Journey planning\nnode scripts/tfl.mjs journey --from \"waterloo\" --to \"kings cross\"\nnode scripts/tfl.mjs journey --from \"51.5031,-0.1132\" --to \"51.5308,-0.1238\"\n\nSetup: API Key (Optional, Recommended)\n\nBasic functionality works without a key (rate-limited). For 500 requests/minute:\n\nRegister at https://api-portal.tfl.gov.uk/\nSet environment variable: TFL_API_KEY\nTube Lines Reference\nLine ID\tLine Name\tEmoji\tTerminals\nbakerloo\tBakerloo\tbrown\tHarrow & Wealdstone <-> Elephant & Castle\ncentral\tCentral\tred\tEpping / Ealing Broadway <-> West Ruislip\ncircle\tCircle\tyellow\tHammersmith (loop via Liverpool Street)\ndistrict\tDistrict\tgreen\tRichmond / Ealing Broadway <-> Upminster\nhammersmith-city\tHammersmith & City\tpink\tHammersmith <-> Barking\njubilee\tJubilee\tsilver\tStanmore <-> Stratford\nmetropolitan\tMetropolitan\tmagenta\tChesham / Amersham / Uxbridge <-> Aldgate\nnorthern\tNorthern\tblack\tEdgware / High Barnet <-> Morden / Battersea\npiccadilly\tPiccadilly\tdark blue\tHeathrow T5 / Uxbridge <-> Cockfosters\nvictoria\tVictoria\tlight blue\tWalthamstow Central <-> Brixton\nwaterloo-city\tWaterloo & City\tteal\tWaterloo <-> Bank\nOther TfL Rail Modes\nLine ID\tName\tType\ndlr\tDLR\tDocklands Light Railway\nliberty\tLiberty\tOverground (Romford — Upminster)\nlioness\tLioness\tOverground (Watford — Euston)\nmildmay\tMildmay\tOverground (Stratford — Richmond/Clapham)\nsuffragette\tSuffragette\tOverground (Gospel Oak — Barking)\nweaver\tWeaver\tOverground (Liverpool St — Enfield/Cheshunt/Chingford)\nwindrush\tWindrush\tOverground (Highbury — Crystal Palace/Clapham/W Croydon)\nelizabeth\tElizabeth line\tCrossrail\ntram\tLondon Trams\tCroydon Tramlink\nTfL Fares Reference (from March 2025)\nFare Type\tPrice\nTube Zone 1 (Oyster/contactless, peak)\t£2.80\nTube Zone 1 (Oyster/contactless, off-peak)\t£2.70\nTube Zones 1-2 (peak)\t£2.80\nTube Zones 1-2 (off-peak)\t£2.70\nTube Zones 1-3 (peak)\t£3.50\nTube Zones 1-3 (off-peak)\t£2.80\nBus & Tram (any journey)\t£1.75\nHopper fare (unlimited bus/tram within 1 hour)\t£1.75 total\nDaily cap Zones 1-2\t£8.90\nWeekly cap Zones 1-2\t£44.70\nCash single (ticket machine)\t£6.70 (Zone 1)\n\nPeak: Mon-Fri 6:30-9:30am and 4:00-7:00pm (except public holidays).\n\nTips for Users\nNaPTAN IDs are the station identifiers — Tube stations use 940GZZLU{code} format\nUse --station or --stop-search for name-based lookups; use --stop for exact NaPTAN IDs\nTimes are shown in 24-hour format (London convention)\nThe arrivals command uses timeToStation (seconds) from the TfL API for ETA\nBus stops have their own NaPTAN IDs in 490{code} format\nJourney planning returns fare estimates when available\nError Handling\nIf TFL_API_KEY is not set, requests still work but are rate-limited — a note is printed\n429 rate limit responses print a helpful message with the key signup URL\nInvalid station/stop searches show \"No matching station found\" with suggestions\nNetwork errors and API error responses produce friendly messages\nStation closed or no service shows an appropriate message\nResponse Formatting\n\nWhen presenting transit info to the user:\n\nLead with the most actionable info (next arrival time, line status)\nShow line name with color emoji (e.g., \"🔴 Central: Good Service\")\nShow times in 24-hour format (London convention)\nFor arrivals: show line + destination + minutes (from timeToStation / 60)\nShow platform name when available\nFor journey planning: show step-by-step with mode, line, duration, and fare\nAlways mention disruptions for queried lines\nExternal Endpoints\nEndpoint\tData Sent\tData Received\napi.tfl.gov.uk/Line/*/Status\tAPI key (query param, optional)\tLine status (JSON)\napi.tfl.gov.uk/StopPoint/*/Arrivals\tAPI key (query param, optional)\tArrivals (JSON)\napi.tfl.gov.uk/StopPoint/Search/*\tAPI key (query param, optional)\tStop search results (JSON)\napi.tfl.gov.uk/StopPoint?lat=&lon=\tAPI key (query param, optional)\tNearby stops (JSON)\napi.tfl.gov.uk/Line/*/StopPoints\tAPI key (query param, optional)\tStops on line (JSON)\napi.tfl.gov.uk/Line/*/Route/Sequence/*\tAPI key (query param, optional)\tRoute sequence (JSON)\napi.tfl.gov.uk/Line/*/Disruption\tAPI key (query param, optional)\tDisruptions (JSON)\napi.tfl.gov.uk/Journey/JourneyResults/*\tAPI key (query param, optional)\tJourney results (JSON)\napi.tfl.gov.uk/Line/Mode/bus\tAPI key (query param, optional)\tBus routes (JSON)\n\nAPI key is passed as a query parameter to TfL's official API. No other user data is transmitted.\n\nSecurity & Privacy\nAPI key optional — TfL Unified API works without a key (rate-limited); with a free key you get 500 req/min\nNo user data transmitted — requests contain only the optional API key and route/stop identifiers, no personal information\nNo local storage — this skill does not write any files to disk (no GTFS cache needed — TfL is all live API)\nNo telemetry — this skill does not phone home or collect usage data\nInput handling — stop names and route IDs from user input are URL-encoded in API queries, never interpolated into shell commands\nTrust Statement\n\nThis skill reads publicly available transit data from TfL's official Unified API. The optional API key is used only for TfL API rate-limit authentication. The skill does not access, store, or transmit any personal information beyond the API key configured by the user."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/brianleach/tfl",
    "publisherUrl": "https://clawhub.ai/brianleach/tfl",
    "owner": "brianleach",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/tfl",
    "downloadUrl": "https://openagent3.xyz/downloads/tfl",
    "agentUrl": "https://openagent3.xyz/skills/tfl/agent",
    "manifestUrl": "https://openagent3.xyz/skills/tfl/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/tfl/agent.md"
  }
}