{
  "schemaVersion": "1.0",
  "item": {
    "slug": "libby-book-monitor",
    "name": "libby-book-monitor",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/alexpolonsky/libby-book-monitor",
    "canonicalUrl": "https://clawhub.ai/alexpolonsky/libby-book-monitor",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/libby-book-monitor",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=libby-book-monitor",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "scripts/libby-book-monitor.py"
    ],
    "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",
      "slug": "libby-book-monitor",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-01T21:42:35.953Z",
      "expiresAt": "2026-05-08T21:42:35.953Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=libby-book-monitor",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=libby-book-monitor",
        "contentDisposition": "attachment; filename=\"libby-book-monitor-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "libby-book-monitor"
      },
      "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/libby-book-monitor"
    },
    "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/libby-book-monitor",
    "agentPageUrl": "https://openagent3.xyz/skills/libby-book-monitor/agent",
    "manifestUrl": "https://openagent3.xyz/skills/libby-book-monitor/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/libby-book-monitor/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": "Libby/OverDrive Book Monitor",
        "body": "Track book availability on Libby/OverDrive libraries. Search catalogues, manage a watchlist, and get notified when books are added to your library's collection.\n\nDisclaimer: This is an unofficial tool, not affiliated with or endorsed by OverDrive/Libby. Catalogue data queries APIs that power the website and may not reflect actual availability. This tool does NOT borrow books or place holds. Provided \"as is\" without warranty of any kind."
      },
      {
        "title": "Quick Start",
        "body": "# Search a library catalogue\npython3 {baseDir}/scripts/libby-book-monitor.py search telaviv \"Project Hail Mary\"\n\n# Add a book to your watchlist\npython3 {baseDir}/scripts/libby-book-monitor.py watch \"Kafka on the Shore\" --author \"Haruki Murakami\"\n\n# Check your watchlist against the API\npython3 {baseDir}/scripts/libby-book-monitor.py check\n\n# Show your watchlist\npython3 {baseDir}/scripts/libby-book-monitor.py list"
      },
      {
        "title": "Commands",
        "body": "CommandDescriptionsearch <library> <query>Search a library catalogue by title/authorwatch <title>Add a book to the watchlistunwatch <title>Remove a book from the watchlistlistShow the watchlist with statuscheckCheck all watchlist books against the API"
      },
      {
        "title": "Options",
        "body": "OptionCommandsDescription--profile <name>allSeparate watchlist per user--author <name>watchSpecify book author--library <code>watchLibrary code (default: from config)--notifycheckOnly print newly found books (for cron)--data-dir <path>allCustom data directory"
      },
      {
        "title": "Profiles",
        "body": "Use --profile to maintain separate watchlists for different people:\n\npython3 {baseDir}/scripts/libby-book-monitor.py --profile jane watch \"Dune\"\npython3 {baseDir}/scripts/libby-book-monitor.py --profile bob check --notify"
      },
      {
        "title": "Configuration",
        "body": "Default library is telaviv Israel Digital. Edit ~/.libby-book-monitor/config.json to change:\n\n{\n  \"default_library\": \"nypl\",\n  \"libraries\": {\n    \"nypl\": \"New York Public Library\"\n  }\n}\n\nThe library code is the subdomain from your library's OverDrive site (e.g., nypl.overdrive.com -> nypl)."
      },
      {
        "title": "Cron Integration",
        "body": "Run a daily check that only outputs when books are newly found:\n\npython3 {baseDir}/scripts/libby-book-monitor.py --profile jane check --notify\n\nIf any new books are found, send the results to the user."
      },
      {
        "title": "Notes",
        "body": "Works with non-Latin scripts (Hebrew, Arabic, CJK, etc.)\nBooks are considered \"found\" when isOwned: true in the API response\n1-second delay between API calls when checking multiple books\nNo external dependencies (Python stdlib only)\nData stored in ~/.libby-book-monitor/ (configurable via --data-dir or $LIBBY_BOOK_MONITOR_DATA)"
      }
    ],
    "body": "Libby/OverDrive Book Monitor\n\nTrack book availability on Libby/OverDrive libraries. Search catalogues, manage a watchlist, and get notified when books are added to your library's collection.\n\nDisclaimer: This is an unofficial tool, not affiliated with or endorsed by OverDrive/Libby. Catalogue data queries APIs that power the website and may not reflect actual availability. This tool does NOT borrow books or place holds. Provided \"as is\" without warranty of any kind.\n\nQuick Start\n# Search a library catalogue\npython3 {baseDir}/scripts/libby-book-monitor.py search telaviv \"Project Hail Mary\"\n\n# Add a book to your watchlist\npython3 {baseDir}/scripts/libby-book-monitor.py watch \"Kafka on the Shore\" --author \"Haruki Murakami\"\n\n# Check your watchlist against the API\npython3 {baseDir}/scripts/libby-book-monitor.py check\n\n# Show your watchlist\npython3 {baseDir}/scripts/libby-book-monitor.py list\n\nCommands\nCommand\tDescription\nsearch <library> <query>\tSearch a library catalogue by title/author\nwatch <title>\tAdd a book to the watchlist\nunwatch <title>\tRemove a book from the watchlist\nlist\tShow the watchlist with status\ncheck\tCheck all watchlist books against the API\nOptions\nOption\tCommands\tDescription\n--profile <name>\tall\tSeparate watchlist per user\n--author <name>\twatch\tSpecify book author\n--library <code>\twatch\tLibrary code (default: from config)\n--notify\tcheck\tOnly print newly found books (for cron)\n--data-dir <path>\tall\tCustom data directory\nProfiles\n\nUse --profile to maintain separate watchlists for different people:\n\npython3 {baseDir}/scripts/libby-book-monitor.py --profile jane watch \"Dune\"\npython3 {baseDir}/scripts/libby-book-monitor.py --profile bob check --notify\n\nConfiguration\n\nDefault library is telaviv Israel Digital. Edit ~/.libby-book-monitor/config.json to change:\n\n{\n  \"default_library\": \"nypl\",\n  \"libraries\": {\n    \"nypl\": \"New York Public Library\"\n  }\n}\n\n\nThe library code is the subdomain from your library's OverDrive site (e.g., nypl.overdrive.com -> nypl).\n\nCron Integration\n\nRun a daily check that only outputs when books are newly found:\n\npython3 {baseDir}/scripts/libby-book-monitor.py --profile jane check --notify\n\n\nIf any new books are found, send the results to the user.\n\nNotes\nWorks with non-Latin scripts (Hebrew, Arabic, CJK, etc.)\nBooks are considered \"found\" when isOwned: true in the API response\n1-second delay between API calls when checking multiple books\nNo external dependencies (Python stdlib only)\nData stored in ~/.libby-book-monitor/ (configurable via --data-dir or $LIBBY_BOOK_MONITOR_DATA)"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/alexpolonsky/libby-book-monitor",
    "publisherUrl": "https://clawhub.ai/alexpolonsky/libby-book-monitor",
    "owner": "alexpolonsky",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/libby-book-monitor",
    "downloadUrl": "https://openagent3.xyz/downloads/libby-book-monitor",
    "agentUrl": "https://openagent3.xyz/skills/libby-book-monitor/agent",
    "manifestUrl": "https://openagent3.xyz/skills/libby-book-monitor/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/libby-book-monitor/agent.md"
  }
}