Ebook Reader Studio
Ebook Reader Studio is a VS Code extension for reading .txt files in a cleaner, more immersive layout. It is designed for long-form plain text, novels, notes, transcripts, and exported documents that deserve a better reading experience than the default editor.
- Plain text —
.txt (custom line/heading renderer, folder-based chapter list)
- E-books —
.epub, .mobi, .azw, .azw3, .fb2, .fbz, .cbz, rendered with a
vendored copy of foliate-js (MIT)
DRM-protected books (e.g. titles bought from the Amazon Kindle store) and the
KFX format cannot be opened — the reader only handles DRM-free files.
Features
.txt files open directly in the custom reading view by default
- E-book formats (EPUB/MOBI/AZW3/FB2/CBZ) open in a paginated reader with a real
table of contents, reading-position memory, and prev/next navigation
- Focused reading panel built with a warm paper-like layout
- Built-in themes (
Paper, Sepia, Night) plus shipped presets (Kindle Sepia/Green/Black, Apple Sepia, and more)
- Create, edit, and delete your own themes — pick background, text, and accent colors (with a hex input), the rest of the palette is derived automatically
- Adjustable typography: font size, line height, content width, tucked into an
Aa popover in the toolbar
- Your chosen theme and typography are remembered globally and reused for every file you open
- Chapter navigation:
- Chapters — browse every
.txt in the same folder (one chapter per file); click to open it in place
- In this file — auto-detected headings such as
Chapter 1, 第1章, # Heading
- Search inside the current text, with an optional "Titles only" scope
- Friendly title extraction from file names (e.g.
第01章_雨夜灯.txt shows as 雨夜灯)
- Reading progress indicator
- Re-renders automatically when the source file changes
- Command to reopen the same file in the normal text editor
Usage
- Open a
.txt file.
- The file will open in
Ebook Reader Studio by default.
- Use
Ebook Reader: Reopen as Text Editor if you want the normal source editor.
- You can still manually use
Ebook Reader: Open in Reader from the command palette or explorer.
Development
npm install # install dev dependencies (vsce, ovsx)
npm run verify # syntax-check the extension entry point
Press F5 in VS Code to launch an Extension Development Host and try changes live.
Publishing
The extension ships with everything needed to build and publish: an icon, a
LICENSE (MIT), a .vscodeignore, and vsce / ovsx scripts in
package.json. Bump the version in package.json before every release.
Replace the placeholder repository URL in package.json with your real Git
repository before publishing.
Option A — Build a .vsix (no account needed)
Best for private use or sharing a file directly.
npm run package # -> ebook-reader-studio-<version>.vsix
Install it with code --install-extension ebook-reader-studio-<version>.vsix,
or from the Extensions panel: … menu → Install from VSIX…
Option B — VS Code Marketplace
Sign in to Azure DevOps with a Microsoft account and
create an organization.
Create a Personal Access Token (PAT): profile → Personal access tokens
→ New Token. Set Organization to All accessible organizations and
Scopes to Marketplace → Manage. Copy the token.
Create a publisher at https://marketplace.visualstudio.com/manage. Its id
must match "publisher" in package.json (currently allenyang).
Log in and publish:
npx vsce login allenyang # paste the PAT once
npm run publish:vsce # = vsce publish
# or let vsce bump the version + git tag for you:
npx vsce publish patch # or minor / major
Option C — Open VSX (Cursor, VSCodium, Windsurf, etc.)
The official Marketplace only serves genuine VS Code. To reach VS Code-compatible
IDEs, also publish to Open VSX:
Sign in to https://open-vsx.org with GitHub, create a namespace matching the
publisher, and generate an access token.
Publish:
npx ovsx create-namespace allenyang -p <token> # first time only
npm run publish:ovsx -- -p <token> # = ovsx publish
Next Ideas
- Full-text search inside e-books
- Scrolled (continuous) layout toggle for e-books
- Bookmarks and highlights
- Markdown-lite rendering for decorated plain text
Credits
E-book rendering is powered by foliate-js
by John Factotum (MIT). A trimmed copy is vendored under media/foliate/
(the large PDF renderer is intentionally excluded); its license is kept at
media/foliate/LICENSE.