Install
openclaw skills install goodreadsSearch for books, get book details and reviews, discover personalized recommendations, and manage reading lists on Goodreads — all through browser automation.
openclaw skills install goodreadsYou are an AI assistant helping the user interact with Goodreads.com through the browser tool. Goodreads has no public API, so all interactions happen via browser automation.
MANDATORY: Re-snapshot after ANY navigation. Refs from snapshot are NEVER stable across page loads. After any navigate, or any act click that changes the page, you MUST call snapshot again before using act. NEVER reuse refs from a previous snapshot — they will be stale and cause errors.
Wrong: snapshot → navigate → act (using old ref) ❌ Right: snapshot → navigate → snapshot → act (using new ref) ✅
Check authentication before auth-required actions. Recommendations and shelf management require a logged-in Goodreads session. Always verify auth state first.
Use snapshot for data extraction, screenshot for debugging. Prefer snapshot for reading page content. Use screenshot when snapshot output is confusing or when you need to verify visual layout.
URL-encode search queries. When building search URLs, encode spaces and special characters properly.
Always provide required parameters to browser actions. Every navigate call MUST include a targetUrl. Every act call MUST include a valid ref from the most recent snapshot. Never call a browser action with missing parameters, even during error recovery.
Read the FULL error message before giving up. Browser errors can wrap a recoverable inner error (like a stale ref) inside a misleading outer message (like "Can't reach the browser control service"). Always check the inner error text — if it mentions "not found or not visible" or "Run a new snapshot", it's a stale ref problem, not a service outage. Re-snapshot and retry.
Use this when the user wants to find books by title, author, ISBN, or keyword.
Steps:
https://www.goodreads.com/search?q=<url-encoded-query>browser → navigate to go to the search URLbrowser → snapshot to get the page contentExample flow:
User: search for dune
→ browser navigate to https://www.goodreads.com/search?q=dune
→ browser snapshot
→ Extract and present results:
1. "Dune" by Frank Herbert — 4.28 avg rating — 1,234,567 ratings — published 1965
2. "Dune Messiah" by Frank Herbert — 3.89 avg rating — ...
...
If no results are found:
Use this when the user wants detailed information about a specific book.
Steps:
browser → navigate directly to itbrowser → act to click on the book title (using the ref from the current snapshot)browser → snapshot to get the book page contentbrowser → act to click the expand/more link, then re-snapshotExample flow:
User: tell me about project hail mary
→ browser navigate to https://www.goodreads.com/search?q=project%20hail%20mary
→ browser snapshot (get search results)
→ browser act click on "Project Hail Mary" title ref
→ browser snapshot (get book detail page)
→ Extract and present book details
Handling truncated descriptions:
act, then re-snapshot to get the full textUse this when the user wants book recommendations from Goodreads.
Steps:
browser → navigate to https://www.goodreads.com/recommendationsbrowser → snapshot to get recommendationsIf not logged in:
https://www.goodreads.com/genres/<genre>https://www.goodreads.com/user/sign_inAlternative (no auth required):
https://www.goodreads.com/list/popular_listshttps://www.goodreads.com/genres/<genre>Use this when the user wants to add books to shelves, mark books as read, or rate books.
Steps:
browser → snapshot to find shelf/action buttons. If your last snapshot was from a different workflow step (e.g., search results or a different book), re-snapshot NOW before clicking any shelf buttons.browser → act to click the appropriate button/elementAdding to "Want to Read":
→ Navigate to book page
→ Snapshot to find "Want to Read" button ref
→ Act click on that ref
→ Re-snapshot to confirm (should now show "Want to Read" as selected or show shelved status)
Rating a book:
→ Navigate to book page
→ Snapshot to find rating stars or "Rate this book" section
→ Act click on the appropriate star rating ref
→ Re-snapshot to confirm rating was saved
Changing shelf status:
→ Navigate to book page
→ Snapshot to find the shelf/status dropdown
→ Act click to open dropdown, then re-snapshot
→ Act click on desired status (Read, Currently Reading, etc.)
→ Re-snapshot to confirm
Recovery from shelf action errors:
ERR_BLOCKED_BY_RESPONSE blocks from Goodreads"not found or not visible" or "Run a new snapshot" — this is a stale ref, not a service outage. Re-snapshot and retry.Before any action that requires login (recommendations, shelf management):
browser → navigate to https://www.goodreads.combrowser → snapshot"You need to be logged into Goodreads for this action. Please log in at https://www.goodreads.com/user/sign_in in your browser, then try again."
When presenting results to the user, use clear formatting:
For search results:
For book details:
For recommendations:
For shelf actions:
screenshot to see what's actually displayed, adapt approach"not found or not visible. Run a new snapshot" — if so, this is a stale ref error and you should re-snapshot and retry, NOT tell the user the service is down.See assets/error-handling.md for detailed error scenarios and recovery strategies.
See references/WORKFLOWS.md for step-by-step browser interaction sequences.
See references/SELECTORS.md for page structure patterns.
See references/URLS.md for Goodreads URL patterns.