{
  "schemaVersion": "1.0",
  "item": {
    "slug": "charger",
    "name": "check charger availbility",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/Borahm/charger",
    "canonicalUrl": "https://clawhub.ai/Borahm/charger",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/charger",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=charger",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "scripts/charger-notify.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",
      "slug": "charger",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-11T19:43:14.956Z",
      "expiresAt": "2026-05-18T19:43:14.956Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=charger",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=charger",
        "contentDisposition": "attachment; filename=\"charger-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "charger"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/charger"
    },
    "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/charger",
    "agentPageUrl": "https://openagent3.xyz/skills/charger/agent",
    "manifestUrl": "https://openagent3.xyz/skills/charger/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/charger/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": "charger",
        "body": "Higher-level EV charger checker built on Google Places (New) EV charge data.\n\nThis skill includes a bin/charger CLI (Node.js) for checking charger availability."
      },
      {
        "title": "Setup",
        "body": "Requirements:\n\nNode.js 18+ (Clawdbot already has Node)\nGOOGLE_PLACES_API_KEY (recommended in ~/.clawdbot/.env)\n\n\n\nPut the CLI on your PATH (example):\n\nln -sf \"$(pwd)\"/bin/charger /home/claw/clawd/bin/charger\n\n\n\nAdd a favorite:\n\ncharger favorites add home --place-id <placeId>"
      },
      {
        "title": "Commands",
        "body": "Check a favorite / place id / query:\n\ncharger check home\ncharger check \"Wien Energie Charging Station Liniengasse 2 1060 Wien\"\n\n\n\nFind nearby:\n\ncharger nearby --lat 48.188472 --lng 16.348854 --radius 2000 --max 10"
      },
      {
        "title": "Notifications",
        "body": "The recommended pattern is:\n\ncharger (this skill) produces a clear Any free: YES|NO result.\nA scheduled job (Gateway cron) runs a small helper that only prints output when it should notify."
      },
      {
        "title": "Helper script (what actually decides to notify)",
        "body": "This bundle includes scripts/charger-notify.sh.\n\nWhat it does:\n\nRuns charger check <target>\nIf Any free: YES and the last run was not YES, it prints a single notification line.\nOtherwise it prints nothing.\n\nSo: no output = no notification.\n\nState:\n\nStores last state in ~/.cache/charger-notify/<target>.state so it only notifies on the change NO/UNKNOWN → YES.\n\nUsage:\n\nbash scripts/charger-notify.sh home\n\nExample notification output:\n\nEV charger available: Tanke Wien Energie Charging Station — Amtshausgasse 9, 1050 Wien, Austria — 1/2 available (OOS 0) (updated 2026-01-21T21:05:00Z)"
      },
      {
        "title": "Typical cron schedule (how you actually get Telegram pings)",
        "body": "Cron is the scheduler. It runs the helper script on a timer and sends you whatever the script prints.\nBecause the helper prints only when it becomes available, you only get messages when it matters.\n\nCheck every 10 minutes:\n\n*/10 * * * *\n\nIf you want me to wire this into Clawdbot Gateway cron (so you get Telegram pings), tell me:\n\ntarget (home)\ninterval (every 5/10/20 min)\nquiet hours (optional)"
      }
    ],
    "body": "charger\n\nHigher-level EV charger checker built on Google Places (New) EV charge data.\n\nThis skill includes a bin/charger CLI (Node.js) for checking charger availability.\n\nSetup\n\nRequirements:\n\nNode.js 18+ (Clawdbot already has Node)\nGOOGLE_PLACES_API_KEY (recommended in ~/.clawdbot/.env)\n\nPut the CLI on your PATH (example):\n\nln -sf \"$(pwd)\"/bin/charger /home/claw/clawd/bin/charger\n\nAdd a favorite:\n\ncharger favorites add home --place-id <placeId>\nCommands\n\nCheck a favorite / place id / query:\n\ncharger check home\ncharger check \"Wien Energie Charging Station Liniengasse 2 1060 Wien\"\n\nFind nearby:\n\ncharger nearby --lat 48.188472 --lng 16.348854 --radius 2000 --max 10\nNotifications\n\nThe recommended pattern is:\n\ncharger (this skill) produces a clear Any free: YES|NO result.\nA scheduled job (Gateway cron) runs a small helper that only prints output when it should notify.\nHelper script (what actually decides to notify)\n\nThis bundle includes scripts/charger-notify.sh.\n\nWhat it does:\n\nRuns charger check <target>\nIf Any free: YES and the last run was not YES, it prints a single notification line.\nOtherwise it prints nothing.\n\nSo: no output = no notification.\n\nState:\n\nStores last state in ~/.cache/charger-notify/<target>.state so it only notifies on the change NO/UNKNOWN → YES.\n\nUsage:\n\nbash scripts/charger-notify.sh home\n\nExample notification output:\n\nEV charger available: Tanke Wien Energie Charging Station — Amtshausgasse 9, 1050 Wien, Austria — 1/2 available (OOS 0) (updated 2026-01-21T21:05:00Z)\nTypical cron schedule (how you actually get Telegram pings)\n\nCron is the scheduler. It runs the helper script on a timer and sends you whatever the script prints. Because the helper prints only when it becomes available, you only get messages when it matters.\n\nCheck every 10 minutes:\n\n*/10 * * * *\n\nIf you want me to wire this into Clawdbot Gateway cron (so you get Telegram pings), tell me:\n\ntarget (home)\ninterval (every 5/10/20 min)\nquiet hours (optional)"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Borahm/charger",
    "publisherUrl": "https://clawhub.ai/Borahm/charger",
    "owner": "Borahm",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/charger",
    "downloadUrl": "https://openagent3.xyz/downloads/charger",
    "agentUrl": "https://openagent3.xyz/skills/charger/agent",
    "manifestUrl": "https://openagent3.xyz/skills/charger/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/charger/agent.md"
  }
}