Skip to content
calibre logo

Calibre Library Search Skill

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.

SKILL.md

Full skill instructions

Calibre Library Search Skill

You are helping the user search and query their Calibre library using calibredb.

Library Setup

Library URL: http://killington.home.bitbin.de:8454/#

calibredb Location: /​Applications/​calibre.app/​Contents/​MacOS/​calibredb

Authentication:

  • Username: calibre
  • Password: calibre

Note: Using Calibre Content Server means no database locking issues - queries work even while Calibre GUI is running.

Custom Fields

The Calibre library has these custom fields:

FieldSearch NameDisplay NameTypeValues
read#read*readBooleanYes/​No
dateread#dateread*datereadDatetimeISO date
archived#archived*archivedBooleanYes/​No
goodreads#goodreads*goodreadsFloat0.0-5.0
pages#pages*pagesIntegerpage count
priority#priority*priorityTextvaries
words#words*wordsIntegerword count

IMPORTANT - Boolean Field Syntax:

  • Use #field syntax in searches with Yes or No (capitalized): e.g., #read:Yes, #read:No
  • Use *field syntax when displaying fields (e.g., *read)
  • Boolean values are NOT true/false - they are Yes/No

calibredb Command Pattern

Always 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

Common Options

  • --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)

Available Built-in Fields

  • title, authors, series, series_index
  • timestamp (when added to library)
  • last_modified (when book record was last modified)
  • pubdate, publisher, isbn
  • rating, tags, comments
  • formats, size, uuid

Search Query Syntax

Basic Searches

# 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'

Custom Field Searches

# 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"'

Common Query Examples

To-Be-Read List

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

Recently Added Books

/​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

Recently Read Books

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

Highly Rated Unread Books

/​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

Books by Specific Author

/​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

Quick Reads (< 300 pages)

/​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

Unread Books in a Series

/​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 a Time Period

# 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

Usage Instructions

When the user asks to search their Calibre library:

  1. Determine what they're looking for (to-be-read, specific book, by rating, etc.)
  2. Construct the appropriate calibredb command based on examples above
  3. Execute the command using the Bash tool
  4. Parse the JSON output and present results in a readable format

Query Tips

  • Always exclude archived books unless specifically requested: add and #archived:No to searches
  • Use --for-machine to get JSON output that's easier to parse
  • The timestamp field shows when a book was added to the library
  • The *dateread field shows when a book was actually finished reading (synced from Goodreads)
  • The last_modified field shows when a book record was last changed (not reliable for "recently read")
  • When a custom field is not set, it won't appear in the JSON output
  • Use python3 -m json.tool to pretty-print JSON for readability
  • Search queries are case-insensitive
  • Use quotes around field values that contain spaces
  • Boolean fields: In search queries use Yes/No (e.g., #read:Yes), but in JSON output they appear as true/false (lowercase)
  • Date fields: Use *dateread to sort by when books were actually read (more accurate than last_modified)

Examples

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"

Safety Notes

  • Read-only access: calibredb list is a read-only operation
  • Never use: calibredb add, calibredb set_metadata, calibredb remove unless explicitly requested by user
  • No locking issues: Using the Content Server means the Calibre GUI can remain open during queries

More Productivity & Planning skills

brainstorming logo
Productivity & Planning

brainstorming

Structured design dialogue that validates ideas before implementation begins.

295.4K 385.7K
View
ui-ux-pro-max logo
Productivity & Planning

ui-ux-pro-max

Comprehensive design intelligence for web and mobile UI/UX across 10 technology stacks.

133.1K 383.9K
View
writing-plans logo
Productivity & Planning

writing-plans

Comprehensive implementation plans for multi-step tasks, breaking down specs into bite-sized, testable steps.

295.4K 268K
View
using-superpowers logo
Productivity & Planning

using-superpowers

Introduction to the obra skills system with mandatory skill invocation rules and best practices.

295.4K 259.8K
View
executing-plans logo
Productivity & Planning

executing-plans

Execute a written implementation plan with critical review and task checkpoints.

295.4K 229.1K
View
dispatching-parallel-agents logo
Productivity & Planning

dispatching-parallel-agents

Delegate independent tasks to specialized agents working concurrently with isolated context.

295.4K 206.3K
View
using-git-worktrees logo
Productivity & Planning

using-git-worktrees

Isolated git worktrees with smart directory selection and safety verification.

295.4K 205.2K
View
webapp-testing logo
Productivity & Planning

webapp-testing

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.

179.7K 170.6K
View
content-strategy logo
Productivity & Planning

content-strategy

Plan searchable and shareable content that drives traffic, builds authority, and generates leads.

53.3K 150.9K
View
repo-intake-and-plan logo
Productivity & Planning

repo-intake-and-plan

README-first repository scanner that extracts commands and classifies reproduction candidates without executing them.

497 139.6K
View
marketing-ideas logo
Productivity & Planning

marketing-ideas

Brainstorm and prioritize marketing strategies tailored to your SaaS stage, budget, and goals.

53.3K 137.2K
View
site-architecture logo
Productivity & Planning

site-architecture

Plan and optimize your website's page hierarchy, navigation, URL structure, and internal linking.

53.3K 112.8K
View

Productivity AI tools

Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View
SaveDay logo
Productivity

SaveDay

Capture, organize, and utilize your knowledge effortlessly.

Free
View
Any Summary logo
Productivity

Any Summary

Instant Summaries of Audio & Video Interviews with AnySummary

Freemium
View
M
Productivity

Map This

Transform PDFs into engaging mind maps.

Freemium
View
ChatPDF logo
Productivity

ChatPDF

Chat with any PDF instantly

Free
View
I
Productivity

intellisay

Create an optimal daily plan using your voice

Paid
View
A
Productivity

Aurora AI

A productivity platform to centralize organizational knowledge and workflows with contextual AI assistance.

Paid
View
AskYourPDF logo
Productivity

AskYourPDF

AskYourPDF Pricing Plans: Tailored to Your Needs

Free
View