Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

EPUB Reader and Highlighter

AriaAria1k downloads

Read EPUB files inside Obsidian with persistent, color-coded highlights, notes, and Markdown export.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates13

English | 简体中文 | 繁體中文 | Italiano

Read EPUB books directly inside Obsidian, mark them up with color-coded highlights and notes, and export everything to Markdown.

Features

  • In-app EPUB reader — open any .epub file in your vault and read it without leaving Obsidian.
  • Scroll or paginated mode — switch between continuous scrolling and page-by-page reading; turn pages with the on-screen buttons or the ← / → arrow keys.
  • Fixed page numbers (Apple Books style) — the whole book is pre-paginated in the background at your current window size and font, so the total page count stays fixed while you read and every page turn advances by exactly 1. "Calculating" shows briefly on first open; the result is cached and only recomputed when the window or font changes. Type a number in the page box to jump straight to that page; scroll mode shows a reading-progress percent instead.
  • Reading position remembered — close the book (or quit Obsidian) and reopening returns you to the passage where you left off.
  • Color-coded highlights — select text and pick a color from the popup, or press Cmd/Ctrl+Shift+H to highlight with the default color (the combination is configurable); the default color is remembered across sessions.
  • Notes on highlights — attach a comment to any highlight.
  • Highlights that join up — highlighting text that runs up against an existing highlight merges the two into one; anything but whitespace or punctuation between them keeps them apart.
  • Highlight menu — click a highlight to recolor it (presets, the colors this book already uses, or the wheel), write a note, copy it, or delete it, right where it sits.
  • Annotations stored in your vault — each book's highlights are one file in a folder you choose, so any sync tool carries them and editing one book transfers only that file.
  • Highlights panel — view every highlight in the current book with its page number, text, and note; jump back to the original location, edit notes, or delete.
  • Copy as quote — copy the current selection, or all highlights at once, as *page · time* + quote blocks ready to paste into a note.
  • Undo — Cmd/Ctrl+Z reverses the last highlight or deletion.
  • Reading themes — five built-in backgrounds plus an inline color picker (no OS dialog) for any custom color, adjustable font and font size; link colors adapt to the background for readability.
  • Full-book search — find a keyword anywhere in the book and jump to any result.
  • Cross-page highlighting — mark a start point, turn as many pages as you like, then finish from a later selection to highlight the whole passage in one go (within a chapter).
  • Recently used colors — custom colors you have picked stay one click away, and drop off the list once no highlight uses them.
  • Export the book's text — export the whole book as one note, or the chapters you choose as separate notes with an index of links. Passages you highlighted can optionally be marked with ==.
  • Markdown export — export all highlights, or just the ones you pick, with control over the folder, grouping, sort order and which details each highlight carries. Every export is a new file stamped with the date and time, so nothing is ever overwritten.
  • Merge exported notes — fold several exports of the same book into a single note: duplicates are removed and everything you wrote yourself is preserved. The originals are never modified.
  • Custom export template — decide how each highlight is written with {{text}}, {{note}}, {{page}}, {{chapter}} and friends, including a conditional block that only appears when a note exists.
  • Configurable highlight shortcut — Cmd/Ctrl+Shift+H by default, changeable to any combination in the plugin settings.
  • First-run guide — a one-time popup explains the toolbar icons; the same reference lives in the plugin's settings tab.

Where annotations are stored

Each book's highlights are kept as one .json file in the vault, in the folder set under Annotation storage in the plugin settings (epub-highlights by default). Because they are ordinary vault files, whatever you already use to sync — Obsidian Sync, remotely-save, git — carries them along, and editing one book only transfers that book's file. Changing the folder moves the existing files with it.

Obsidian's file list doesn't show .json, so the folder looks empty in the sidebar; the files are there. Open the vault in your file manager, or turn on Settings → Files and links → Detect all file extensions.

A highlight is anchored both by a CFI and by its position in the chapter's text. If the markup around it shifts — a different machine, a neighbouring highlight deleted — the text anchor finds the passage again and repairs the CFI. If the epub file behind a path is replaced by a different one, its annotations are set aside in a file marked as previous rather than drawn over a book they no longer match.

Installation

From the community store

Search for "EPUB Reader and Highlighter" in Settings → Community plugins → Browse, install, and enable.

Manual

  1. Download main.js, manifest.json, and styles.css from the latest release.
  2. Copy them into <your-vault>/.obsidian/plugins/epub-reader-highlighter/.
  3. Reload Obsidian and enable the plugin in Settings → Community plugins.

Usage

  1. Place an .epub file anywhere in your vault and click it to open.
  2. Select text to highlight — click a color in the popup, or press Cmd/Ctrl+Shift+H for the default color.
  3. Click an existing highlight to add or edit a note.
  4. Use the toolbar to browse the table of contents, copy a quote, open the highlights menu, adjust the font and background, turn pages, and search the book.

Toolbar icons

Icon What it does
☰ (menu) Table of contents — browse the chapters and jump to one.
〝 (quote) Copy quote — copy the selected text as a *page · time* + quote block.
▮ (highlighter) Highlights menu — open the highlights list, copy all, export (all or selected), and set the default highlight color.
≡ (sliders) Reading settings — font, text size, and background; the color wheel expands an inline picker for any custom color.
Scroll / Paged Switch between continuous scrolling and page-by-page reading.
‹ page › Previous / next page (← / → work too). The page box shows the fixed page / total · percent — type a number and press Enter to jump; in scroll mode it shows the progress percent.
🔍 Search — find a keyword anywhere in the book and jump to a result.
✎ (pencil) Cross-page highlight · start — mark the opening of a passage, then turn the page.
✎✓ (pencil, check) Cross-page highlight · finish — highlight everything between the marked start and the current selection.
⋯ More — interface language and the quick guide.

Clicking an existing highlight opens an action bar: change its color, write a note, copy it, or delete it.

Shortcuts: Cmd/Ctrl+Shift+H highlight the selection (configurable in the plugin settings) · Cmd/Ctrl+Z undo.

Highlights live in your vault as one file per book (see Where annotations are stored); reading positions and preferences sit in the plugin's own data file. Nothing leaves your machine.

Exporting and merging

Open the highlights menu and choose Choose highlights to export…. The top row of the dialog picks which highlights to export — "All", "Today", "Select chapter", and one chip per color the book uses (your chip choice is remembered per book). The bottom row covers this export: sort order, target folder, and a "Set as default" box that writes them back to the settings.

Export to Markdown in the same menu skips the dialog and exports everything.

The plugin's settings hold the defaults: export folder, grouping (none / by chapter / by color), sort order (book order or the order you highlighted), and toggles for chapter, page number, date, note, color name and numbering.

Turning on Use a custom template replaces those toggles with a box where you decide the shape of each entry: {{index}}, {{text}}, {{note}}, {{page}}, {{chapter}}, {{book}}, {{date}}, {{time}}, {{color}}. Anything between {{#note}} and {{/note}} is written only when a note exists, so entries without one leave no empty label behind. Group headings and the separator between entries stay with the plugin — merging relies on them.

Everything produced from one book — its highlights, a merge of them, and its text — is filed in a folder named after the book, inside your export folder:

<export folder>/
└── <book name>/
    ├── Highlights 2026-08-27-1430.md
    ├── Text 2026-08-27-1629.md
    └── Selected chapters 2026-08-27-1640/
        ├── Index.md
        └── Chapter 1….md

Because every export is its own timestamped file, a book read over several sittings leaves several notes. Merge exported highlight notes (command palette, or the button in the settings) folds any of them into one: choose the notes, the grouping and the sort order, preview the result, and it is written to a new file. Duplicate highlights are kept once; anything that matches no highlight — your own writing, or a quote you edited — is preserved under "Other content". The source notes are never touched.

Exporting the book's text

The highlights menu also carries Export book text…. Pick either layout:

  • One note for the whole book — chapters become ## headings in a single file.
  • One note per chapter — each chapter is its own note, with an index note linking to them in reading order.

Tick the chapters you want; a book's own front matter (cover, copyright page, its printed contents page) is listed too and is usually worth leaving out. Images are skipped and internal links keep only their text.

Mark highlighted passages wraps everything you highlighted in ==, so the archive shows what you marked while reading. Colors aren't carried over — those stay in the highlight export. A notice reports how many passages were matched; a highlight whose wording no longer matches the converted text is skipped rather than silently dropped.

Development

npm install
npm run dev    # watch build
npm run build  # production build

Credits

EPUB rendering is powered by epub.js.

License

MIT

HealthExcellent
ReviewSatisfactory
About
Read EPUB files directly inside Obsidian with scroll or paginated views and adjustable reading themes. Highlight text in multiple colors, attach notes to highlights, browse or jump to highlights in a panel, and export all highlights (page, text, note) to a Markdown note.
AnnotationFormatsExport
Details
Current version
0.5.2
Last updated
2 weeks ago
Created
3 months ago
Updates
13 releases
Downloads
1k
Compatible with
Obsidian 1.8.7+
Platforms
Desktop only
License
MIT
Report bugRequest featureReport plugin
Author
AriaAriaokkio-31mon
GitHubokkio-31mon
  1. Community
  2. Plugins
  3. Annotation
  4. EPUB Reader and Highlighter

Related plugins

Pandoc Plugin

Commands to export to Pandoc-supported formats like DOCX, ePub and PDF.

qmd as md

Edit, preview, and render Quarto (.qmd) files with executable code cells via Quarto to PDF, DOCX, HTML, or reveal.js.

Markmind

Mind map, outline and PDF annotation tool. (Closed source)

Markdown to Jira Converter

Convert notes or selections to Jira markup and vice versa.

ToWord

Export markdown files to Word (docx) with text styling, syntax highlighting, and full mobile support for iOS/Android.

PDF Highlights

Extract highlights, underlines and annotations from your PDFs.

Canvas Export

Export canvas files to HTML, Excalidraw, Mermaid, D2, and PDF.

Importer

Convert your data to Markdown files you can use in Obsidian. Works with Apple Notes, OneNote, Evernote, Notion, Google Keep, and many other formats.

Admonition

Admonition block-styled content.

Slides Extended

Create markdown-based reveal.js presentations. Fork of Advanced Slides.