Immersive Readerby SJT-bright

LOCAL BOOKS · QUIET SCENES

A local-first ebook reader · v1.9.6

Make room
for reading.

Immersive Reader by SJT-bright is a local-first ebook reader for EPUB, TXT and text-based PDF. It combines selectable two-page text, rain and snow scenes, ambient music, highlights, notes and reading history. No reader account is required; personal books and records stay on your computer.

Run locally · No reader account · Tested on macOS · Windows library path adapted

Selectable two-page text in a valley scene, using the built-in original sample book
Actual interface · Original sample book · No personal library

Your books, your reading record

The project brings ebook reading, customizable atmosphere and local reading records into one interface. EPUB / TXT become adjustable pages; notes lead back to passages; daily goals and a heatmap show your habits.

EPUB / TXT / PDFPDF text extraction13built-in scenes6 + 10original tracks + ambient modes16 weeksdaily reading grid

EPUB, TXT and PDF text import

Drop or select reflowable EPUB, TXT or text-based PDF. TXT detection covers UTF-8, UTF-16, GB18030 / GBK and Big5, with filename metadata and automatic chapter splitting. PDF text is reconstructed from page coordinates. Long conversions expose progress and cancellation.

Implementation ↗

3D bookshelf and compact list

Keep embedded covers or use generated title covers. Search by title or author and sort by last opened, import time, title or progress. Inspect chapter contents and progress from the shelf, resume reading or remove a book.

Implementation ↗

Two-page reading with selectable text

A light two-page book combines a soft gutter, parameterized paper lighting and page-turn transitions. The text remains selectable, searchable and highlightable. Choose pagination or continuous scroll; tune font family, size, line spacing, page width and density.

Implementation ↗

Auto-scroll and timed page turns

Slow, medium and fast presets accompany controls for scrolling speed, page dwell and chapter-end pauses. Automatic reading starts the timer. Manual navigation restarts the wait while keeping it running; leaving the page or switching books pauses it. Fullscreen, hidden controls and shortcuts support focus.

Implementation ↗
Actual sample-book interface with the music panel
Local music and official music link controls

ATMOSPHERE, AT YOUR PACE

Choose your own
window view.

Built-in scenes include mountain dawn, aurora, fluid colors, gardens, grassland, forest, lake, rain garden, snow field and four book settings: desk, valley, cafe and cliff. Upload, rename and remove images or muted videos. Use a fixed scene, time-of-day slots or interval rotation with crossfades.

Six original synthesized tracks accompany local MP3 / WAV / OGG / M4A playback, sortable playlists, seeking, volume, list or single-track repeat, sequential and shuffle modes, fades and a sleep timer. Ten ambient modes cover rain, snow, waves, wind, stream, fire, insects and white / pink / brown noise. NetEase and QQ Music use official embeds or official opening links.

Highlights, notes, bookmarks and Markdown export

Select text to highlight it or add a comment. Notes belong to their book and can be edited or opened at the original passage. Bookmark the current position; highlights and bookmarks have separate sections. Deletions can be undone, and each book’s notes export as Markdown.

Implementation ↗

Daily goals, a 16-week heatmap and achievements

Track today’s and total reading time, streaks, recent sessions and time-based achievements. A 16-week daily grid exposes dates and minute counts on hover, keyboard focus or touch. Daily goals show remaining time or completion. Timing pauses in the background, and history can be cleared.

Implementation ↗

Local storage, backup and knowledge-library integration

Browser IndexedDB and a local SQLite mirror preserve your library. Full backups include books, backgrounds, music, notes, positions and settings. Restore by merging or replacing, with a pre-restore snapshot downloaded first. Use it independently or integrate with a companion knowledge library through local APIs and book / note links.

Implementation ↗

Start reading locally

  1. Download and extract the complete source ZIP, keeping all files.
  2. On Mac run sh start.sh; on Windows double-click start.bat (Node, then Python); on Linux use Python or start.sh.
  3. Open http://127.0.0.1:8940/ in the browser. Try the sample before importing your books.

Requires modern Chrome / Edge and Node.js or Python; no npm installation. Full setup instructions ↗

Capabilities and evidence

Version 1.9.6 passes its Node logic checks on macOS and keeps the earlier isolated-browser and macOS-window records. The Windows launcher and library directory are adapted and have not been run on a Windows computer. Screenshots use an isolated sample, not personal data.

Verification scope · License scope · All features · Format, privacy and FAQ