Book Search + Covers
approvedby lksrpp
Search for books with high-resolution covers and create new notes based on your template. Supports searching via Google Book API, Open Library, Apple Store. - This plugin has not been manually reviewed by Obsidian staff.
Book Search + Covers
Search books as you type, pick the exact edition, and get a finished note from your own template, complete with a high-resolution cover.
Built for anyone who keeps a book library in their vault. Metadata comes from Google Books or Open Library (your choice; Google Books wants a free API key, Open Library needs nothing). Cover art is pulled from Apple Books and Google Books side by side, so you can pick the sharpest image. That difference shows in gallery views like Obsidian Bases, where new notes get a full-size cover instead of the usual thumbnail.
What you get
- Live search. Results appear while you type, with cover, title, author, year, and description. No multi-step dialogs; just type, see, pick.
- High-resolution covers. Go with 800x800 pixels or beyond, instead of the small thumbnails most book plugins settle for.
- Covers as links or files. Reference a cover by URL, or download it into your vault for a fully portable, offline library.
- Your template, your note. Notes are built from a template you customize, from the frontmatter properties down to the file name.
- Backfill your existing library. Give any book note a better cover, including notes you wrote by hand or created with another plugin.
- Works on desktop and mobile.
Adding a new book
Find a new book and add it to your Obsidian library.

- Click the book ribbon icon or run the New book note command.
- Type a title, an author, or both. Results appear live. You can also paste an ISBN to jump straight to one exact edition.
- Pick the edition you want. The note is created from your template in your note folder and opens right away.
If a note for the book already exists, you are asked first instead of ending up with a duplicate. Your default store region and cover storage mode come from settings, and both can be switched right in the search modal for a single search.
Giving a better cover to an existing note
Already have a library? Open any book note and run Fetch or replace cover for current note.

The plugin reads the note's title and author (from frontmatter, or the file name if there is none) and shows candidates from Google Books and Apple side by side.
- Each card lists title, author, year, source, and the exact pixel size it delivers, so you can pick the best one at a glance.
- Found a better image elsewhere? Paste its URL into the field at the bottom to use that instead.
- The cover is written into the note's cover property (configurable), as a link or a downloaded file.
- Works on notes from other plugins too, so you can upgrade an existing library one note at a time.
Storing covers: link or download
- Link (default). The remote URL goes into the note. Nothing is added to your vault, but rendering needs an internet connection.
- Download. The image is saved into a folder you pick and referenced locally. Portable, offline, future-proof; about 140 KB per cover at 800x800.
You set the default in settings.
Customize new book notes
The built-in Note template works out of the box and is editable right in the settings. Prefer managing templates as notes (for example with Templater)? Point the Template file setting at any note in your vault instead; a button next to the setting turns your current inline template into such a file, so nothing is lost when you switch.
Templates use simple {{variable}} placeholders in the frontmatter, body, or title.
All template variables
| Variable | What you get |
|---|---|
{{title}} | Book title |
{{subtitle}} | Subtitle, if any |
{{author}} | First author |
{{authors}} | All authors, comma-separated |
{{authorsYamlLinks}} | Authors as a YAML list of [[wikilinks]] |
{{description}} | Publisher's description (body only, too long for frontmatter) |
{{descriptionCallout}} | Description as a collapsed callout; custom title via {{descriptionCallout:My title}} |
{{publisher}} | Publisher name |
{{publishedDate}} | Raw publish date, e.g. 2021-05-04 |
{{year}} | 4-digit publish year |
{{pageCount}} | Number of pages |
{{isbn}} | ISBN-13, falling back to ISBN-10 |
{{isbn13}} | ISBN-13 only |
{{isbn10}} | ISBN-10 only |
{{categories}} | Categories, comma-separated |
{{categoriesYamlList}} | Categories as a YAML list |
{{language}} | Language code, e.g. en, de |
{{seriesName}} | Series name, if known |
{{seriesNumber}} | Number within the series, if known |
{{source}} | Search provider: google or openlibrary |
{{cover}} | Cover URL or vault path, per the cover storage mode |
{{date}} | Note creation date, YYYY-MM-DD |
{{datetime}} | Note creation date and time, YYYY-MM-DD HH:mm:ss |
Plays well with Templater
If you use Templater, the two get along nicely. The template file is a regular note in your vault, so it lives comfortably next to your Templater templates, and the plugin fills its {{variables}} on its own without needing Templater installed. With Templater's "Trigger Templater on new file creation" enabled, your Templater commands in the template run on the new note as usual.
Getting started
- Install Book Search + Covers from Obsidian's Community plugins and enable it.
- Optional but recommended: add a free Google Books API key for the richest metadata. The step-by-step guide takes about 5 minutes and needs no billing. Without a key, search uses Open Library, which works fine but has a smaller catalog and returns less metadata.
- Open the settings: pick your note folder, your store region, and how covers are stored.
Network use and privacy
The plugin talks to googleapis.com (with your API key), itunes.apple.com, and openlibrary.org to fetch book data and covers. Your API key is stored locally in the plugin's data.json and is never sent anywhere except Google. No telemetry, no tracking.
Thanks
- Templater, the gold standard for templating in Obsidian.
- Book Search, the plugin that inspired this one. I used it for a while, but wanted a state-of-the-art UX and better book covers.
Development
npm install
npm run dev # watch build -> main.js
npm run build # typecheck + production build
npm run lint # eslint-plugin-obsidianmd
npm test # vitest
Built with the standard Obsidian + esbuild toolchain.
License
MIT
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.