Thorium EPUB Reader

unlisted

by jm355

Read and annotate EPUB ebooks, powered by Thorium Web.

Updated 1mo agoBSD-3-Clause
View on GitHub

Thorium EPUB Reader for Obsidian

Read EPUB ebooks directly inside Obsidian, inspired by the Thorium Web reader and vibe coded by Claude.

Features

  • Open EPUBs in-vault — click any .epub file in your vault and it opens in a reading view
  • Table of Contents — navigate chapters via the TOC sidebar
  • Reading themes — Light, Sepia, and Dark modes
  • Font controls — adjust font size and family
  • Image & CSS support — inline resolution of embedded images and stylesheets
  • Chapter navigation — prev/next buttons and keyboard-friendly
  • Remembers position — re-opening a tab restores your chapter

Installation

Manual

  1. Clone or download this repository into your vault's .obsidian/plugins/thorium-epub-reader/ folder
  2. Run npm install and npm run build
  3. Restart Obsidian and enable the plugin in Settings → Community Plugins

From source

git clone https://github.com/your-username/obsidian-thorium-reader.git
cd obsidian-thorium-reader
npm install
npm run build

Copy main.js, manifest.json, and styles.css into your vault's .obsidian/plugins/thorium-epub-reader/.

Usage

  1. Drop .epub files into your vault
  2. Click an EPUB file in the file explorer — it opens in the Thorium reader view
  3. Or use the book icon in the ribbon / run the command "Open an EPUB file from vault"

Advanced: Thorium Web Server

If you run a self-hosted Thorium Web instance with the Go Toolkit backend, you can point the plugin at it in Settings for the full Thorium Web experience (Web Publication Manifest support, advanced navigation, accessibility features).

Future Improvements

Not sure I'll ever get to these, this plugin already does everything my old epub reader did and I didn't really miss not having these two features.

  • Search the book?
  • Keep list of book positions that are navigatable with obsidians back/forward buttons?

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.