Tome Reader

unlisted

by katrinasenpai

Read EPUB books in beautiful themes, capture quotes and vocabulary into notes, get auto-built tables of contents, and optionally plug in your own AI key for translations and recaps.

Updated 1d agoMIT
View on GitHub

πŸ“– Tome Reader

A beautiful e-book reader for Obsidian β€” Tome for short. Read your EPUB library right inside your vault β€” and turn reading into notes: capture quotes with your thoughts and grow a vocabulary with flashcard-ready entries. Works on desktop and mobile.

Built by a humanities person who wanted her library to feel like a library.

Parchment theme on desktop

Screenshots

Selection to dictionary with target chips
Select a word β†’ pick a dictionary β†’ save a flashcard-ready entry
Spoiler-safe AI recap
β€œWhat happened so far?” β€” a spoiler-safe recap built only from what you've already read
Table of contents with pinned bookmarks
TOC panel: pinned bookmarks on top, chapter search below
Aa panel
Theme, font size, spacing and text color β€” right in the reader
Gray Fog theme on a tablet
Gray Fog theme on a tablet
Aa panel on a tablet
Tuned for touch

Screenshots show the Russian UI β€” English is the default (switch anytime in settings).

Features

Reading

  • πŸ“š EPUB reading in a native Obsidian tab β€” open any .epub from your vault
  • 🎨 Four themes: Classic Light, Classic Dark, Parchment (aged paper with warm brown ink) and Gray Fog (dark academia with a crimson accent)
  • πŸ”€ Aa panel right in the reader: switch theme, adjust font size, line spacing and even text color on the fly β€” without leaving the page
  • ✍️ Typography controls: custom font family, size, spacing
  • πŸ“‘ Table of contents panel with chapter search, current-chapter highlight and auto-scroll β€” works reliably even for books with a thousand chapters
  • πŸͺ„ Auto-generated TOC: if a book ships with a broken or empty table of contents (looking at you, converted web novels), Tome scans the text and builds one from the headings β€” cached per book. Note: books converted from PDF often lose heading markup entirely β€” Tome builds from whatever headings survived the conversion
  • πŸ”– Reading position remembered per book, chapter name and progress % in the header
  • πŸ“Œ Bookmarks: drop one at the current page from the header, or pin a selected passage β€” they live at the top of the TOC panel, one tap to jump back. Wander around the book freely; your marked spot waits for you
  • πŸ“± Mobile-friendly: tap zones for page turns with a subtle turn animation (respects reduced-motion), tuned for tablets and phones

Capture while you read

  • πŸ“ Selection β†’ book note: select a passage, add your own thought inline, and Tome saves the quote (with chapter reference) into a per-book note β€” created automatically
  • 🈢 Selection β†’ dictionary: select a word, type its translation right there, and it lands in your dictionary file as a spaced-repetition-ready line (word:::translation) β€” pairs perfectly with the Spaced Repetition plugin
  • ✏️ Fix typos right in the book: select a flawed fragment, type the correction β€” Tome edits the EPUB file itself (only when the fragment is unique in the chapter, so nothing gets mangled)
  • ⌨️ Enter to save, Esc to go back β€” your reading flow stays unbroken

AI assistant (bring your own key)

  • ✨ Optional AI helper β€” plug in your own API key and Tome becomes a smart reader. Supports Groq, OpenAI, OpenRouter, Anthropic (Claude) or any OpenAI-compatible endpoint
  • 🌐 Translate a selection with one tap β€” then send the translation straight into your dictionary
  • πŸ’‘ Explain a fragment β€” terms, idioms, cultural references, with the surrounding paragraph as context
  • πŸ“ β€œWhat happened so far?” β€” Tome collects the text before your current position and asks the model for a spoiler-safe recap; ask free-form questions about the book the same way
  • πŸ“ Save recaps and answers into the book note with one tap β€” each lands as a tidy callout with the chapter and progress stamp
  • πŸ”’ Privacy-transparent: nothing is sent anywhere unless you configure a provider and tap an AI action; only the relevant fragment (or already-read text for book questions) is sent to your provider
  • 🌍 Provider geo-blocked in your region? The Base URL is editable β€” point it at your own relay (e.g. a tiny Cloudflare Worker that forwards requests to the API host) and keep the same key. A Test connection button in settings tells you right away if the route works

Interface

  • 🌐 English and Russian UI (English by default β€” switch in settings)

Roadmap

  • FB2 support
  • Swipe page turns and page-flip animation
  • Reading progress in note frontmatter (for Dataview book boards)
  • Community plugin catalog submission

Install

Via BRAT (recommended for now):

  1. Install and enable the BRAT plugin
  2. BRAT settings β†’ Add Beta Plugin β†’ katrinasenpai/tome-reader
  3. Enable Tome in Settings β†’ Community plugins

From source:

npm install
npm run build

Copy manifest.json, main.js, styles.css into <vault>/.obsidian/plugins/tome-reader/ and enable Tome.

Development

npm run dev            # watch mode
npm run install-vault  # build + copy into the vault set in install-vault.mjs

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.