Files
magnus919_agent-skills/openlibrary/README.md
Magnus Hedemarkandfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> df44337a5d docs(openlibrary): lastfm-model SKILL.md rewrite and README refresh
SKILL.md rebuilt to the lastfm model: keyless setup with covers-host table, intent-grouped commands including new editions/ratings, ISBN-to-work-to-author pipeline recipe, jq guidance, Known Gotchas grounded in researched behavior (ISBN 302 redirects, merge stubs inside HTTP 200, OL...M/W/A suffix system with double-nested author refs, availability-needs-ia projection rule, silent-empty search errors, rate etiquette), When-to-use/When-not-to-use boundaries, and a four-row reference routing table. Body 240 lines. README rewritten for humans with verified What You Get paths. Description updated with imperative verb start and negative boundary.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-08-26 08:44:37 -04:00

3.0 KiB

Open Library — Book Metadata from the Terminal

Search books and authors, resolve ISBNs, walk the edition/work/author graph, enumerate editions, and read community ratings from the public Open Library API. No API key exists — every read is keyless.

Why Install This Skill

When your agent loads this skill, it gets structured access to 50M+ book records without any signup or credentials:

  • Search anything — keyword queries with sort by edition count, date, or title; field-scoped lookups by title, author, subject, publisher, or ISBN
  • Resolve any identifier — turn an ISBN/LCCN/OCLC into a canonical edition record and follow it up to the abstract work and its author
  • Enumerate editions — every published version of a work with dates, publishers, and ISBNs
  • Read community signals — star ratings and want-to-read counts per work
  • Get cover images correctly — proper URLs on Open Library's dedicated image host, with existence checks that actually return 404 instead of blank placeholders

The skill also encodes where agents typically trip: ISBN endpoints that answer 302 redirects, merged-record keys that hide redirect stubs inside HTTP 200 responses, the OL…M/W/A key-suffix system, {type,value}-wrapped text fields, and rate-limit etiquette that keeps you unblocked.

What You Get

Path Purpose
SKILL.md Command reference: setup, intent-grouped commands, pipeline recipes, jq guidance, known gotchas
scripts/openlibrary CLI tool for the Open Library API (--json, --dry-run, automatic redirect resolution)
scripts/test_openlibrary.py Offline test suite for the CLI (help/errors/dry-run/mocked logic; live probes env-guarded)
references/api-overview-and-key-graph.md Access model, rate etiquette, OLID key graph, merge-stub behavior
references/search-api-guide.md Search parameters, sort keys, query syntax, sibling search endpoints, error model
references/books-isbn-and-covers.md ISBN/identifier resolution, view models, editions, ratings, covers-host rules
references/recipes-and-gotchas.md Worked curl/jq pipelines and a symptom-indexed gotcha table
evals/evals.json Behavioral eval cases covering searches, pipelines, gotchas

Quick Start

openlibrary search --query "dune"                 # find works
openlibrary isbn 9780451524935                    # resolve an ISBN to its edition
openlibrary editions OL81699W                     # list every edition of a work
openlibrary ratings OL45804W                      # community signals

Optional politeness knob:

export OL_EMAIL="you@example.com"   # adds contact to User-Agent; ~3x rate budget

Triggers

Load this for book research, ISBN or OLID lookups, author biographies, edition enumeration, reading-level community stats, cover-image URL assembly, or any question about the Open Library catalog itself.

Requirements

  • Python 3.8+ with the requests library
  • No API key, no account — reads are fully public
  • jq recommended for processing --json output