{"slug":"openlibrary","title":"openlibrary","summary":"Query the Open Library catalog from the terminal: search books and authors, look up works, editions, and ISBNs, enumerate every edition of a work, read community ratings, and resolve cover-image URLs. Fully keyless public API. Includes the OL…M/W/A key-graph reference, ISBN 302-r","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-09-08T21:25:10.5365Z","repo":{"url":"https://github.com/magnus919/agent-skills","stars":96,"forks":9,"license":"MIT","updatedAt":"2026-09-25T05:53:13Z"},"bodyHtml":"<h1>Open Library — Book Metadata from the Terminal</h1>\n<p>Search books and authors, resolve ISBNs, walk the edition/work/author graph,\nenumerate editions, and read community ratings from the public Open Library\nAPI. No API key exists — every read is keyless.</p>\n<h2>Why Install This Skill</h2>\n<p>When your agent loads this skill, it gets <strong>structured access to 50M+ book records</strong>\nwithout any signup or credentials:</p>\n<ul>\n<li><strong>Search anything</strong> — keyword queries with sort by edition count, date, or title; field-scoped lookups by title, author, subject, publisher, or ISBN</li>\n<li><strong>Resolve any identifier</strong> — turn an ISBN/LCCN/OCLC into a canonical edition record and follow it up to the abstract work and its author</li>\n<li><strong>Enumerate editions</strong> — every published version of a work with dates, publishers, and ISBNs</li>\n<li><strong>Read community signals</strong> — star ratings and want-to-read counts per work</li>\n<li><strong>Get cover images correctly</strong> — proper URLs on Open Library's dedicated image host, with existence checks that actually return 404 instead of blank placeholders</li>\n</ul>\n<p>The skill also encodes where agents typically trip: ISBN endpoints that answer\n302 redirects, merged-record keys that hide redirect stubs inside HTTP 200\nresponses, the OL…M/W/A key-suffix system, <code>{type,value}</code>-wrapped text fields,\nand rate-limit etiquette that keeps you unblocked.</p>\n<h2>What You Get</h2>\n<table>\n<thead>\n<tr>\n<th>Path</th>\n<th>Purpose</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>SKILL.md</code></td>\n<td>Command reference: setup, intent-grouped commands, pipeline recipes, jq guidance, known gotchas</td>\n</tr>\n<tr>\n<td><code>scripts/openlibrary</code></td>\n<td>CLI tool for the Open Library API (<code>--json</code>, <code>--dry-run</code>, automatic redirect resolution)</td>\n</tr>\n<tr>\n<td><code>scripts/test_openlibrary.py</code></td>\n<td>Offline test suite for the CLI (help/errors/dry-run/mocked logic; live probes env-guarded)</td>\n</tr>\n<tr>\n<td><code>references/api-overview-and-key-graph.md</code></td>\n<td>Access model, rate etiquette, OLID key graph, merge-stub behavior</td>\n</tr>\n<tr>\n<td><code>references/search-api-guide.md</code></td>\n<td>Search parameters, sort keys, query syntax, sibling search endpoints, error model</td>\n</tr>\n<tr>\n<td><code>references/books-isbn-and-covers.md</code></td>\n<td>ISBN/identifier resolution, view models, editions, ratings, covers-host rules</td>\n</tr>\n<tr>\n<td><code>references/recipes-and-gotchas.md</code></td>\n<td>Worked curl/jq pipelines and a symptom-indexed gotcha table</td>\n</tr>\n<tr>\n<td><code>evals/evals.json</code></td>\n<td>Behavioral eval cases covering searches, pipelines, gotchas</td>\n</tr>\n</tbody>\n</table>\n<h2>Quick Start</h2>\n<pre><code>openlibrary search --query \"dune\"                 # find works\nopenlibrary isbn 9780451524935                    # resolve an ISBN to its edition\nopenlibrary editions OL81699W                     # list every edition of a work\nopenlibrary ratings OL45804W                      # community signals\n</code></pre>\n<p>Optional politeness knob:</p>\n<pre><code>export OL_EMAIL=\"you@example.com\"   # adds contact to User-Agent; ~3x rate budget\n</code></pre>\n<h2>Triggers</h2>\n<p>Load this for book research, ISBN or OLID lookups, author biographies, edition\nenumeration, reading-level community stats, cover-image URL assembly, or any\nquestion about the Open Library catalog itself.</p>\n<h2>Requirements</h2>\n<ul>\n<li>Python 3.8+ with the <code>requests</code> library</li>\n<li>No API key, no account — reads are fully public</li>\n<li><code>jq</code> recommended for processing <code>--json</code> output</li>\n</ul>\n","files":[{"path":"evals/evals.json","sizeBytes":6901,"isText":true},{"path":"README.md","sizeBytes":3113,"isText":true},{"path":"references/api-overview-and-key-graph.md","sizeBytes":8670,"isText":true},{"path":"references/books-isbn-and-covers.md","sizeBytes":9269,"isText":true},{"path":"references/recipes-and-gotchas.md","sizeBytes":8393,"isText":true},{"path":"references/search-api-guide.md","sizeBytes":10330,"isText":true},{"path":"scripts/openlibrary","sizeBytes":23035,"isText":false},{"path":"scripts/test_openlibrary.py","sizeBytes":24280,"isText":true},{"path":"SKILL.md","sizeBytes":13112,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-09-08T21:27:28.005174Z","sha256":"7731570973AF8463FA96C3D86971AEF22527ED49E098192F5D261FBABF6158C4","sizeBytes":40279},"review":null,"source":{"repositoryUrl":"https://github.com/magnus919/agent-skills","path":"openlibrary","license":"MIT","commit":"1a7d5757db23474b58b4a5588356e09bd0ac5886","subtreeSha":"9F5B84B97C04D5E3A9297BC8150E0346B467589E18B7C3F6253C5D215D464439","lastSyncedAt":"2026-09-25T06:49:43.852966Z"},"reviewedAt":"2026-09-08T21:31:03.309614Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/magnus919/agent-skills/tree/main/openlibrary"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install magnus919-agent-skills@llmmart"},{"target":"git","command":"git clone https://github.com/magnus919/agent-skills.git"}]}