libby-book-monitor

v1.0.0

Track book availability on Libby/OverDrive libraries. Search library catalogues, manage a watchlist, and get notified when books are added. Use for "libby",...

0· 432·0 current·0 all-time
MIT-0
Download zip
LicenseMIT-0 · Free to use, modify, and redistribute. No attribution required.
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description match the included code and instructions. The script implements searching, a watchlist, and periodic checks against the OverDrive Thunder API. Required binaries (python3) and config paths (~/.libby-book-monitor) are proportionate to the stated purpose.
Instruction Scope
SKILL.md instructs running the included Python CLI with arguments, storing data under the user's data dir, and optionally using an env var (LIBBY_BOOK_MONITOR_DATA) to override the path. The runtime instructions do not ask the agent to read unrelated files, harvest credentials, or contact unexpected endpoints; network calls are limited to the documented thunder.api.overdrive.com API.
Install Mechanism
No install spec is provided (instruction-only skill). The package includes a single Python script that uses only the stdlib. No downloads from arbitrary URLs or package installs occur during install.
Credentials
No required environment variables or credentials are declared. The script optionally respects LIBBY_BOOK_MONITOR_DATA to change the data directory; no secrets or unrelated credentials are requested or accessed.
Persistence & Privilege
Skill is not always-enabled and does not request system-wide changes. It stores its own per-user configuration and watchlist under ~/.libby-book-monitor (or an overridden path), which is expected for this CLI utility. It does not modify other skills or agent-wide settings.
Assessment
This skill appears coherent and implements exactly what it claims: a local CLI that queries the OverDrive Thunder API and stores watchlists under ~/.libby-book-monitor. Before installing, review the config and data directory (it will create ~/.libby-book-monitor/config.json on first run). Remember this is unofficial tooling — the Thunder API search results may not reflect real-time borrowability and the tool does not perform any borrowing or hold actions. If you plan to run it regularly (cron/automation), consider redirecting output to your chosen notifier and confirm the data directory and profile handling meet your privacy expectations.

Like a lobster shell, security has layers — review code before you run it.

latestvk97fkq210adbxxd3z6ews8ffvh81g9pn

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Runtime requirements

📚 Clawdis
OSmacOS · Linux
Binspython3

SKILL.md

Libby/OverDrive Book Monitor

Track book availability on Libby/OverDrive libraries. Search catalogues, manage a watchlist, and get notified when books are added to your library's collection.

Disclaimer: 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.

Quick Start

# Search a library catalogue
python3 {baseDir}/scripts/libby-book-monitor.py search telaviv "Project Hail Mary"

# Add a book to your watchlist
python3 {baseDir}/scripts/libby-book-monitor.py watch "Kafka on the Shore" --author "Haruki Murakami"

# Check your watchlist against the API
python3 {baseDir}/scripts/libby-book-monitor.py check

# Show your watchlist
python3 {baseDir}/scripts/libby-book-monitor.py list

Commands

CommandDescription
search <library> <query>Search a library catalogue by title/author
watch <title>Add a book to the watchlist
unwatch <title>Remove a book from the watchlist
listShow the watchlist with status
checkCheck all watchlist books against the API

Options

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

Profiles

Use --profile to maintain separate watchlists for different people:

python3 {baseDir}/scripts/libby-book-monitor.py --profile jane watch "Dune"
python3 {baseDir}/scripts/libby-book-monitor.py --profile bob check --notify

Configuration

Default library is telaviv Israel Digital. Edit ~/.libby-book-monitor/config.json to change:

{
  "default_library": "nypl",
  "libraries": {
    "nypl": "New York Public Library"
  }
}

The library code is the subdomain from your library's OverDrive site (e.g., nypl.overdrive.com -> nypl).

Cron Integration

Run a daily check that only outputs when books are newly found:

python3 {baseDir}/scripts/libby-book-monitor.py --profile jane check --notify

If any new books are found, send the results to the user.

Notes

  • Works with non-Latin scripts (Hebrew, Arabic, CJK, etc.)
  • Books are considered "found" when isOwned: true in the API response
  • 1-second delay between API calls when checking multiple books
  • No external dependencies (Python stdlib only)
  • Data stored in ~/.libby-book-monitor/ (configurable via --data-dir or $LIBBY_BOOK_MONITOR_DATA)

Files

3 total
Select a file
Select a file to preview.

Comments

Loading comments…