Hardcover

by aliceinwaterdeep
5
4
3
2
1
Score: 54/100

Description

Category: 3rd Party Integrations

The Hardcover plugin syncs your Hardcover reading library into your vault, creating one note per book with comprehensive metadata in frontmatter. It performs incremental updates, only syncing books that changed since the last sync. Each note includes configurable fields like title, authors, rating, status, quotes from your reading journal, genres and more. You can format authors, series, genres and publishers as wikilinks for interconnected notes. The plugin supports directory organization by author and/or series with customizable folder structures. A delimiter system separates plugi generated content from your personal notes, preserving your additions during syncs.

Reviews

No reviews yet.

Stats

44
stars
2,223
downloads
5
forks
230
days
9
days
9
days
25
total PRs
0
open PRs
3
closed PRs
22
merged PRs
21
total issues
1
open issues
20
closed issues
239
commits

RequirementsExperimental

Latest Version

9 days ago

Changelog

Fixed

  • Lists are now fetched in pages of 100. Previously only the first 100 lists (sorted alphabetically) were included, so books in lists past that cutoff were missing those lists in their notes.

Many thanks to @escidmore!

README file from

Github

Obsidian Hardcover Plugin

Syncs your Hardcover library to your Obsidian vault, creating one note per book with metadata stored in frontmatter properties.

GitHub downloads

obsidian-hardcover-v2-demo

⚠️ Version 2.0.0 - Breaking Changes

v2.0.0 introduces customizable note templates and splits book/edition fields. Your settings will be automatically migrated. See migration docs if you're curious.

Table of Contents

Features

  • Complete Library Sync: Import your entire Hardcover library as Obsidian notes
  • Incremental Updates: Only sync books that have changed since your last sync
  • Flexible Configuration:
    • Define a template to control how your note looks (frontmatter and body)
    • Add custom properties to frontmatter
    • Template validation with error messages
  • Directory Organization:
    • Group your book notes by author and/or series
  • Sync by status:
    • Configure a filter to only sync books of a specific status (e.g. Want to Read)
  • User notes: The plugin uses a delimiter system to separate plugin-generated content and user-added content. This means you can add your own personal notes to a book note below the delimiter and it will be preserved during syncs.

[!WARNING] While the delimiter system protects your content during syncs, regular backups of your vault are still recommended. I am not responsible for any data loss.

Requirements

Note for existing users: Version 2.3.0 introduced this requirement (needed for Obsidian's declarative settings API). If you're on Obsidian 1.11.4–1.12.x, stay on plugin version 2.2.x or earlier.

Installation

  1. Open Obsidian Settings
  2. Go to Community Plugins -> Browse
  3. Search for "Hardcover"
  4. Click Install
  5. Enable the plugin

Manual Installation

  1. Download the ZIP file from the latest release
  2. Extract the ZIP file to your vault's plugins folder: YourVaultName/.obsidian/plugins/
  3. You should now have a folder: YourVaultName/.obsidian/plugins/hardcover containing 3 files
  4. Restart Obsidian or go to Settings -> Community plugins -> Reload plugins
  5. Enable "Hardcover" in Settings -> Community plugins

Updating from versions before 1.1.0

Important: The plugin folder name changed for Obsidian directory compliance.

If you installed this plugin manually before 1.1.0:

  1. Backup your settings:Copy .obsidian/plugins/obsidian-hardcover-vX.X.X/data.json somewhere safe
  2. Remove the old folder: Delete .obsidian/plugins/obsidian-hardcover-vX.X.X/
  3. Install the new version following the instructions above
  4. Restore settings: Copy data.json to .obsidian/plugins/hardcover/data.json

Note: The new plugin creates a hardcover folder instead of obsidian-hardcover.

Setup

  1. Get your Hardcover API key from Hardcover
  2. Open Obsidian Settings and go to the "Hardcover" tab
  3. Configure your API key using one of these methods:
    • SecretStorage (recommended): Store your API key securely using Obsidian's encrypted SecretStorage. Click "Link..." in the API key setting to create or select a secret.
    • Environment file: Create a .env file in your vault root with:
     HARDCOVER_API_KEY=your_api_key_here

Note: If you use both methods, the .env file takes priority. SecretStorage provides encrypted storage, while .env is useful if you are syncing your vault with git.

  1. Configure a target folder for your book notes (must be a subfolder, not vault root)
  2. Customize which fields to include and their property names
  3. Click "Sync now" to import your library

[!TIP] If you want to test your setup before syncing everything, you can use the Debug menu to run a test sync with a limited number of books. Recommended for large libraries.

Hardcover API keys expire after 1 year. You can check the expiration date of your current key on Hardcover.

Quick Access

Once set up, you can sync your Hardcover library in multiple ways:

  • Settings tab: Click "Sync now" in the plugin settings
  • Command palette: Press Ctrl+P or Cmd+P and search for "Sync library"
  • Ribbon icon: Click the book icon in the left sidebar

Sync Process

The plugin follows these steps when syncing:

  1. Fetches books from the Hardcover API (in batches of 100)
  2. Creates or updates notes for each book
  3. Stores the sync timestamp for incremental updates

For large libraries, the plugin uses pagination and respects API rate limits. Hardcover limits requests to 60 per minute. The plugin handles this but very large libraries may take time.

  • If some books fail to process, others will still be synced
  • The timestamp is only updated if all books process successfully

Settings Overview

Custom Note Template

Note Template

v2.0.0 introduces a fully customizable note template using variable substitution.

Edit your template in Settings -> Note Template:

---
title: {{editionTitle}}
cover: {{editionCover}}
releaseDate: {{editionReleaseDate}}
authors: {{editionAuthors}}
---

# {{editionTitle}}

![cover|300](https://raw.githubusercontent.com/aliceinwaterdeep/obsidian-hardcover/HEAD/{{editionCover}})

{{description}}

## Review
{{review}}

## Quotes
{{quotes}}

Available Variables

Book vs Edition Data:

  • Id: {{bookId}} / {{editionId}}
  • Title: {{bookTitle}} / {{editionTitle}}
  • Cover: {{bookCover}} / {{editionCover}}
  • Release Date: {{bookReleaseDate}} / {{editionReleaseDate}}
  • Authors: {{bookAuthors}} / {{editionAuthors}}
  • Contributors: {{bookContributors}} / {{editionContributors}}

Book Information:

  • {{description}} - Book description
  • {{url}} - Hardcover URL
  • {{series}} - Series information
  • {{genres}} - Genre tags

Edition Information:

  • {{publisher}} - Publisher name
  • {{isbn10}} / {{isbn13}} - ISBN numbers

Your Data:

  • {{rating}} - Your rating
  • {{status}} - Reading status
  • {{review}} - Your review (formatted from Hardcover's markdown)
  • {{quotes}} - Highlights from reading journal
  • {{lists}} - Your Hardcover lists

Reading Activity:

  • {{firstReadStart}} / {{firstReadEnd}} - First read dates
  • {{lastReadStart}} / {{lastReadEnd}} - Most recent read dates
  • {{totalReads}} - Number of times read
  • {{readYears}} - Years when read

You can also find the list of all available variables in the settings.

Custom properties

You can add custom properties that will be added to every note. Example:

---
title: {{editionTitle}}
tags: "#books"
---

Important: Template properties are regenerated every sync. These are meant for properties and values you want to apply to every book note and won't change manually (tags, dates using Templater, etc). For properties you need to change manually, you can manually add them to specific notes. If "Preserve custom frontmatter" (enabled by default) is enabled, they will be kept across syncs.

[!WARNING] Custom properties follow the same YAML syntax as Obsidian properties. Common examples:

  • Tags: myTag: "#books" (quotes required for #)
  • Lists: myTags: ["#fiction", "#2026"]
  • Wikilinks: "[[My link]]"

Format certain fields as [[wikilinks]] in frontmatter and body:

  • Authors
  • Contributors
  • Series
  • Publisher
  • Genres
  • Lists

Filename Template

Customize how note filenames are generated using variables like {{editionTitle}}, {{bookAuthors}}, {{bookYear}}, etc.

Default: {{editionTitle}} ({{editionYear}})

Notes are identified using the Hardcover Book ID (hardcoverBookId in the frontmatter) so you're free to choose whatever filename suits your vault.

Grouping Options

  • Disabled (default): All notes go in your target folder
  • Group by Author: Books/Brandon Sanderson/book1.md, Books/Martha Wells/book2.md
  • Group by Series: Books/The Murderbot Diaries/book1.md, Books/Secret Projects/book2.md
  • Group by Author -> Series: Books/Brandon Sanderson/Secret Projects/book1.md
Author Name Format

When grouping by author, choose between:

  • First Name Last Name (default): Brandon Sanderson/
  • Last Name, First Name: Sanderson, Brandon/
Advanced Options

When grouping by author, you can configure how to handle edge cases:

Missing Author Handling

Some books may not have anyone marked as "Author" (graphic novels with Writers, books with only Editors, etc.). Choose how to handle these:

  • Use fallback priority (default): Writer -> Editor -> first available contributor
  • Use fallback folder: Places the book in a dedicated folder (customizable, default: "Various")

Multiple Authors Handling

Books with multiple authors (anthologies, essay collections) can be organized in two ways:

  • Use first author (default): Places the book under the first author listed
  • Use collections folder: Places the book in a dedicated folder (customizable, default: "Collections")

Note: These advanced settings only affect folder organization. The frontmatter metadata always reflects the actual data from Hardcover.

Auto-organize Notes

By default, the plugin automatically moves and renames notes to match your grouping settings on every sync. If you prefer to manually organize your book notes:

  • Disable "Auto-organize notes" to keep files where you've placed them
  • Notes will stay in their current folders, but filenames will still update if you change the filename template
  • New books will always follow your grouping settings

Note: If you manually rename folders and then add new books to those authors/series, the plugin will create new folders following the grouping settings, potentially splitting your collection. You'll need to manually consolidate these folders if desired.

Important Notes
  • Multiple series: Books in multiple series use the first series Hardcover provides for grouping, to avoid duplicate notes.

Note Format

Each synced book creates a note with:

  1. Frontmatter containing all used variables
  2. Body containing all used variables
  3. Hardcover delimiter line (<!-- obsidian-hardcover-plugin-end -->)

Content below the delimiter line is preserved during syncs, so you can add your own notes without fear of losing them during updates.

[!WARNING] While the delimiter system protects your content during syncs, regular backups of your vault are still recommended. I am not responsible for any data loss.

Example:

---
hardcoverBookId: 12345
title: "Project Hail Mary"
authors: ["Andy Weir"]
rating: "5/5"
status: ["Read"]
releaseDate: "2021-05-04"
tags: ["#books", "#media"]
myCustomProp: hello
---

# Project Hail Mary

![Project Hail Mary Cover|300](https://images.hardcover.app/...)

## My Review

Lorem ipsum dolor sit amet, consectetur adipiscing elit...

## Quotes

> "Human beings have a remarkable ability to accept the abnormal and make it normal."

> "Grumpy. Angry. Stupid. How long since last sleep, question?"

<!-- obsidian-hardcover-plugin-end -->

## My Notes

These notes won't be overwritten during sync...

Changelog

See CHANGELOG.md for the full version history.

Documentation

See Documentation.

Roadmap

Planned Features

Feel free to have a look at the plugin board to know what I'm working on and what's in the pipeline.

Under Consideration

Ideas for new features are collected here! Feel free to upvote the features you're interested in or suggest a new one. New ideas are always welcome!

Issues and Contributions

Feel free to open an issue if you find bugs or have a feature idea!

Contributions are more than welcome! See CONTRIBUTING.md for dev setup and PR guidelines.


Disclaimer: This plugin is not affiliated with Hardcover or Obsidian.

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
Air Quotes
3 years ago by Alan Grainger
Plugin for Obsidian. Search and insert quotes from a source text as you type. This is great for reading a physical book or eReader while taking notes on a separate laptop or phone.
Anki Integration
a year ago by Noah Boos AKA Rift
Create flashcards from your notes with a seamless interface, structuring them with metadata and syncing effortlessly via AnkiConnect.
AnySocket Sync
2 years ago by Andrei Vaduva
Securely Synchronize your Vault on a self-hosted server
Apple Books Highlights
4 years ago by Atif Afzal
Sync your Apple Books highlights in Obsidian
Askify Sync
3 years ago by Kishlay Raj
Awesome Flashcard
4 years ago by AwesomeDog
Handy Anki integration for Obsidian.
Awesome Reader
4 years ago by AwesomeDog
Make Obsidian a proper Reader.
BetaX NAS Sync
2 years ago by Skye
Obsidian NAS Sync
Bi Ji Tong Bu
2 months ago by 笔记同步助手
Bi Ji Tong Bu (笔记同步助手) for Obsidian — marketplace edition (no self-update; full disclosures)
Bible sidecar
2 years ago by Janis Ringli
This repository contains a plugin for obsidian that lets you view the bible in a sidebar within obsidian.
Book Clipper
10 months ago by Hossein Fardmohammadi
Save book details from websites into your notes
Book Reader
a month ago by EltonLabs
Read EPUB, FB2 and PDF books directly inside Obsidian — a beautiful, distraction-free book reader with text highlighting, notes, and reading progress that syncs into your vault. Works on both desktop and mobile (Windows, macOS, Linux, Android, iOS).
Book Search
4 years ago by anpigon
Obsidian plugin that automatically creates notes by searching for books
BookFusion
3 years ago by BookFusion
BookFusion Obsidian Plugin
BookNav
2 years ago by jemberton
A plugin for ObsidianMD that enables book style navigation links in a note.
Bookshelf
2 years ago by Philip Weinke
Your personal bookshelf in Obsidian
BookXNote Sync
2 years ago by CodeListening
将bookxnote中的笔记同步到obsidian指定的文件夹中
Browser History
a year ago by noy4
Sync your browser history to notes.
Calibre
4 years ago by caronchen
Allow you to access your calibre libraries and read books directly in Obsidian.
Card Viewer
a year ago by vsme
一个用于在 Obsidian 中解析和查看电影、电视剧、书籍、音乐和 HTML 内容卡片的插件。
Checkbox Sync
2 years ago by Grol
Keep parent/child checkboxes in sync automatically within your Obsidian task lists.
Cicada Synchronizer
3 years ago by Adapole, Adapole, Mahyar Mirrashed
Cloud Storage
2 years ago by Jiajun Ma
Obsidian Cloud Storage is a powerful and user-friendly plugin designed to seamlessly integrate cloud storage capabilities into your Obsidian workflow. This plugin allows you to effortlessly upload your attachments to the cloud, freeing up local storage space and enabling easy sharing and access across all your devices.
Community Install Manager
2 months ago by Konstantin Volobuev
Allows you to use `community-plugins.js` to search for and automatically install plugins when you launch `obsidian`.
Confluence Sync
3 years ago by Prateek Grover
Obsidian plugin for obsidian confluence sync
Cubox
a year ago by delphi-2015
Cubox Official Obsidian Plugin
Dedao Brain Importer
2 months ago by springrain | 公众号: 及时春雨
在原版基础上修复windows无法手动和自动导入问题,以及优化很多格式转换为markdown
Douban
4 years ago by Wanxp
an obsidian plugin that can pull data from douban to your markdown file
EasySync
2 months ago by Jiao Yingxing
EasySync是一款适用于Obsidian的双向OneDrive同步插件,具有冲突保护、移动端支持以及可选的设置/插件同步功能。EasySync is a two-way OneDrive sync plugin for Obsidian with conflict safeguards, mobile support, and optional settings/plugin sync.
ePub Reader
4 years ago by caronchen
An ePub reader plugin for Obsidian.
ExMemo Client
2 years ago by Yan.Xie
exmemo obsidian plugin
Fast Note Sync
2 months ago by HaierKeys
Can be privately deployed, focusing on providing Obsidian users with a seamless, distraction-free note synchronization plugin with real-time sync across multiple platforms, supporting Mac, Windows, Android, iOS, and offering multilingual support.可私有化部署,专注为 Obsidian 用户提供无打扰、丝般顺滑、多端实时同步的多平台笔记同步插件。
Feedly Annotations Sync
2 years ago by Nick Felker
Download my Feedly annotations
Feishu Importer
22 days ago by leon
feishu document importer for Obsidian
Filename Heading Sync
5 years ago by dvcrn
Obisdian.md plugin to keep the filename and the first header of the file in sync
FleurEPUB
19 days ago by JC5
Focus and Highlight
4 years ago by BO YI TSAI
A plugin for obsidian to focus and highlight on a specific heading in Reading mode.
Full Calendar Remastered
3 months ago by obsidian-full-calendar-remastered
Keep events and manage your calendar alongside all your other notes in your Obsidian Vault.
GitHub Gitless Sync
2 years ago by Silvano Cerza
Sync a GitHub repository with vaults on different platforms without requiring git installation
Github Issues
a year ago by LonoxX
An Obsidian plugin that integrates with GitHub to track issues and pull requests directly in your vault.
GitHub Sync
3 years ago by Kevin Chin
Sync Obsidian vault to personal GitHub
Glasp
2 years ago by Glasp
Obsidian plugin to import highlights and notes from Glasp
Google Contacts
a year ago by aleksejs1
Obsidian plugin for sync Google Contacts with obsidian notes
Google Drive Sync
2 years ago by Richard Xiong
A plugin to make Obsidian work in Google Drive to enable access to iOS.
Granola Meetings Simple Sync
2 months ago by philfreo
"Granola Meetings Simple Sync" Plugin for Obsidian
Granola Sync
2 months ago by tomelliot
Sync Granola notes to your Obsidian vault
HackerNews
5 years ago by arpitbbhayani
Displays top stories from Hacker News inside Obsidian.
HackMD Sync
2 years ago by thor kampefner
obsidian extension to push and pull notes from hackmd conveniently
InfoFlow
2 years ago by RockieStar Inc.
Obsidian plugin for InfoFlow.app - This plugin integrates InfoFlow with Obsidian, allowing you to sync your saved articles, web pages, notes, and highlights directly into your Obsidian vault.
Instapaper
3 years ago by Instapaper
Official Instapaper plugin for Obsidian
Jira Issue Manager
a year ago by Alamion
Obisdian plugin to sync tasks between Obsidian and Jira
KOI Sync
2 years ago by Luke Miller
KOReader Sync
5 years ago by Federico "Edo" Granata
Obsidian.md plugin to sync highlights/notes from koreader
Limitless Lifelogs
a year ago by Maclean Dunkin
Sync your Limitless AI lifelog entries directly into Obsidian markdown files.
LINE Notes Sync
2 years ago by onikun94
Linked Data Vocabularies
3 years ago by kometenstaub
Add linked data to the YAML of your Obsidian notes.
Markdown Hijacker
a year ago by Yongmini
Beyond the Vault. One hub for every Markdown, everywhere
Markwhen File Sync
a year ago by rouvenjahnke
Synchronize properties from your Obsidian notes with a Markwhen timeline file.
Memos AI Sync
2 years ago by leoleelxh
obsidian-memos-sync-plugin,将 Memos 内容同步到 Obsidian 的插件,提供无缝集成体验。
Memos Sync
2 years ago by RyoJerryYu
Syncing Memos to Obsidian daily note. Fully compatible with official Daily Notes plugin, Calendar plugin and Periodic Notes plugin.
Minote Sync
2 years ago by Emac Shen
Minote Sync is a Obsidian plugin to sync Minote(小米笔记) into your Vault.
MrDoc
a year ago by zmister
An Obsidian plugin for MrDoc that enables two-way synchronization between local Obsidian documents and MrDoc.一个 Obsidian 的 MrDoc 插件,用于 Obsidian 本地文档与 MrDoc 的双向同步
Notes Sync Share
3 years ago by Alt-er
Sync and share (publish) your notes in your own private service.
Nutstore Sync
10 months ago by nutstore-dev
OsyC
15 days ago by 3yesore
Peerdraft
3 years ago by Peerdraft
Collaboration for Obsidian – Sync, Share, and Edit anywhere
Pinboard Sync
5 years ago by Mathew Spolin
Obsidian plugin to sync Pinboard.in links to Daily Notes
Readavocado Sync
4 years ago by Cyrus Zhang
Readavocado obsidian plugin to sync your favorite highlights.
Readwise Mirror
5 years ago by jsonmartin
Remaining reading time
a year ago by ununnamed
Shows the remaining reading time in status bar
Remember Scrollposition
9 months ago by s-blu
A plugin that saves the scroll position for each note to return you to where you left off
Remotely Save
5 years ago by fyears
Sync notes between local and cloud with smart conflict: S3 (Amazon S3/Cloudflare R2/Backblaze B2/...), Dropbox, webdav (NextCloud/InfiniCLOUD/Synology/...), OneDrive, Google Drive (GDrive), Box, pCloud, Yandex Disk, Koofr, Azure Blob Storage.
SamePage
4 years ago by SamePage
Scholar
3 years ago by Shannon Shen
Streamline Research Workflow in Obsidian
Self-hosted LiveSync
2 months ago by vrtmrz
Settings profiles
3 years ago by 4Source
This is a plugin for Obsidian (https://obsidian.md). Allows you to create various global settings profiles. You can sync them between different vaults. To keep all your settings in sync, you'll never have to manually adjust them again for every vault you have or create in the future.
Share to NotionNext
3 years ago by EasyChris, jxpeng98
Share obsidian markdown file to any Notion database and generate notion share link 同步obsdian文件到任意Notion数据库。
Snipd Official
4 months ago by snipd-app
Social Archiver
2 months ago by Jun Lim
Release repository for Social Archiver - Archive social media posts from 8 platforms into Obsidian
Strava Sync
2 years ago by Howard Wilson
Sync Strava activities to your Obsidian vault
Sync Cnblog
2 years ago by zhanglei
同步文章到博客园
Sync config folder to common folder
2 years ago by codeonquer
Sync Engine
2 months ago by Hēsperus
🔄 The fast and extensible synchronization engine for Obsidian.
Sync Graph Settings
4 years ago by Xallt
This is a plugin for syncing graph settings (Color Groups and Search Filters) to Local Graphs
Sync to Hugo
2 years ago by Cray Huang
Sync the selected notes from Obsidian to Hugo
Sync Vault CE
2 years ago by Camus Qiu
Professional cloud sync & VFS for Obsidian. Features zero-space VFS, 4K streaming, MCP AI engine, and P2P collaboration. Supports Baidu/Aliyun/Quark/WebDAV/S3.
Sync-safe file names
a year ago by j-maas
Ensure your Obsidian files can always be synced across all your devices.
Syncthing Integration
3 years ago by LBF38
Obsidian plugin for Syncthing integration
Taskbone
5 years ago by Dominik Schlund
Obsidian OCR plugin - extract text from images
Third Mind Reader
12 days ago by Rohan Bell
An opinionated EPUB & PDF reader for Obsidian. Read, annotate, and chat with your books. Every highlight stays in your vault as plain markdown, linked back to where it came from. Desktop and mobile, AI optional.
TickTick
3 years ago by Viduy Cheung
TickTickSync
3 years ago by thesamim
Bidirectional synchronization between Obsidian and TickTick. Mobile compatible.
Todoist Sync
6 years ago by jamiebrynes7
Materialize Todoist tasks in Obsidian notes
VaultSync
2 years ago by Justin Bird
Obsidian plugin to link your vault to a cloud storage provider.
Vikunja Sync
2 years ago by Peter Heiss
Manage your tasks in vikunja.
Vim Multibyte Char Search
5 years ago by anselmwang
Search multibyte characters by the corresponding input method encoding. For example, for Chinese, search "用来" by "yl"
Voicenotes Sync
2 years ago by Andrew Lombardi
Official Obsidian plugin that syncs your notes from VoiceNotes.com into your vault
Weread Plugin
4 years ago by hank zhao
Obsidian Weread Plugin is a plugin to sync Weread(微信读书) hightlights and annotations into your Obsidian Vault.
Weread Vault
2 months ago by 茜宁郑
Sync WeRead highlights, import book lists, and connect personal reading notes in Obsidian.
WikiDocs
2 years ago by pahkey
Writing
4 years ago by johackim
Write and format your next book directly from Obsidian
WuCai highlights Official
3 years ago by 希果壳五彩
WuCai highlights Official, for Sync highlights into your obsidian notes
Yandex Wiki Integration
a year ago by Pavel Sokolov
YAOS
5 months ago by kavinsood
A zero-terminal, real-time sync engine powered by your own Cloudflare Worker.