brainstorming
Structured design dialogue that validates ideas before implementation begins.
calibre
Search and query Calibre library databases. Use when the user asks about books, TBR (to-be-read), reading lists, Calibre library queries, book searches, or mentions Calibre. Also use for queries about book ratings, authors, reading status, or library statistics.
Full skill instructions
You are helping the user search and query their Calibre library using calibredb.
Library URL: http://killington.home.bitbin.de:8454/#
calibredb Location: /Applications/calibre.app/Contents/MacOS/calibredb
Authentication:
calibrecalibreNote: Using Calibre Content Server means no database locking issues - queries work even while Calibre GUI is running.
The Calibre library has these custom fields:
| Field | Search Name | Display Name | Type | Values |
|---|---|---|---|---|
| read | #read | *read | Boolean | Yes/No |
| dateread | #dateread | *dateread | Datetime | ISO date |
| archived | #archived | *archived | Boolean | Yes/No |
| goodreads | #goodreads | *goodreads | Float | 0.0-5.0 |
| pages | #pages | *pages | Integer | page count |
| priority | #priority | *priority | Text | varies |
| words | #words | *words | Integer | word count |
IMPORTANT - Boolean Field Syntax:
#field syntax in searches with Yes or No (capitalized): e.g., #read:Yes, #read:No*field syntax when displaying fields (e.g., *read)true/false - they are Yes/NoAlways use this pattern:
/Applications/calibre.app/Contents/MacOS/calibredb list \
--with-library='http://killington.home.bitbin.de:8454/#' \
--username='calibre' \
--password='calibre' \
--fields='field1,field2,*customfield' \
--search='search query' \
--for-machine | python3 -m json.tool
--fields='field1,field2' - Comma-separated list of fields to display--search='query' - Search query using Calibre's search syntax--sort-by='field' - Sort results by field--limit=N - Limit results to N books--for-machine - Output as JSON (always use this for parsing)title, authors, series, series_indextimestamp (when added to library)last_modified (when book record was last modified)pubdate, publisher, isbnrating, tags, commentsformats, size, uuid# Search by title
--search='title:"Book Title"'
# Search by author
--search='authors:"Author Name"'
# Search in series
--search='series:"Series Name"'
# Combine searches with AND
--search='authors:"Sanderson" and series:"Mistborn"'
# Combine searches with OR
--search='authors:"Sanderson" or authors:"Wells"'
# NOT operator
--search='not #archived:Yes'
# Books marked as read
--search='#read:Yes'
# Books NOT read
--search='#read:No'
# Books not archived and not read (TBR)
--search='#read:No and #archived:No'
# Highly rated books (>= 4.0)
--search='#goodreads:">4"'
# Books with specific page count
--search='#pages:"<300"'
# Empty/not set custom fields
--search='#goodreads:""'
# Books read in a specific date range
--search='#dateread:">=2024-01-01" and #dateread:"<2025-01-01"'
# Books read in the last 30 days
--search='#dateread:">=30daysago"'
Get unread, non-archived books:
/Applications/calibre.app/Contents/MacOS/calibredb list \
--with-library='http://killington.home.bitbin.de:8454/#' \
--username='calibre' \
--password='calibre' \
--fields='title,authors,series,series_index,*goodreads,*pages' \
--search='#read:No and #archived:No' \
--for-machine | python3 -m json.tool
/Applications/calibre.app/Contents/MacOS/calibredb list \
--with-library='http://killington.home.bitbin.de:8454/#' \
--username='calibre' \
--password='calibre' \
--fields='title,authors,*goodreads,*pages,timestamp' \
--search='#read:No and #archived:No' \
--sort-by='timestamp' \
--limit=10 \
--for-machine | python3 -m json.tool
Use the *dateread field to see when books were actually finished:
/Applications/calibre.app/Contents/MacOS/calibredb list \
--with-library='http://killington.home.bitbin.de:8454/#' \
--username='calibre' \
--password='calibre' \
--fields='title,authors,series,series_index,*goodreads,*pages,*dateread' \
--search='#read:Yes' \
--sort-by='*dateread' \
--limit=15 \
--for-machine | python3 -m json.tool
/Applications/calibre.app/Contents/MacOS/calibredb list \
--with-library='http://killington.home.bitbin.de:8454/#' \
--username='calibre' \
--password='calibre' \
--fields='title,authors,series,*goodreads,*pages' \
--search='#read:No and #archived:No and #goodreads:">4"' \
--sort-by='*goodreads' \
--for-machine | python3 -m json.tool
/Applications/calibre.app/Contents/MacOS/calibredb list \
--with-library='http://killington.home.bitbin.de:8454/#' \
--username='calibre' \
--password='calibre' \
--fields='title,authors,series,*read,*goodreads,*pages' \
--search='authors:"Sanderson" and #archived:No' \
--for-machine | python3 -m json.tool
/Applications/calibre.app/Contents/MacOS/calibredb list \
--with-library='http://killington.home.bitbin.de:8454/#' \
--username='calibre' \
--password='calibre' \
--fields='title,authors,*pages,*goodreads' \
--search='#read:No and #archived:No and #pages:"<300"' \
--sort-by='*goodreads' \
--for-machine | python3 -m json.tool
/Applications/calibre.app/Contents/MacOS/calibredb list \
--with-library='http://killington.home.bitbin.de:8454/#' \
--username='calibre' \
--password='calibre' \
--fields='title,authors,series,series_index,*goodreads,*pages,timestamp' \
--search='series:"Between Earth and Sky" and #read:No and #archived:No' \
--sort-by='series_index' \
--for-machine | python3 -m json.tool
# Books read in October 2024
/Applications/calibre.app/Contents/MacOS/calibredb list \
--with-library='http://killington.home.bitbin.de:8454/#' \
--username='calibre' \
--password='calibre' \
--fields='title,authors,*dateread,*goodreads,*pages' \
--search='#dateread:">=2024-10-01" and #dateread:"<2024-11-01"' \
--sort-by='*dateread' \
--for-machine | python3 -m json.tool
# Books read this year
/Applications/calibre.app/Contents/MacOS/calibredb list \
--with-library='http://killington.home.bitbin.de:8454/#' \
--username='calibre' \
--password='calibre' \
--fields='title,authors,*dateread,*goodreads' \
--search='#dateread:">=2025-01-01"' \
--sort-by='*dateread' \
--for-machine | python3 -m json.tool
When the user asks to search their Calibre library:
and #archived:No to searches--for-machine to get JSON output that's easier to parsetimestamp field shows when a book was added to the library*dateread field shows when a book was actually finished reading (synced from Goodreads)last_modified field shows when a book record was last changed (not reliable for "recently read")python3 -m json.tool to pretty-print JSON for readabilityYes/No (e.g., #read:Yes), but in JSON output they appear as true/false (lowercase)*dateread to sort by when books were actually read (more accurate than last_modified)User: "Show me my to-be-read list"
→ Search with #read:No and #archived:No
User: "Find books by Sanderson"
→ Search with authors:"Sanderson" and #archived:No
User: "Show highly rated unread books"
→ Search with #read:No and #archived:No and #goodreads:">4"
User: "What did I read recently?"
→ Search with #read:Yes, sort by *dateread (descending), limit to 10-15
User: "What's next in the series I'm reading?" → Find series from recent reads, then search for unread books in that series
User: "What did I read in October?" or "Show me books I read this year"
→ Use date range searches with #dateread:">=2024-10-01" and #dateread:"<2024-11-01" or #dateread:">=2025-01-01"
calibredb add, calibredb set_metadata, calibredb remove unless explicitly requested by userStructured design dialogue that validates ideas before implementation begins.
Comprehensive design intelligence for web and mobile UI/UX across 10 technology stacks.
Comprehensive implementation plans for multi-step tasks, breaking down specs into bite-sized, testable steps.
Introduction to the obra skills system with mandatory skill invocation rules and best practices.
Execute a written implementation plan with critical review and task checkpoints.
Delegate independent tasks to specialized agents working concurrently with isolated context.
Isolated git worktrees with smart directory selection and safety verification.
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
Plan searchable and shareable content that drives traffic, builds authority, and generates leads.
README-first repository scanner that extracts commands and classifies reproduction candidates without executing them.
Brainstorm and prioritize marketing strategies tailored to your SaaS stage, budget, and goals.
Plan and optimize your website's page hierarchy, navigation, URL structure, and internal linking.
The world's fastest calendar for remote work
Capture, organize, and utilize your knowledge effortlessly.
Instant Summaries of Audio & Video Interviews with AnySummary
Transform PDFs into engaging mind maps.
Chat with any PDF instantly
Create an optimal daily plan using your voice
A productivity platform to centralize organizational knowledge and workflows with contextual AI assistance.
AskYourPDF Pricing Plans: Tailored to Your Needs